diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2017-01-14 21:06:53 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2017-01-19 17:56:07 +0300 |
commit | 78854e832f84d58236ca1009338a62640cd5a543 (patch) | |
tree | 77bc1341ecb77a2f28a0979c5678ef4abacdfe2a /tests | |
parent | a83f3866667bca073c4d4c5d80b4deb5ac05906c (diff) |
Add rmdir builtin
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test/script/builtin/buildfile | 2 | ||||
-rw-r--r-- | tests/test/script/builtin/rm.test | 71 | ||||
-rw-r--r-- | tests/test/script/builtin/rmdir.test | 125 |
3 files changed, 165 insertions, 33 deletions
diff --git a/tests/test/script/builtin/buildfile b/tests/test/script/builtin/buildfile index 8c4196d..fe25065 100644 --- a/tests/test/script/builtin/buildfile +++ b/tests/test/script/builtin/buildfile @@ -2,4 +2,4 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -./: test{cat echo mkdir rm touch} $b +./: test{cat echo mkdir rm rmdir touch} $b diff --git a/tests/test/script/builtin/rm.test b/tests/test/script/builtin/rm.test index a6de003..937633b 100644 --- a/tests/test/script/builtin/rm.test +++ b/tests/test/script/builtin/rm.test @@ -37,21 +37,25 @@ : not-exists : - : Removing non-existing file fails. - : - $c <<EOI; - rm a 2>>/~%EOE% == 1 - %rm: unable to remove '.+/test/rm/file/not-exists/test/1/a': .+% - EOE - EOI - $b + { + : fail + : + : Removing non-existing file fails. + : + $c <<EOI; + rm a 2>>/~%EOE% == 1 + %rm: unable to remove '.+/file/not-exists/fail/test/1/a': .+% + EOE + EOI + $b - : not-exists-force - : - : Removing non-existing file succeeds with -f option. - : - $c <'rm -f a'; - $b + : force + : + : Removing non-existing file succeeds with -f option. + : + $c <'rm -f a'; + $b + } } : dir @@ -101,23 +105,26 @@ : outside-scope : - : Removing path outside the testscript working directory fails. Need to use - : a path that unlikely exists (not to remove something useful). - : - : - $c <<EOI; - rm ../../a/b/c 2>>/~%EOE% == 1 - %rm: '.+/path/outside-scope/a/b/c' is out of working directory '.+/outside-scope/test'% - EOE - EOI - $b + : Need to use a path that unlikely exists (not to remove something useful). + : + { + : fail + : + : Removing path outside the testscript working directory fails. + : + $c <<EOI; + rm ../../a/b/c 2>>/~%EOE% == 1 + %rm: '.+/path/outside-scope/fail/a/b/c' is out of working directory '.+/path/outside-scope/fail/test'% + EOE + EOI + $b - : outside-scope-force - : - : Removing path outside the testscript working directory succeeds with -f - : option. Need to use a path that unlikely exists (not to remove something - : useful). - : - $c <'rm -f ../../a/b/c'; - $b + : force + : + : Removing path outside the testscript working directory succeeds with -f + : option. + : + $c <'rm -f ../../a/b/c'; + $b + } } 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 +} |