mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-02-19 22:02:21 +02:00
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.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user