diff --git a/staging/src/k8s.io/mount-utils/mount_linux_test.go b/staging/src/k8s.io/mount-utils/mount_linux_test.go index 8083656aa47..26291030a45 100644 --- a/staging/src/k8s.io/mount-utils/mount_linux_test.go +++ b/staging/src/k8s.io/mount-utils/mount_linux_test.go @@ -26,6 +26,7 @@ import ( "reflect" "strings" "testing" + "time" utilexec "k8s.io/utils/exec" testexec "k8s.io/utils/exec/testing" @@ -620,3 +621,28 @@ func makeFakeCommandAction(stdout string, err error) testexec.FakeCommandAction return testexec.InitFakeCmd(&c, cmd, args...) } } + +func TestNotMountedBehaviorOfUnmount(t *testing.T) { + target, err := ioutil.TempDir("", "kubelet-umount") + if err != nil { + t.Errorf("Cannot create temp dir: %v", err) + } + + defer os.RemoveAll(target) + + m := Mounter{withSafeNotMountedBehavior: true} + if err = m.Unmount(target); err != nil { + t.Errorf(`Expect complete Unmount(), but it dose not: %v`, err) + } + + if err = tryUnmount(target, m.withSafeNotMountedBehavior, time.Minute); err != nil { + t.Errorf(`Expect complete tryUnmount(), but it does not: %v`, err) + } + + // forceUmount exec "umount -f", so skip this case if user is not root. + if os.Getuid() == 0 { + if err = forceUmount(target, m.withSafeNotMountedBehavior); err != nil { + t.Errorf(`Expect complete forceUnmount(), but it does not: %v`, err) + } + } +}