github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/runc/libcontainer/devices/devices_test.go (about) 1 // +build linux freebsd 2 3 package devices 4 5 import ( 6 "errors" 7 "os" 8 "testing" 9 ) 10 11 func TestDeviceFromPathLstatFailure(t *testing.T) { 12 testError := errors.New("test error") 13 14 // Override os.Lstat to inject error. 15 osLstat = func(path string) (os.FileInfo, error) { 16 return nil, testError 17 } 18 19 _, err := DeviceFromPath("", "") 20 if err != testError { 21 t.Fatalf("Unexpected error %v, expected %v", err, testError) 22 } 23 } 24 25 func TestHostDevicesIoutilReadDirFailure(t *testing.T) { 26 testError := errors.New("test error") 27 28 // Override ioutil.ReadDir to inject error. 29 ioutilReadDir = func(dirname string) ([]os.FileInfo, error) { 30 return nil, testError 31 } 32 33 _, err := HostDevices() 34 if err != testError { 35 t.Fatalf("Unexpected error %v, expected %v", err, testError) 36 } 37 } 38 39 func TestHostDevicesIoutilReadDirDeepFailure(t *testing.T) { 40 testError := errors.New("test error") 41 called := false 42 43 // Override ioutil.ReadDir to inject error after the first call. 44 ioutilReadDir = func(dirname string) ([]os.FileInfo, error) { 45 if called { 46 return nil, testError 47 } 48 called = true 49 50 // Provoke a second call. 51 fi, err := os.Lstat("/tmp") 52 if err != nil { 53 t.Fatalf("Unexpected error %v", err) 54 } 55 56 return []os.FileInfo{fi}, nil 57 } 58 59 _, err := HostDevices() 60 if err != testError { 61 t.Fatalf("Unexpected error %v, expected %v", err, testError) 62 } 63 }