This patch to the Go testsuite driver does two things.  1) Disables
stack.go on systems which do not support -fsplit-stack.  This test uses
a great deal of stack space and can overrun a thread stack.  2) Builds
select5-out.go without optimization.  The test is a generated file that
takes a long time to compile, and already had special code to extend the
timeout on Alpha systems.  Rathe than worry about timeouts, I just
disabled optimization.  The test still runs quickly even when not
optimized.

With this patch I was able to build and run the Go testsuite with no
failures on x86 and x86_64 Solaris 10.  (I tested before the libgo
update I just committed.)

Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu and
i386-pc-solaris2.10.  Committed to mainline.

Ian


2012-02-09  Ian Lance Taylor  <i...@google.com>

        * go.test/go-test.exp (go-gc-tests): Don't run stack.go on systems
        which don't support -fsplit-stack.  Turn off optimization when
        compiling select5-out.go.


Index: go.test/go-test.exp
===================================================================
--- go.test/go-test.exp	(revision 184034)
+++ go.test/go-test.exp	(working copy)
@@ -330,8 +330,9 @@ proc go-gc-tests { } {
 	    continue
 	}
 
-	if { [file tail $test] == "select2.go" && \
-		 ! [check_effective_target_split_stack] } {
+	if { ( [file tail $test] == "select2.go" \
+		   || [file tail $test] == "stack.go" ) \
+		 && ! [check_effective_target_split_stack] } {
 	    # chan/select2.go fails on targets without split stack,
 	    # because they allocate a large stack segment that blows
 	    # out the memory calculations.
@@ -1018,10 +1019,12 @@ proc go-gc-tests { } {
 		} else {
 		    pass "$name execution"
 		    file delete $base-out.x
-		    # This testcase takes long time to compile.
-		    dg-timeout-factor list 4 { target alpha*-*-* }
+		    # Disable optimizations as this test takes a long time
+		    # to compile.
+		    set hold $TORTURE_OPTIONS
+		    set TORTURE_OPTIONS [ list { -O0 -g }]
 		    go-torture-execute "./$base-out.go"
-		    unset_timeout_vars
+		    set TORTURE_OPTIONS $hold
 		}
 		file delete $base-out.go
 	    }

Reply via email to