github.com/reconquest/executil-go@v0.0.0-20181110204642-1f5c2d67813f/exit_error_test.go (about) 1 package executil 2 3 import ( 4 "errors" 5 "os" 6 "os/exec" 7 "testing" 8 9 "golang.org/x/crypto/ssh" 10 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestIsExitError_ReturnsTrueForOsExecExitError(t *testing.T) { 15 test := assert.New(t) 16 17 test.True( 18 IsExitError( 19 &exec.ExitError{ProcessState: &os.ProcessState{}}, 20 ), 21 ) 22 } 23 24 func TestIsExitError_ReturnsTrueForExecutilErrorWhenRunIsOsExecExitError( 25 t *testing.T, 26 ) { 27 test := assert.New(t) 28 29 test.True( 30 IsExitError( 31 &Error{RunErr: &exec.ExitError{ProcessState: &os.ProcessState{}}}, 32 ), 33 ) 34 } 35 36 func TestIsExitError_ReturnsTrueForSshExitError(t *testing.T) { 37 test := assert.New(t) 38 39 test.True( 40 IsExitError(new(ssh.ExitError)), 41 ) 42 } 43 44 func TestIsExitError_ReturnsFalseForExecutilErrorWithNonExecError( 45 t *testing.T, 46 ) { 47 test := assert.New(t) 48 49 test.False(IsExitError(&Error{RunErr: errors.New("blaaa")})) 50 } 51 52 func TestIsExitError_ReturnsFalseForExecutilErrorWithNil( 53 t *testing.T, 54 ) { 55 test := assert.New(t) 56 57 test.False(IsExitError(&Error{RunErr: nil})) 58 } 59 60 func TestIsExitError_ReturnsFalseForAllErrors( 61 t *testing.T, 62 ) { 63 test := assert.New(t) 64 65 test.False(IsExitError(errors.New("u shall not pass"))) 66 } 67 68 func TestIsExitError_ReturnsFalseForNil( 69 t *testing.T, 70 ) { 71 test := assert.New(t) 72 73 test.False(IsExitError(nil)) 74 }