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 }