| runtime, crypto/x509: add -target flag. |
| |
| --- src/crypto/x509/x509_test.go |
| +++ src/crypto/x509/x509_test.go |
| @@ -19,6 +19,7 @@ import ( |
| "encoding/hex" |
| "encoding/pem" |
| "fmt" |
| + "flag" |
| "internal/testenv" |
| "math/big" |
| "net" |
| @@ -28,6 +29,8 @@ import ( |
| "time" |
| ) |
| |
| +var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries") |
| + |
| func TestParsePKCS1PrivateKey(t *testing.T) { |
| block, _ := pem.Decode([]byte(pemPrivateKey)) |
| priv, err := ParsePKCS1PrivateKey(block.Bytes) |
| @@ -862,7 +865,13 @@ func TestParsePEMCRL(t *testing.T) { |
| func TestImports(t *testing.T) { |
| testenv.MustHaveGoRun(t) |
| |
| - if err := exec.Command("go", "run", "x509_test_import.go").Run(); err != nil { |
| + var cmd *exec.Cmd |
| + if *target == "" { |
| + cmd = exec.Command("go", "run", "x509_test_import.go") |
| + } else { |
| + cmd = exec.Command("go_"+*target, "run", "-exec", "go_"+*target+"_exec", "x509_test_import.go") |
| + } |
| + if err := cmd.Run(); err != nil { |
| t.Errorf("failed to run x509_test_import.go: %s", err) |
| } |
| } |
| --- src/runtime/crash_test.go |
| +++ src/runtime/crash_test.go |
| @@ -5,6 +5,7 @@ |
| package runtime_test |
| |
| import ( |
| + "flag" |
| "fmt" |
| "internal/testenv" |
| "io/ioutil" |
| @@ -18,6 +19,25 @@ import ( |
| "testing" |
| ) |
| |
| +var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries") |
| + |
| +func goCmd() string { |
| + if *target != "" { |
| + return "go_" + *target |
| + } |
| + return "go" |
| +} |
| + |
| +func goExecCmd(name string, arg ...string) *exec.Cmd { |
| + var cmd []string |
| + if *target != "" { |
| + cmd = append(cmd, "go_"+*target+"_exec") |
| + } |
| + cmd = append(cmd, name) |
| + cmd = append(cmd, arg...) |
| + return exec.Command(cmd[0], cmd[1:]...) |
| +} |
| + |
| var toRemove []string |
| |
| func TestMain(m *testing.M) { |
| @@ -65,7 +85,7 @@ func runTestProg(t *testing.T, binary, name string) string { |
| if err != nil { |
| t.Fatal(err) |
| } |
| - got, _ := testEnv(exec.Command(exe, name)).CombinedOutput() |
| + got, _ := testEnv(goExecCmd(exe, name)).CombinedOutput() |
| return string(got) |
| } |
| |
| @@ -92,7 +112,7 @@ func buildTestProg(t *testing.T, binary string) (string, error) { |
| } |
| |
| exe := filepath.Join(testprog.dir, binary+".exe") |
| - cmd := exec.Command("go", "build", "-o", exe) |
| + cmd := exec.Command(goCmd(), "build", "-o", exe) |
| cmd.Dir = "testdata/" + binary |
| out, err := testEnv(cmd).CombinedOutput() |
| if err != nil { |
| --- src/runtime/crash_unix_test.go |
| +++ src/runtime/crash_unix_test.go |
| @@ -157,7 +157,7 @@ func TestSignalExitStatus(t *testing.T) { |
| if err != nil { |
| t.Fatal(err) |
| } |
| - err = testEnv(exec.Command(exe, "SignalExitStatus")).Run() |
| + err = testEnv(goExecCmd(exe, "SignalExitStatus")).Run() |
| if err == nil { |
| t.Error("test program succeeded unexpectedly") |
| } else if ee, ok := err.(*exec.ExitError); !ok { |