Forráskód Böngészése

Merge pull request #8164 from unclejack/fix_utils_race

integcli: fix race in runCommandWithStdoutStderr
Alexandr Morozov 10 éve
szülő
commit
1df4255102
1 módosított fájl, 8 hozzáadás és 9 törlés
  1. 8 9
      integration-cli/utils.go

+ 8 - 9
integration-cli/utils.go

@@ -44,14 +44,13 @@ func runCommandWithOutput(cmd *exec.Cmd) (output string, exitCode int, err error
 }
 
 func runCommandWithStdoutStderr(cmd *exec.Cmd) (stdout string, stderr string, exitCode int, err error) {
+	var (
+		stderrBuffer, stdoutBuffer bytes.Buffer
+	)
 	exitCode = 0
-	var stderrBuffer bytes.Buffer
-	stderrPipe, err := cmd.StderrPipe()
-	if err != nil {
-		return "", "", -1, err
-	}
-	go io.Copy(&stderrBuffer, stderrPipe)
-	out, err := cmd.Output()
+	cmd.Stderr = &stderrBuffer
+	cmd.Stdout = &stdoutBuffer
+	err = cmd.Run()
 
 	if err != nil {
 		var exiterr error
@@ -61,8 +60,8 @@ func runCommandWithStdoutStderr(cmd *exec.Cmd) (stdout string, stderr string, ex
 			exitCode = 127
 		}
 	}
-	stdout = string(out)
-	stderr = string(stderrBuffer.Bytes())
+	stdout = stdoutBuffer.String()
+	stderr = stderrBuffer.String()
 	return
 }