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  }