@@ -21,19 +21,34 @@ var envVarMagic = "this is magic"
2121func testMain (t * testing.T , d string , args []string ) {
2222 os .Args = args
2323 os .Setenv (envVarName , envVarMagic )
24- fd , err := os .Create (filepath .Join (d , "logs " ))
24+ stdout , err := os .Create (filepath .Join (d , "stdout " ))
2525 assert .NoError (t , err )
26- os .Stdout = fd
26+ defer stdout .Close ()
27+ stderr , err := os .Create (filepath .Join (d , "stderr" ))
28+ assert .NoError (t , err )
29+ defer stderr .Close ()
30+ defer func (o , e * os.File ) {
31+ os .Stdout = o
32+ os .Stderr = e
33+ }(os .Stdout , os .Stderr )
34+ os .Stdout = stdout
35+ os .Stderr = stderr
2736 exit = func (code int ) {
2837 assert .Equal (t , 0 , code )
2938 }
3039 main ()
31- assert .NoError (t , fd .Close ())
32- fd , err = os .Open (filepath .Join (d , "logs" ))
40+ fd , err := os .Open (filepath .Join (d , "stdout" ))
3341 assert .NoError (t , err )
42+ defer fd .Close ()
3443 b , err := ioutil .ReadAll (fd )
3544 assert .NoError (t , err )
3645 assert .Equal (t , expectedOutput + "\n " , string (b ))
46+ fd , err = os .Open (filepath .Join (d , "stderr" ))
47+ assert .NoError (t , err )
48+ defer fd .Close ()
49+ b , err = ioutil .ReadAll (fd )
50+ assert .NoError (t , err )
51+ assert .Equal (t , "" , string (b ))
3752}
3853
3954func TestIntegration (t * testing.T ) {
@@ -58,7 +73,7 @@ func TestIntegration(t *testing.T) {
5873 "platform": "linux/amd64"
5974 }` ))
6075 }))
61- testMain (t , d , []string {"test" , "--server" , s .URL , "--token" , "test-token" })
76+ testMain (t , d , []string {"test" , "--server" , s .URL , "--token" , "test-token" , "--unknown" , "-o" , "something" })
6277 testMain (t , d , []string {"test" , "--server" , s .URL , "--token" , "test-token" , "--help" })
6378}
6479
0 commit comments