mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-02-06 09:40:07 +00:00
integration_test: fix race condition between stderr and stdout
Split output of stderr and stdout instead of using combined buffer. Change-Id: I4099ebca15099e91539b3ebab6b410fc49f76ce1 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/168347 Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
This commit is contained in:
parent
b936504483
commit
4630b3daa6
@ -332,14 +332,14 @@ func patchProtos(check func(error), repoRoot string) {
|
||||
func mustRunCommand(t *testing.T, dir string, args ...string) string {
|
||||
t.Helper()
|
||||
stdout := new(bytes.Buffer)
|
||||
combined := new(bytes.Buffer)
|
||||
stderr := new(bytes.Buffer)
|
||||
cmd := exec.Command(args[0], args[1:]...)
|
||||
cmd.Dir = dir
|
||||
cmd.Env = append(os.Environ(), "PWD="+dir)
|
||||
cmd.Stdout = io.MultiWriter(stdout, combined)
|
||||
cmd.Stderr = combined
|
||||
cmd.Stdout = stdout
|
||||
cmd.Stderr = stderr
|
||||
if err := cmd.Run(); err != nil {
|
||||
t.Fatalf("executing (%v): %v\n%s", strings.Join(args, " "), err, combined.String())
|
||||
t.Fatalf("executing (%v): %v\n%s%s", strings.Join(args, " "), err, stdout.String(), stderr.String())
|
||||
}
|
||||
return stdout.String()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user