@@ -279,11 +279,12 @@ func TestStderr(t *testing.T) {
279
279
}
280
280
281
281
cmd := NewCommand ("echo" , []string {"error message" , ">&2" })
282
- buffer := & bytes.Buffer {}
283
- cmd .Stdout = buffer
282
+ bufferStdout , bufferStderr := & bytes.Buffer {}, & bytes.Buffer {}
283
+ cmd .Stdout = bufferStdout
284
+ cmd .Stderr = bufferStderr
284
285
_ , stderr , err := cmd .Run ()
285
286
require .NoError (t , err )
286
- assert .Empty (t , buffer .String ())
287
+ assert .Empty (t , bufferStdout .String ())
287
288
assert .Equal (t , expected , stderr )
288
289
}
289
290
@@ -295,14 +296,38 @@ func TestStderrSignalledCommand(t *testing.T) {
295
296
296
297
sigChan := make (chan os.Signal , 1 )
297
298
cmd := NewSignalledCommand ("echo" , []string {"error message" , ">&2" }, sigChan )
298
- buffer := & bytes.Buffer {}
299
- cmd .Stdout = buffer
299
+ bufferStdout , bufferStderr := & bytes.Buffer {}, & bytes.Buffer {}
300
+ cmd .Stdout = bufferStdout
301
+ cmd .Stderr = bufferStderr
300
302
_ , stderr , err := cmd .Run ()
301
303
require .NoError (t , err )
302
- assert .Empty (t , buffer .String ())
304
+ assert .Empty (t , bufferStdout .String ())
303
305
assert .Equal (t , expected , stderr )
304
306
}
305
307
308
+ func TestStderrNotRedirected (t * testing.T ) {
309
+ cmd := NewCommand ("echo" , []string {"error message" , ">&2" })
310
+ bufferStdout := & bytes.Buffer {}
311
+ cmd .Stdout = bufferStdout
312
+ cmd .Stderr = nil
313
+ _ , stderr , err := cmd .Run ()
314
+ require .NoError (t , err )
315
+ assert .Empty (t , bufferStdout .String ())
316
+ assert .Equal (t , "" , stderr )
317
+ }
318
+
319
+ func TestStderrNotRedirectedSignalledCommand (t * testing.T ) {
320
+ sigChan := make (chan os.Signal , 1 )
321
+ cmd := NewSignalledCommand ("echo" , []string {"error message" , ">&2" }, sigChan )
322
+ bufferStdout := & bytes.Buffer {}
323
+ cmd .Stdout = bufferStdout
324
+ cmd .Stderr = nil
325
+ _ , stderr , err := cmd .Run ()
326
+ require .NoError (t , err )
327
+ assert .Empty (t , bufferStdout .String ())
328
+ assert .Equal (t , "" , stderr )
329
+ }
330
+
306
331
// Try to make a test to make sure restic is catching the signal properly
307
332
func TestResticCanCatchInterruptSignal (t * testing.T ) {
308
333
// if runtime.GOOS == "windows" {
0 commit comments