# file : tests/test/script/builtin/rm.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 <'rm 2>"rm: missing file" == 1' && $b : force : : Removing with no arguments succeeds with -f option. : $c <'rm -f' && $b } : file : { : exists : : Removing existing file succeeds. : $c <>/~%EOE% == 1 %rm: unable to remove '.+/file/not-exists/fail/test/1/a': .+% EOE EOI : force : : Removing non-existing file succeeds with -f option. : $c <'rm -f a' && $b } } : dir : { : default : : Removing directory fails by default. : $c <"rm: '$normalize([path] $~/a)' is a directory" == 1 EOI : recursive : : Removing directory succeeds with -r option. : $c <"rm: '([string] $~)' contains test working directory '$~'" == 1 EOI } : path : { : empty : : Removing an empty path fails. : $c <"rm: invalid path ''" == 1 EOI : outside-scope : : 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 : force : : Removing path outside the testscript working directory succeeds with -f : option. : $c <'rm -f ../../a/b/c' && $b } }