]> Cypherpunks repositories - gostls13.git/commitdiff
test cleanup
authorRuss Cox <rsc@golang.org>
Mon, 22 Sep 2008 20:47:53 +0000 (13:47 -0700)
committerRuss Cox <rsc@golang.org>
Mon, 22 Sep 2008 20:47:53 +0000 (13:47 -0700)
- do not print tracebacks if $GOTRACEBACK=0
- set GOTRACEBACK=0 during tests
- filter out pc numbers in errors

R=r
DELTA=70  (22 added, 30 deleted, 18 changed)
OCL=15618
CL=15642

src/runtime/rt1_amd64_darwin.c
src/runtime/rt1_amd64_linux.c
src/runtime/runtime.c
src/runtime/runtime.h
test/golden.out
test/run

index cf4f3bcdadb307a2bbb4eefbcab48cd1c487c2b6..02f03cdf7207d76e720f9ee7c5eea4989817c51f 100644 (file)
@@ -150,9 +150,11 @@ sighandler(int32 sig, siginfo *info, void *context)
        prints("\npc: 0x");  sys·printpointer((void *)ss->__rip);
        prints("\n\n");
 
-       traceback((void *)ss->__rip, (void *)ss->__rsp, (void*)ss->__r15);
-       tracebackothers((void*)ss->__r15);
-       print_thread_state(ss);
+       if(gotraceback()){
+               traceback((void *)ss->__rip, (void *)ss->__rsp, (void*)ss->__r15);
+               tracebackothers((void*)ss->__r15);
+               print_thread_state(ss);
+       }
 
        sys·exit(2);
 }
index c62db5ce9567e0320a317168281fda31300120c5..98a53f18e8f9c6e885b9b4cebb9d2a8c03692f05 100644 (file)
@@ -140,7 +140,7 @@ sighandler(int32 sig, siginfo* info, void** context)
        if(panicking)   // traceback already printed
                sys·exit(2);
 
-        struct sigcontext *sc = &(((struct ucontext *)context)->uc_mcontext);
+       struct sigcontext *sc = &(((struct ucontext *)context)->uc_mcontext);
 
        if(sig < 0 || sig >= NSIG){
                prints("Signal ");
@@ -149,13 +149,15 @@ sighandler(int32 sig, siginfo* info, void** context)
                prints(sigtab[sig].name);
        }
 
-        prints("\nFaulting address: 0x");  sys·printpointer(info->si_addr);
-        prints("\npc: 0x");  sys·printpointer((void *)sc->rip);
-        prints("\n\n");
+       prints("\nFaulting address: 0x");  sys·printpointer(info->si_addr);
+       prints("\npc: 0x");  sys·printpointer((void *)sc->rip);
+       prints("\n\n");
 
-       traceback((void *)sc->rip, (void *)sc->rsp, (void *)sc->r15);
-       tracebackothers((void*)sc->r15);
-       print_sigcontext(sc);
+       if(gotraceback()){
+               traceback((void *)sc->rip, (void *)sc->rsp, (void *)sc->r15);
+               tracebackothers((void*)sc->r15);
+               print_sigcontext(sc);
+       }
 
        sys·breakpoint();
        sys·exit(2);
index 2cbebda2190c12b935ec8338dfb63dd0cf6c67ab..5fde296700f6816599796aadda037d6132dca0cf 100644 (file)
@@ -6,6 +6,17 @@
 
 int32  panicking = 0;
 
+int32
+gotraceback(void)
+{
+       byte *p;
+
+       p = getenv("GOTRACEBACK");
+       if(p == nil || p[0] == '\0')
+               return 1;       // default is on
+       return atoi(p);
+}
+
 void
 sys·panicl(int32 lno)
 {
@@ -17,8 +28,10 @@ sys·panicl(int32 lno)
        sys·printpc(&lno);
        prints("\n");
        sp = (uint8*)&lno;
-       traceback(sys·getcallerpc(&lno), sp, g);
-       tracebackothers(g);
+       if(gotraceback()){
+               traceback(sys·getcallerpc(&lno), sp, g);
+               tracebackothers(g);
+       }
        panicking = 1;
        sys·breakpoint();  // so we can grab it in a debugger
        sys·exit(2);
index 04f1737dd048b90cf70457cabc04c6db604676bc..3d439ca452479096b4d2ebc1309245da87df9513 100644 (file)
@@ -212,6 +212,7 @@ void        mcpy(byte*, byte*, uint32);
 void*  mal(uint32);
 uint32 cmpstring(string, string);
 void   initsig(void);
+int32  gotraceback(void);
 void   traceback(uint8 *pc, uint8 *sp, G* gp);
 void   tracebackothers(G*);
 int32  open(byte*, int32, ...);
index 758e5b5959bab18e0fedf8bc1ea3a49aef1c7728..ceac2404f68d9d4c46041ad20bfd3b67d40bc7a0 100644 (file)
@@ -128,17 +128,7 @@ BUG: compilation succeeds incorrectly
 throw: ifaces2i: nil pointer
 SIGSEGV: segmentation violation
 Faulting address: 0x0
-pc: 0x1c11
-
-0x1c11?zi
-       throw(30465, 0, 0, ...)
-       throw(0x7701, 0x0, 0x0, ...)
-0x2113?zi
-       sys·ifaces2i(31496, 0, 31536, ...)
-       sys·ifaces2i(0x7b08, 0x7b30, 0x0, ...)
-0x136f?zi
-       main·main(1, 0, 1606414952, ...)
-       main·main(0x1, 0x7fff5fbff268, 0x0, ...)
+pc: xxx
 
 BUG: fails incorrectly
 
@@ -152,18 +142,12 @@ BUG: fails incorrectly
 =========== bugs/bug095.go
 found 2, expected 1
 
-panic on line 352 PC=0x139e
-0x139e?zi
-       main·main(1, 0, 1606414952, ...)
-       main·main(0x1, 0x7fff5fbff268, 0x0, ...)
+panic on line 352 PC=xxx
 BUG wrong result
 
 =========== bugs/bug097.go
 
-panic on line 354 PC=0x13bc
-0x13bc?zi
-       main·main(1, 0, 1606414952, ...)
-       main·main(0x1, 0x7fff5fbff268, 0x0, ...)
+panic on line 354 PC=xxx
 BUG wrong result
 
 =========== bugs/bug098.go
@@ -176,28 +160,14 @@ BUG should compile
 done1
 SIGSEGV: segmentation violation
 Faulting address: 0x0
-pc: 0x0
-
-0x0?zi
-       panic(5070, 0, 45192, ...)
-       panic(0x13ce, 0xb088, 0xb088, ...)
+pc: xxx
 
 
 =========== bugs/bug102.go
 throw: index out of range
 SIGSEGV: segmentation violation
 Faulting address: 0x0
-pc: 0x2615
-
-0x2615?zi
-       throw(31052, 0, 0, ...)
-       throw(0x794c, 0x0, 0x1315, ...)
-0x2569?zi
-       sys·throwindex(45096, 0, 0, ...)
-       sys·throwindex(0xb028, 0x0, 0x0, ...)
-0x1315?zi
-       main·main(1, 0, 1606414952, ...)
-       main·main(0x1, 0x7fff5fbff268, 0x0, ...)
+pc: xxx
 
 
 =========== fixedbugs/bug016.go
index dc429dd67b8e13e360f2ba5a299ab22eeaddcda4..3617301c29ba93330b95618c65ae5e651b53f15b 100755 (executable)
--- a/test/run
+++ b/test/run
@@ -15,6 +15,7 @@ esac
 
 export G=${A}g
 export L=${A}l
+export GOTRACEBACK=0
 
 failed=0
 
@@ -55,6 +56,9 @@ done | # clean up some stack noise
        egrep -v '^(r[0-9a-z]+|[cfg]s)  +0x'  |
        sed '/tmp.*Bus error/s/.*Bus/Bus/; /tmp.*Trace.BPT/s/.*Trace/Trace/
                s!'$RUNFILE'!$RUNFILE!g
+               s/ PC=0x[0-9a-f]*/ PC=xxx/
+               s/^pc: 0x[0-9a-f]*/pc: xxx/
+               /^Trace\/breakpoint trap/d
                /RUNFILE/ s/line 1: *[0-9]*/line 1: PID/' > run.out
 
 case $failed in