summaryrefslogtreecommitdiff
path: root/tests/rm
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2014-03-05 18:41:16 +0000
committerPádraig Brady <P@draigBrady.com>2014-03-05 19:02:20 +0000
commit056d6de78fcf11a0f404f25faf8cecc9f9ee9c1c (patch)
treecd5235d3fd1e8b0142c543541675dd66f26c3d91 /tests/rm
parent5dce6bdfafc930dfd17d5d16aea7d1add3472066 (diff)
downloadcoreutils-056d6de78fcf11a0f404f25faf8cecc9f9ee9c1c.tar.xz
tests: avoid the :> construct which can hide errors
On most shells `:>file || framework_failure_` will not evaluate the framework_failure_ even if there was an error writing the file. shells which do evaluate the failure are ksh 93u+ and bash 4.2, while shells wich don't include bash 4.3, solaris, freebsd, dash. Furthermore this construct is problematic on Solaris 10 sh, which will try to optimize away a `:' command in a loop after the first iteration, even if it is redirected. * tests/cp/link-deref.sh: Remove the leading colon on redirections. * tests/cp/reflink-perm.sh: Likewise. * tests/id/zero.sh: Likewise. * tests/install/install-C.sh: Likewise. * tests/misc/env.sh: Likewise. * tests/misc/md5sum-bsd.sh: Likewise. * tests/misc/runcon-no-reorder.sh: Likewise. * tests/mv/partition-perm.sh: Likewise. * tests/rm/r-root.sh: Likewise. * tests/split/l-chunk.sh: Likewise. * tests/split/line-bytes.sh: Likewise. * tests/tail-2/inotify-rotate.sh: Likewise. * tests/tail-2/retry.sh: Likewise. * tests/tail-2/symlink.sh: Likewise. * tests/tail-2/wait.sh: Likewise. * tests/touch/read-only.sh: Likewise. + cfg.mk (sc_prohibit_colon_redirection): A new syntax check to avoid further instances of this creeping in.
Diffstat (limited to 'tests/rm')
-rwxr-xr-xtests/rm/r-root.sh6
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/rm/r-root.sh b/tests/rm/r-root.sh
index 04a88eb27..e17b85bd1 100755
--- a/tests/rm/r-root.sh
+++ b/tests/rm/r-root.sh
@@ -104,7 +104,7 @@ test -d dir && framework_failure_
# rm(1) must succeed as before, but this time both the evidence file "x"
# and the test file / directory must still exist afterward.
mkdir dir || framework_failure_
-: > file || framework_failure_
+> file || framework_failure_
skip=
for file in dir file ; do
@@ -168,8 +168,8 @@ done
# Exercise "rm -r file1 / file2".
# Expect a non-Zero exit status representing failure to remove "/",
# yet 'file1' and 'file2' should be removed.
-: > file1 || framework_failure_
-: > file2 || framework_failure_
+> file1 || framework_failure_
+> file2 || framework_failure_
# Now that we know that 'rm' won't call the unlinkat() system function for "/",
# we could probably execute it without the LD_PRELOAD'ed safety net.