}
testenv.MustHaveGoBuild(t)
+ t.Helper()
exe, err := buildTestProg(t, binary)
if err != nil {
exe := filepath.Join(dir, name+".exe")
- t.Logf("running go build -o %s %s", exe, strings.Join(flags, " "))
+ start := time.Now()
cmd := exec.Command(testenv.GoToolPath(t), append([]string{"build", "-o", exe}, flags...)...)
+ t.Logf("running %v", cmd)
cmd.Dir = "testdata/" + binary
out, err := testenv.CleanCmdEnv(cmd).CombinedOutput()
if err != nil {
target.err = fmt.Errorf("building %s %v: %v\n%s", binary, flags, err, out)
} else {
+ t.Logf("built %v in %v", name, time.Since(start))
target.exe = exe
target.err = nil
}
// Exit with the thread locked.
}()
<-ready
- for i := 0; i < 100; i++ {
+ for {
time.Sleep(1 * time.Millisecond)
// Check that this goroutine is running on a different thread.
self := C.pthread_self()
return
}
}
- println("sub thread still running")
- os.Exit(1)
}