From 2fa074ebd43cbfea0f6b4bc92a4099a273458562 Mon Sep 17 00:00:00 2001 From: Bernhard Voelker Date: Fri, 22 Nov 2013 15:54:06 +0100 Subject: tests: enhance rm test regarding "." and ".." Recent commit 2da7009d changed the error diagnostic of rm(1) trying to remove "." or "..". Enhance the corresponding test. * tests/rm/r-4.sh: Ensure rm(1) outputs the expected error diagnostic. --- tests/rm/r-4.sh | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/rm/r-4.sh b/tests/rm/r-4.sh index 94702a6d1..a3ceaf985 100755 --- a/tests/rm/r-4.sh +++ b/tests/rm/r-4.sh @@ -22,11 +22,26 @@ print_ver_ rm mkdir d || framework_failure_ touch d/a || framework_failure_ -rm -fr d/. 2>/dev/null && fail=1 -rm -fr d/./ 2>/dev/null && fail=1 -rm -fr d/.//// 2>/dev/null && fail=1 -rm -fr d/.. 2>/dev/null && fail=1 -rm -fr d/../ 2>/dev/null && fail=1 +# Expected error diagnostic as grep pattern. +exp="^rm: refusing to remove '\.' or '\.\.' directory: skipping '.*'\$" + +rmtest() +{ + # Try removing - expecting failure. + rm -fr "$1" 2> err && fail=1 + + # Ensure the expected error diagnostic is output. + grep "$exp" err || { cat err; fail=1; } + + return $fail +} + +rmtest 'd/.' || fail=1 +rmtest 'd/./' || fail=1 +rmtest 'd/.////' || fail=1 +rmtest 'd/..' || fail=1 +rmtest 'd/../' || fail=1 + # This test is too dangerous -- if there's a bug you're wiped out! # rm -fr / 2>/dev/null && fail=1 -- cgit v1.2.3-70-g09d2