diff options
Diffstat (limited to 'tests/test/script/builtin/rmdir.testscript')
-rw-r--r-- | tests/test/script/builtin/rmdir.testscript | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/tests/test/script/builtin/rmdir.testscript b/tests/test/script/builtin/rmdir.testscript new file mode 100644 index 0000000..99dcaf1 --- /dev/null +++ b/tests/test/script/builtin/rmdir.testscript @@ -0,0 +1,114 @@ +# file : tests/test/script/builtin/rmdir.testscript +# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +.include ../common.testscript + +: 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 && $b + rmdir '' 2>"rmdir: invalid path ''" == 1 + EOI + + : test-scope + : + : Removing scope directory fails. + : + $c <<EOI && $b + rmdir ./ 2>"rmdir: '$~' contains test working directory '$~'" == 1 + EOI + + : 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 && $b + 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 + + : 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 && $b + mkdir a &!a; + rmdir a + EOI + + : not-exists + : + { + : fail + : Removing non-existing directory fails. + : + $c <<EOI && $b + rmdir a 2>>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-exists/fail/test/1/a': .+% + EOE + EOI + + : force + : + : Removing non-existing directory succeeds with -f option. + : + $c <'rmdir -f a' && $b + } + + : not-empty + : + : Removing non-empty directory fails. + : + $c <<EOI && $b + mkdir -p a/b; + rmdir a 2>>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-empty/test/1/a': .+% + EOE + EOI + + : not-dir + : + : Removing not a directory path fails. + : + $c <<EOI && $b + touch a; + rmdir a 2>>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-dir/test/1/a': .+% + EOE + EOI +} |