Skip to content

Commit 4b7cd84

Browse files
e2e-upgrade: guard function return values behind sync.WaitGroup (#3461)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
1 parent 132218a commit 4b7cd84

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

e2e/internal/upgrade/upgrade.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,8 @@ func runCommandWithSeparateOutputs(cmd *exec.Cmd) (stdout, stderr []byte, err er
182182
return
183183
}
184184

185-
continuouslyPrintOutput := func(r io.Reader, prefix string) {
185+
continuouslyPrintOutput := func(r io.Reader, prefix string, wg *sync.WaitGroup) {
186+
defer wg.Done()
186187
scanner := bufio.NewScanner(r)
187188
for scanner.Scan() {
188189
output := scanner.Text()
@@ -196,12 +197,15 @@ func runCommandWithSeparateOutputs(cmd *exec.Cmd) (stdout, stderr []byte, err er
196197
}
197198
}
198199

199-
go continuouslyPrintOutput(stdoutIn, "stdout")
200-
go continuouslyPrintOutput(stderrIn, "stderr")
200+
wg := &sync.WaitGroup{}
201+
wg.Add(2)
202+
go continuouslyPrintOutput(stdoutIn, "stdout", wg)
203+
go continuouslyPrintOutput(stderrIn, "stderr", wg)
201204

202205
if err = cmd.Wait(); err != nil {
203206
err = fmt.Errorf("wait for command to finish: %w", err)
204207
}
208+
wg.Wait()
205209

206210
return stdout, stderr, err
207211
}

0 commit comments

Comments
 (0)