]> Cypherpunks repositories - gostls13.git/commitdiff
test/fixedbugs: fix bug248 and bug345
authorisharipo <iskander.sharipov@intel.com>
Mon, 2 Apr 2018 19:50:20 +0000 (22:50 +0300)
committerEmmanuel Odeke <emm.odeke@gmail.com>
Mon, 2 Apr 2018 20:08:27 +0000 (20:08 +0000)
When test/run script was removed, these two tests
were changed to be executed by test/run.go.
Because errchk does not exit with non-zero status on
errors, they were silently failing for a while.

This change makes 2 things:

1. Compile tested packages in GOROOT/test to match older runner script
   behavior (strictly required only in bug345, optional in bug248)

2. Check command output with "(?m)^BUG" regexp.
   It approximates older `grep -q '^BUG' that was used before.

See referenced issue for detailed explanation.

Fixes #24629

Change-Id: Ie888dcdb4e25cdbb19d434bbc5cb03eb633e9ee8
Reviewed-on: https://go-review.googlesource.com/104095
Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

test/fixedbugs/bug248.go
test/fixedbugs/bug345.go

index 173b46fd83d14869af2a7eb18d1638415e1b92cb..30f2ce48f155bc43c5439eec6f07e402951906fe 100644 (file)
@@ -12,6 +12,7 @@ import (
        "os"
        "os/exec"
        "path/filepath"
+       "regexp"
 )
 
 func main() {
@@ -19,13 +20,11 @@ func main() {
        errchk, err := filepath.Abs("errchk")
        check(err)
 
-       err = os.Chdir(filepath.Join("fixedbugs", "bug248.dir"))
-       check(err)
-
-       run("go", "tool", "compile", "bug0.go")
-       run("go", "tool", "compile", "bug1.go")
-       run("go", "tool", "compile", "bug2.go")
-       run(errchk, "go", "tool", "compile", "-e", "bug3.go")
+       bugDir := filepath.Join(".", "fixedbugs", "bug248.dir")
+       run("go", "tool", "compile", filepath.Join(bugDir, "bug0.go"))
+       run("go", "tool", "compile", filepath.Join(bugDir, "bug1.go"))
+       run("go", "tool", "compile", filepath.Join(bugDir, "bug2.go"))
+       run(errchk, "go", "tool", "compile", "-e", filepath.Join(bugDir, "bug3.go"))
        run("go", "tool", "link", "bug2.o")
        run(fmt.Sprintf(".%ca.out", filepath.Separator))
 
@@ -35,10 +34,12 @@ func main() {
        os.Remove("a.out")
 }
 
+var bugRE = regexp.MustCompile(`(?m)^BUG`)
+
 func run(name string, args ...string) {
        cmd := exec.Command(name, args...)
        out, err := cmd.CombinedOutput()
-       if err != nil {
+       if bugRE.Match(out) || err != nil {
                fmt.Println(string(out))
                fmt.Println(err)
                os.Exit(1)
index dcf62f0592a11e191e82ec517166c1eeb06ad514..59e99c7d2a39f1ef7b1a3f2abdabab05522194d9 100644 (file)
@@ -12,6 +12,7 @@ import (
        "os"
        "os/exec"
        "path/filepath"
+       "regexp"
 )
 
 func main() {
@@ -19,18 +20,19 @@ func main() {
        errchk, err := filepath.Abs("errchk")
        check(err)
 
-       err = os.Chdir(filepath.Join(".", "fixedbugs", "bug345.dir"))
-       check(err)
+       bugDir := filepath.Join(".", "fixedbugs", "bug345.dir")
+       run("go", "tool", "compile", filepath.Join(bugDir, "io.go"))
+       run(errchk, "go", "tool", "compile", "-e", filepath.Join(bugDir, "main.go"))
 
-       run("go", "tool", "compile", "io.go")
-       run(errchk, "go", "tool", "compile", "-e", "main.go")
        os.Remove("io.o")
 }
 
+var bugRE = regexp.MustCompile(`(?m)^BUG`)
+
 func run(name string, args ...string) {
        cmd := exec.Command(name, args...)
        out, err := cmd.CombinedOutput()
-       if err != nil {
+       if bugRE.Match(out) || err != nil {
                fmt.Println(string(out))
                fmt.Println(err)
                os.Exit(1)