This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Go patch committed: Fix up a few test cases
- From: Ian Lance Taylor <iant at google dot com>
- To: gcc-patches at gcc dot gnu dot org, gofrontend-dev at googlegroups dot com
- Date: Fri, 23 Sep 2011 16:46:59 -0700
- Subject: Go patch committed: Fix up a few test cases
I missed the fact that some of the updated Go tests were getting Tcl
errors leading to an unresolved state, rather than actually failing.
The errors were because the regular expressions which appear in the file
need to be translated into expressions which can be used with dg-error,
which is mainly a matter of appropriate Tcl quoting. Of course the
regexps used to do quoting must themselves be quoted correctly, so the
results are rather arcane. This patch updates the quoting so the tests
are actually tested, and updates the regexps to match the output of
gccgo. Ran Go testsuite on x86_64-unknown-linux-gnu. Committed to
mainline.
Ian
2011-09-23 Ian Lance Taylor <iant@google.com>
* go.test/go-test.exp (errchk): Handle more cases of getting
correct Tcl backslash quoting in regular expressions in test file.
Index: test/fixedbugs/bug340.go
===================================================================
--- test/fixedbugs/bug340.go (revision 179063)
+++ test/fixedbugs/bug340.go (working copy)
@@ -10,8 +10,8 @@ package main
func main() {
var x interface{}
- switch t := x.(type) { // ERROR "0 is not a type"
- case 0:
- t.x = 1 // ERROR "type interface \{ \}"
+ switch t := x.(type) { // GC_ERROR "0 is not a type"
+ case 0: // GCCGO_ERROR "expected type"
+ t.x = 1 // ERROR "type interface \{ \}|reference to undefined field or method"
}
}
Index: test/fixedbugs/bug350.go
===================================================================
--- test/fixedbugs/bug350.go (revision 179063)
+++ test/fixedbugs/bug350.go (working copy)
@@ -8,8 +8,8 @@ package main
type T int
-func (T) m() {}
-func (T) m() {} // ERROR "T[.]m redeclared"
+func (T) m() {} // GCCGO_ERROR "previous"
+func (T) m() {} // ERROR "T[.]m redeclared|redefinition"
-func (*T) p() {}
-func (*T) p() {} // ERROR "[(][*]T[)][.]p redeclared"
+func (*T) p() {} // GCCGO_ERROR "previous"
+func (*T) p() {} // ERROR "[(][*]T[)][.]p redeclared|redefinition"
Index: test/fixedbugs/bug351.go
===================================================================
--- test/fixedbugs/bug351.go (revision 179063)
+++ test/fixedbugs/bug351.go (working copy)
@@ -9,5 +9,5 @@ package main
var x int
func main() {
- (x) := 0 // ERROR "non-name [(]x[)]"
+ (x) := 0 // ERROR "non-name [(]x[)]|non-name on left side"
}
Index: go-test.exp
===================================================================
--- go-test.exp (revision 179063)
+++ go-test.exp (working copy)
@@ -61,13 +61,17 @@ proc errchk { test opts } {
# experimentation, not analysis.
regsub -all "\\.\\*" $out_line "\\\\\[ -~\\\\\]*" out_line
}
+ if [string match "*dg-error*\\\[?\\\]*" $out_line] {
+ set index [string first "dg-error" $out_line]
+ regsub -all "\\\[\(.\)\\\]" $out_line "\\\\\[\\1\\\\\]" out_line
+ }
if [string match "*dg-error*\{*" $out_line] {
set index [string first "dg-error" $out_line]
- regsub -start $index -all "\{" $out_line "\\\\\[\\\{\\\\\]" out_line
+ regsub -start $index -all "\(\[^\\\\]\)\{" $out_line "\\1\\\\\[\\\{\\\\\]" out_line
}
if [string match "*dg-error*\}*\}" $out_line] {
set index [string first "dg-error" $out_line]
- regsub -start $index -all "\}\(.\)" $out_line "\\\\\[\\\}\\\\\]\\1" out_line
+ regsub -start $index -all "\(\[^\\\\]\)\}\(.\)" $out_line "\\1\\\\\[\\\}\\\\\]\\2" out_line
}
if [string match "*dg-error*\(*" $out_line] {
set index [string first "dg-error" $out_line]
@@ -77,10 +81,6 @@ proc errchk { test opts } {
set index [string first "dg-error" $out_line]
regsub -start $index -all "\\\\\\\)\(.\)" $out_line "\\\\\[\\\)\\\\\]\\1" out_line
}
- if [string match "*dg-error*\[.\]*" $out_line] {
- set index [string first "dg-error" $out_line]
- regsub -all "\\\[\\.\\\]" $out_line "\\\\\[.\\\\\]" out_line
- }
# Special case for bug332, in which the error message wants to
# match the file name, which is not what dg-error expects.
if [string match "*dg-error*bug332*" $out_line] {