From 78854e832f84d58236ca1009338a62640cd5a543 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Sat, 14 Jan 2017 21:06:53 +0300 Subject: Add rmdir builtin --- tests/test/script/builtin/buildfile | 2 +- tests/test/script/builtin/rm.test | 71 +++++++++++--------- tests/test/script/builtin/rmdir.test | 125 +++++++++++++++++++++++++++++++++++ 3 files changed, 165 insertions(+), 33 deletions(-) create mode 100644 tests/test/script/builtin/rmdir.test (limited to 'tests/test/script/builtin') 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 <>/~%EOE% == 1 - %rm: unable to remove '.+/test/rm/file/not-exists/test/1/a': .+% - EOE - EOI - $b + { + : fail + : + : Removing non-existing file fails. + : + $c <>/~%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 <>/~%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 <>/~%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 <"rmdir: invalid path ''" == 1 + EOI + $b + + : test-scope + : + : Removing scope directory fails. + : + $c <"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 <>/~%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 <>/~%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 <>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-empty/test/1/a': .+% + EOE + EOI + $b + + : not-dir + : + : Removing not a directory path fails. + : + $c <>/~%EOE% == 1 + %rmdir: unable to remove '.+/dir/not-dir/test/1/a': .+% + EOE + EOI + $b +} -- cgit v1.1