This patch to the Go testsuite driver recognizes a few more test lines in Go tests. I somehow failed to notice these the last time I updated the Go testsuite. This patch includes a couple of changes to make the newly recognized tests pass. Ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline.
Ian 2012-01-17 Ian Lance Taylor <i...@google.com> PR go/50656 * go.test/go-test.exp (go-gc-tests): Recognize some more test lines.
Index: test/fixedbugs/bug364.go =================================================================== --- test/fixedbugs/bug364.go (revision 183262) +++ test/fixedbugs/bug364.go (working copy) @@ -1,3 +1,9 @@ +// $G $D/$F.go && $L $F.$A && ./$A.out + +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + package main import "fmt" Index: test/fixedbugs/bug345.dir/main.go =================================================================== --- test/fixedbugs/bug345.dir/main.go (revision 183262) +++ test/fixedbugs/bug345.dir/main.go (working copy) @@ -22,7 +22,7 @@ func main() { // main.go:27: cannot use &x (type *"io".SectionReader) as type *"/Users/rsc/g/go/test/fixedbugs/bug345.dir/io".SectionReader in function argument var w io.Writer - bufio.NewWriter(w) // ERROR "test/io" + bufio.NewWriter(w) // ERROR "test/io|has incompatible type" var x goio.SectionReader - io.SR(&x) // ERROR "test/io" + io.SR(&x) // ERROR "test/io|has incompatible type" } Index: go-test.exp =================================================================== --- go-test.exp (revision 183262) +++ go-test.exp (working copy) @@ -1,4 +1,4 @@ -# Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Written by Ian Lance Taylor <i...@google.com>. # This program is free software; you can redistribute it and/or modify @@ -467,6 +467,9 @@ proc go-gc-tests { } { $test_line] \ || [string match \ "// \$G \$D/\$F.dir/b.go && \$G \$D/\$F.dir/a.go" \ + $test_line] \ + || [string match \ + "// \$G \$D/\$F.dir/io.go && errchk \$G -e \$D/\$F.dir/main.go" \ $test_line] } { if { [string match \ "// \$G \$D/\$F.dir/bug0.go && errchk \$G \$D/\$F.dir/bug1.go" \ @@ -474,13 +477,20 @@ proc go-gc-tests { } { set name1 "bug0.go" set name2 "bug1.go" } elseif { [string match \ - "// \$G \$D/\$F.dir/p1.go && \$G \$D/\$F.dir/p2.go" \ - $test_line] } { + "// \$G \$D/\$F.dir/p1.go && \$G \$D/\$F.dir/p2.go" \ + $test_line] } { set name1 "p1.go" set name2 "p2.go" - } else { + } elseif { [string match \ + "// \$G \$D/\$F.dir/b.go && \$G \$D/\$F.dir/a.go" \ + $test_line] } { set name1 "b.go" set name2 "a.go" + } elseif { [string match \ + "// \$G \$D/\$F.dir/io.go && errchk \$G -e \$D/\$F.dir/main.go" \ + $test_line] } { + set name1 "io.go" + set name2 "main.go" } set hold_runtests $runtests set runtests "go-test.exp" @@ -492,6 +502,17 @@ proc go-gc-tests { } { file delete "[file rootname [file tail $file1]].o" set runtests $hold_runtests } elseif { [string match \ + "// \$G \$D/\${F}1.go && errchk \$G \$D/\$F.go" \ + $test_line ] } { + set hold_runtests $runtests + set runtests "go-test.exp" + set dg-do-what-default "assemble" + regsub "\\.go$" $test "1.go" file1 + dg-test -keep-output $file1 "-O" "-w $DEFAULT_GOCFLAGS" + errchk $test "" + file delete "[file rootname [file tail $file1]].o" + set runtests $hold_runtests + } elseif { [string match \ "// \$G \$D/\$F.dir/bug0.go && (! \$G \$D/\$F.dir/bug1.go || echo BUG*" \ $test_line] } { set hold_runtests $runtests @@ -537,14 +558,28 @@ proc go-gc-tests { } { set runtests $hold_runtests } elseif { [string match \ "// \$G \$D/bug160.dir/x.go && \$G \$D/bug160.dir/y.go && \$L y.\$A && ./\$A.out" \ - $test_line] } { + $test_line] \ + || [string match \ + "// \$G \$D/\$F.dir/p.go && \$G \$D/\$F.dir/main.go && \$L main.\$A && ./\$A.out" \ + $test_line] } { + if { [string match \ + "// \$G \$D/bug160.dir/x.go && \$G \$D/bug160.dir/y.go && \$L y.\$A && ./\$A.out" \ + $test_line] } { + set name1 "x.go" + set name2 "y.go" + } elseif { [string match \ + "// \$G \$D/\$F.dir/p.go && \$G \$D/\$F.dir/main.go && \$L main.\$A && ./\$A.out" \ + $test_line] } { + set name1 "p.go" + set name2 "main.go" + } set hold_runtests $runtests set runtests "go-test.exp" set dg-do-what-default "assemble" - regsub "\\.go$" $test ".dir/x.go" file1 + regsub "\\.go$" $test ".dir/$name1" file1 dg-test -keep-output $file1 "-O" "-w $DEFAULT_GOCFLAGS" set ofile1 "[file rootname [file tail $file1]].o" - regsub "\\.go$" $test ".dir/y.go" file2 + regsub "\\.go$" $test ".dir/$name2" file2 dg-test -keep-output $file2 "-O" "-w $DEFAULT_GOCFLAGS" set ofile2 "[file rootname [file tail $file2]].o" set dg-do-what-default "link"