diff options
Diffstat (limited to 'tests/test/script/builtin/rmdir.test')
-rw-r--r-- | tests/test/script/builtin/rmdir.test | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/tests/test/script/builtin/rmdir.test b/tests/test/script/builtin/rmdir.test new file mode 100644 index 0000000..7621425 --- /dev/null +++ b/tests/test/script/builtin/rmdir.test @@ -0,0 +1,125 @@ +# file : tests/test/script/builtin/rmdir.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +.include ../common.test + +: no-args +: +{ + : fail + : + : Removing with no arguments fails. + : + $c <'rmdir 2>"rmdir: missing directory" == 1'; + $b + + : force + : + : Removing with no arguments succeeds with -f option. + : + $c <'rmdir -f'; + $b +} + +: dir +: +{ + : empty-path + : + : Removing an empty path fails. + : + $c <<EOI; + rmdir '' 2>"rmdir: invalid path ''" == 1 + EOI + $b + + : test-scope + : + : Removing scope directory fails. + : + $c <<EOI; + rmdir ./ 2>"rmdir: '$~' contains test working directory '$~'" == 1 + EOI + $b + + : outside-scope + : + : Need to use a path that unlikely exists (not to remove something useful). + : + { + : fail + : + : Removing directory outside the testscript working directory fails. + : + $c <<EOI; + rmdir ../../a/b/c 2>>/~%EOE% == 1 + %rmdir: '.+/dir/outside-scope/fail/a/b/c' is out of working directory '.+/dir/outside-scope/fail/test'% + EOE + EOI + $b + + : force + : + : Removing path outside the testscript working directory succeeds with -f + : option. + : + $c <'rmdir -f ../../a/b/c'; + $b + } + + : exists + : + : Removing existing directory succeeds. + : + $c <<EOI; + mkdir a &!a; + rmdir a + EOI + $b + + : not-exists + : + { + : fail + : Removing non-existing directory fails. + : + $c <<EOI; + rmdir a 2>>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-exists/fail/test/1/a': .+% + EOE + EOI + $b + + : force + : + : Removing non-existing directory succeeds with -f option. + : + $c <'rmdir -f a'; + $b + } + + : not-empty + : + : Removing non-empty directory fails. + : + $c <<EOI; + mkdir -p a/b; + rmdir a 2>>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-empty/test/1/a': .+% + EOE + EOI + $b + + : not-dir + : + : Removing not a directory path fails. + : + $c <<EOI; + touch a; + rmdir a 2>>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-dir/test/1/a': .+% + EOE + EOI + $b +} |