]> Cypherpunks repositories - gostls13.git/commitdiff
test: write Go wrapper code so that bug302 can be run by run.go
authorIan Lance Taylor <iant@golang.org>
Mon, 8 Dec 2014 18:28:18 +0000 (10:28 -0800)
committerIan Lance Taylor <iant@golang.org>
Tue, 9 Dec 2014 01:07:27 +0000 (01:07 +0000)
Issue #4139.

Change-Id: I50d85a65b22c0cfb4d2a078cee45cf7adb23ba77
Reviewed-on: https://go-review.googlesource.com/1210
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
test/fixedbugs/bug302.go
test/run.go

index dc7637fe52e5c820547697ea47bfc8d26cf903dc..65c98c4624a1e30794717d8dc5fbcc1990959e70 100644 (file)
@@ -1,9 +1,41 @@
-// $G $D/bug302.dir/p.go && pack grc pp.a p.$A && $G $D/bug302.dir/main.go
-
-// NOTE: This test is not run by 'run.go' and so not run by all.bash.
-// To run this test you must use the ./run shell script.
+// +build !nacl
+// run
 
 // Copyright 2010 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"
+       "go/build"
+       "os"
+       "os/exec"
+       "path/filepath"
+       "runtime"
+)
+
+func main() {
+       a, err := build.ArchChar(runtime.GOARCH)
+       if err != nil {
+               fmt.Println("BUG:", err)
+               os.Exit(1)
+       }
+
+       run("go", "tool", a+"g", filepath.Join("fixedbugs", "bug302.dir", "p.go"))
+       run("go", "tool", "pack", "grc", "pp.a", "p."+a)
+       run("go", "tool", a+"g", filepath.Join("fixedbugs", "bug302.dir", "main.go"))
+       os.Remove("p."+a)
+       os.Remove("pp.a")
+       os.Remove("main."+a)
+}
+
+func run(cmd string, args ...string) {
+       out, err := exec.Command(cmd, args...).CombinedOutput()
+       if err != nil {
+               fmt.Println(string(out))
+               fmt.Println(err)
+               os.Exit(1)
+       }
+}
index e8ec2df9c4ee22cff9c47bbf9657ac5237e0d9d0..7c46dababf429415d28c2e14a113aad071277aa4 100644 (file)
@@ -908,7 +908,6 @@ func (t *test) wantedErrors(file, short string) (errs []wantedError) {
 
 var skipOkay = map[string]bool{
        "fixedbugs/bug248.go": true, // combines errorcheckdir and rundir in the same dir.
-       "fixedbugs/bug302.go": true, // tests both .$O and .a imports.
        "fixedbugs/bug345.go": true, // needs the appropriate flags in gc invocation.
        "fixedbugs/bug369.go": true, // needs compiler flags.
        "fixedbugs/bug429.go": true, // like "run" but program should fail