Uros Bizjak <ubiz...@gmail.com> writes: > Some more debugging reveal the difference between alpha and x86_64. > Alpha does not implement split stacks, so soon after > "runtime.MemStats.Alloc = 0" line, we allocate exactly 2MB fake stack > via:
Thanks for tracking this down. > So, short of XFAILing the test on non-split stack targets, I have no > other idea how to handle this testcase failure. I thought about it for a while, and I can't think of any better approach than to skip this test case. A simple xfail doesn't work because it xfails the compilation of the test case rather than the execution, leading to an XPASS and a FAIL. I have committed this patch. Ian 2012-02-08 Ian Lance Taylor <i...@google.com> * go.test/go-test.exp (go-gc-tests): Don't run chan/select2.go on systems which don't support -fsplit-stack.
Index: gcc/testsuite/go.test/go-test.exp =================================================================== --- gcc/testsuite/go.test/go-test.exp (revision 184032) +++ gcc/testsuite/go.test/go-test.exp (working copy) @@ -33,6 +33,7 @@ load_lib go-dg.exp load_lib go-torture.exp +load_lib target-supports.exp # Compare two files proc filecmp { file1 file2 testname } { @@ -329,6 +330,15 @@ proc go-gc-tests { } { continue } + if { [file tail $test] == "select2.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. + untested $name + continue + } + set fd [open $test r] set lines_ok 1