-// $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)
+ }
+}
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