Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2026-04-17 18:03:26 +02:00
parent 11770b4058
commit 0e701ec6e9
5 changed files with 61 additions and 104 deletions

View File

@@ -44,6 +44,25 @@ type TestEnv struct {
cmd *exec.Cmd
done chan error
outputBuf *bytes.Buffer
outputWriter *switchableWriter
}
type switchableWriter struct {
mu sync.Mutex
w io.Writer
}
func (s *switchableWriter) Write(p []byte) (int, error) {
s.mu.Lock()
w := s.w
s.mu.Unlock()
return w.Write(p)
}
func (s *switchableWriter) switchTo(w io.Writer) {
s.mu.Lock()
s.w = w
s.mu.Unlock()
}
func Setup() {
@@ -93,8 +112,10 @@ func Setup() {
} else {
var buf bytes.Buffer
testEnv.outputBuf = &buf
cmd.Stdout = &buf
cmd.Stderr = &buf
sw := &switchableWriter{w: &buf}
testEnv.outputWriter = sw
cmd.Stdout = sw
cmd.Stderr = sw
}
testEnv.cmd = cmd
@@ -126,8 +147,7 @@ func Setup() {
}
if !verbose {
cmd.Stdout = io.Discard
cmd.Stderr = io.Discard
testEnv.outputWriter.switchTo(io.Discard)
}
})
}