summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2022-12-16 14:39:18 -0500
committerTavian Barnes <tavianator@tavianator.com>2022-12-16 15:06:25 -0500
commit7d87b96b421b76e387cee903b7b7c1bc16c54310 (patch)
treee5c90a458a1418578cf31fd80301f6f99ab96251 /tests
parente01042b84abdfa224d47e6d11eb9798ce4c7d2f8 (diff)
downloadbfs-7d87b96b421b76e387cee903b7b7c1bc16c54310.tar.xz
tests: Move crash detection into invoke_bfs, use ! instead of fail
Diffstat (limited to 'tests')
-rw-r--r--tests/bfs/D_incomplete.sh2
-rw-r--r--tests/bfs/and_incomplete.sh2
-rw-r--r--tests/bfs/comma_incomplete.sh2
-rw-r--r--tests/bfs/exclude_exclude.sh2
-rw-r--r--tests/bfs/exclude_print.sh2
-rw-r--r--tests/bfs/exec_flush_fprint_fail.sh2
-rw-r--r--tests/bfs/fprint_error_stderr.sh2
-rw-r--r--tests/bfs/fprint_error_stdout.sh2
-rw-r--r--tests/bfs/high_byte.sh2
-rw-r--r--tests/bfs/links_empty.sh2
-rw-r--r--tests/bfs/links_invalid.sh2
-rw-r--r--tests/bfs/links_negative.sh2
-rw-r--r--tests/bfs/links_noarg.sh2
-rw-r--r--tests/bfs/newerma_nonexistent.sh2
-rw-r--r--tests/bfs/newermq.sh2
-rw-r--r--tests/bfs/newermt_invalid.sh2
-rw-r--r--tests/bfs/newerqm.sh2
-rw-r--r--tests/bfs/or_incomplete.sh2
-rw-r--r--tests/bfs/perm_symbolic_double_comma.sh2
-rw-r--r--tests/bfs/perm_symbolic_missing_action.sh2
-rw-r--r--tests/bfs/perm_symbolic_trailing_comma.sh2
-rw-r--r--tests/bfs/printf_duplicate_flag.sh2
-rw-r--r--tests/bfs/printf_everything.sh4
-rw-r--r--tests/bfs/printf_incomplete_escape.sh2
-rw-r--r--tests/bfs/printf_incomplete_format.sh2
-rw-r--r--tests/bfs/printf_invalid_escape.sh2
-rw-r--r--tests/bfs/printf_invalid_format.sh2
-rw-r--r--tests/bfs/printf_must_be_numeric.sh2
-rw-r--r--tests/bfs/stderr_fails_loudly.sh2
-rw-r--r--tests/bfs/unexpected_operator.sh2
-rw-r--r--tests/bfs/xtype_depth.sh2
-rw-r--r--tests/bsd/f_incomplete.sh2
-rw-r--r--tests/bsd/mtime_bad_unit.sh2
-rw-r--r--tests/bsd/mtime_missing_unit.sh2
-rw-r--r--tests/common/maxdepth_incomplete.sh2
-rw-r--r--tests/common/mindepth_incomplete.sh2
-rw-r--r--tests/gnu/exec_flush_fail.sh2
-rw-r--r--tests/gnu/exec_nothing.sh2
-rw-r--r--tests/gnu/exec_plus_flush_fail.sh2
-rw-r--r--tests/gnu/files0_from_empty.sh2
-rw-r--r--tests/gnu/files0_from_error.sh2
-rw-r--r--tests/gnu/files0_from_none.sh2
-rw-r--r--tests/gnu/files0_from_nothing.sh2
-rw-r--r--tests/gnu/files0_from_nowhere.sh2
-rw-r--r--tests/gnu/files0_from_ok.sh2
-rw-r--r--tests/gnu/fls_nonexistent.sh2
-rw-r--r--tests/gnu/fprint0_nonexistent.sh2
-rw-r--r--tests/gnu/fprint_error.sh2
-rw-r--r--tests/gnu/fprint_noarg.sh2
-rw-r--r--tests/gnu/fprint_nonexistent.sh2
-rw-r--r--tests/gnu/fprintf_nofile.sh2
-rw-r--r--tests/gnu/fprintf_noformat.sh2
-rw-r--r--tests/gnu/fprintf_nonexistent.sh2
-rw-r--r--tests/gnu/ignore_readdir_race_root.sh2
-rw-r--r--tests/gnu/ok_nothing.sh2
-rw-r--r--tests/gnu/print_error.sh2
-rw-r--r--tests/gnu/regex_error.sh2
-rw-r--r--tests/posix/closed_stderr.sh2
-rw-r--r--tests/posix/closed_stdout.sh2
-rw-r--r--tests/posix/exec_plus_nothing.sh2
-rw-r--r--tests/posix/extra_paren.sh2
-rw-r--r--tests/posix/incomplete.sh2
-rw-r--r--tests/posix/missing_paren.sh2
-rw-r--r--tests/posix/newer_nonexistent.sh2
-rw-r--r--tests/posix/ok_plus_nothing.sh2
-rw-r--r--tests/posix/readdir_error.sh2
-rwxr-xr-xtests/tests.sh16
67 files changed, 72 insertions, 78 deletions
diff --git a/tests/bfs/D_incomplete.sh b/tests/bfs/D_incomplete.sh
index 396d365..30c522a 100644
--- a/tests/bfs/D_incomplete.sh
+++ b/tests/bfs/D_incomplete.sh
@@ -1 +1 @@
-fail invoke_bfs -D
+! invoke_bfs -D
diff --git a/tests/bfs/and_incomplete.sh b/tests/bfs/and_incomplete.sh
index f7bc2c3..05abc2d 100644
--- a/tests/bfs/and_incomplete.sh
+++ b/tests/bfs/and_incomplete.sh
@@ -1 +1 @@
-fail invoke_bfs -print -a
+! invoke_bfs -print -a
diff --git a/tests/bfs/comma_incomplete.sh b/tests/bfs/comma_incomplete.sh
index 07cf505..bd60168 100644
--- a/tests/bfs/comma_incomplete.sh
+++ b/tests/bfs/comma_incomplete.sh
@@ -1 +1 @@
-fail invoke_bfs -print ,
+! invoke_bfs -print ,
diff --git a/tests/bfs/exclude_exclude.sh b/tests/bfs/exclude_exclude.sh
index c687623..739342f 100644
--- a/tests/bfs/exclude_exclude.sh
+++ b/tests/bfs/exclude_exclude.sh
@@ -1 +1 @@
-fail invoke_bfs basic -exclude -exclude -name foo
+! invoke_bfs basic -exclude -exclude -name foo
diff --git a/tests/bfs/exclude_print.sh b/tests/bfs/exclude_print.sh
index 52ff0fd..dc89e1d 100644
--- a/tests/bfs/exclude_print.sh
+++ b/tests/bfs/exclude_print.sh
@@ -1 +1 @@
-fail invoke_bfs basic -exclude -print
+! invoke_bfs basic -exclude -print
diff --git a/tests/bfs/exec_flush_fprint_fail.sh b/tests/bfs/exec_flush_fprint_fail.sh
index b58624a..cd38e41 100644
--- a/tests/bfs/exec_flush_fprint_fail.sh
+++ b/tests/bfs/exec_flush_fprint_fail.sh
@@ -1,2 +1,2 @@
test -e /dev/full || skip
-fail invoke_bfs basic/a -fprint /dev/full -exec true \;
+! invoke_bfs basic/a -fprint /dev/full -exec true \;
diff --git a/tests/bfs/fprint_error_stderr.sh b/tests/bfs/fprint_error_stderr.sh
index e51d026..2cc4037 100644
--- a/tests/bfs/fprint_error_stderr.sh
+++ b/tests/bfs/fprint_error_stderr.sh
@@ -1,2 +1,2 @@
test -e /dev/full || skip
-fail invoke_bfs basic -maxdepth 0 -fprint /dev/full 2>/dev/full
+! invoke_bfs basic -maxdepth 0 -fprint /dev/full 2>/dev/full
diff --git a/tests/bfs/fprint_error_stdout.sh b/tests/bfs/fprint_error_stdout.sh
index 6aa4b11..42a7b36 100644
--- a/tests/bfs/fprint_error_stdout.sh
+++ b/tests/bfs/fprint_error_stdout.sh
@@ -1,2 +1,2 @@
test -e /dev/full || skip
-fail invoke_bfs basic -maxdepth 0 -fprint /dev/full >/dev/full
+! invoke_bfs basic -maxdepth 0 -fprint /dev/full >/dev/full
diff --git a/tests/bfs/high_byte.sh b/tests/bfs/high_byte.sh
index 222f24b..c76199f 100644
--- a/tests/bfs/high_byte.sh
+++ b/tests/bfs/high_byte.sh
@@ -1 +1 @@
-fail invoke_bfs -$'\xFF'
+! invoke_bfs -$'\xFF'
diff --git a/tests/bfs/links_empty.sh b/tests/bfs/links_empty.sh
index 34c7c25..42cf6e5 100644
--- a/tests/bfs/links_empty.sh
+++ b/tests/bfs/links_empty.sh
@@ -1 +1 @@
-fail invoke_bfs links -links ''
+! invoke_bfs links -links ''
diff --git a/tests/bfs/links_invalid.sh b/tests/bfs/links_invalid.sh
index ff69fa6..4d139c9 100644
--- a/tests/bfs/links_invalid.sh
+++ b/tests/bfs/links_invalid.sh
@@ -1 +1 @@
-fail invoke_bfs links -links ASDF
+! invoke_bfs links -links ASDF
diff --git a/tests/bfs/links_negative.sh b/tests/bfs/links_negative.sh
index b5d9c58..e664b99 100644
--- a/tests/bfs/links_negative.sh
+++ b/tests/bfs/links_negative.sh
@@ -1 +1 @@
-fail invoke_bfs links -links +-1
+! invoke_bfs links -links +-1
diff --git a/tests/bfs/links_noarg.sh b/tests/bfs/links_noarg.sh
index 5dede5f..5c948dc 100644
--- a/tests/bfs/links_noarg.sh
+++ b/tests/bfs/links_noarg.sh
@@ -1 +1 @@
-fail invoke_bfs links -links
+! invoke_bfs links -links
diff --git a/tests/bfs/newerma_nonexistent.sh b/tests/bfs/newerma_nonexistent.sh
index 7f3695f..cdedb4a 100644
--- a/tests/bfs/newerma_nonexistent.sh
+++ b/tests/bfs/newerma_nonexistent.sh
@@ -1 +1 @@
-fail invoke_bfs times -newerma basic/nonexistent
+! invoke_bfs times -newerma basic/nonexistent
diff --git a/tests/bfs/newermq.sh b/tests/bfs/newermq.sh
index 2a22586..2f705dc 100644
--- a/tests/bfs/newermq.sh
+++ b/tests/bfs/newermq.sh
@@ -1 +1 @@
-fail invoke_bfs times -newermq times/a
+! invoke_bfs times -newermq times/a
diff --git a/tests/bfs/newermt_invalid.sh b/tests/bfs/newermt_invalid.sh
index 61d2485..98efece 100644
--- a/tests/bfs/newermt_invalid.sh
+++ b/tests/bfs/newermt_invalid.sh
@@ -1 +1 @@
-fail invoke_bfs times -newermt not_a_date_time
+! invoke_bfs times -newermt not_a_date_time
diff --git a/tests/bfs/newerqm.sh b/tests/bfs/newerqm.sh
index da84350..c0cff98 100644
--- a/tests/bfs/newerqm.sh
+++ b/tests/bfs/newerqm.sh
@@ -1 +1 @@
-fail invoke_bfs times -newerqm times/a
+! invoke_bfs times -newerqm times/a
diff --git a/tests/bfs/or_incomplete.sh b/tests/bfs/or_incomplete.sh
index c941b95..4af31b6 100644
--- a/tests/bfs/or_incomplete.sh
+++ b/tests/bfs/or_incomplete.sh
@@ -1 +1 @@
-fail invoke_bfs -print -o
+! invoke_bfs -print -o
diff --git a/tests/bfs/perm_symbolic_double_comma.sh b/tests/bfs/perm_symbolic_double_comma.sh
index 66db0ac..48f9d4b 100644
--- a/tests/bfs/perm_symbolic_double_comma.sh
+++ b/tests/bfs/perm_symbolic_double_comma.sh
@@ -1 +1 @@
-fail invoke_bfs perms -perm a+r,,u+w
+! invoke_bfs perms -perm a+r,,u+w
diff --git a/tests/bfs/perm_symbolic_missing_action.sh b/tests/bfs/perm_symbolic_missing_action.sh
index 3b18721..28446ab 100644
--- a/tests/bfs/perm_symbolic_missing_action.sh
+++ b/tests/bfs/perm_symbolic_missing_action.sh
@@ -1 +1 @@
-fail invoke_bfs perms -perm a
+! invoke_bfs perms -perm a
diff --git a/tests/bfs/perm_symbolic_trailing_comma.sh b/tests/bfs/perm_symbolic_trailing_comma.sh
index c52ebe6..01bbc16 100644
--- a/tests/bfs/perm_symbolic_trailing_comma.sh
+++ b/tests/bfs/perm_symbolic_trailing_comma.sh
@@ -1 +1 @@
-fail invoke_bfs perms -perm a+r,
+! invoke_bfs perms -perm a+r,
diff --git a/tests/bfs/printf_duplicate_flag.sh b/tests/bfs/printf_duplicate_flag.sh
index 77650d0..5ff29f1 100644
--- a/tests/bfs/printf_duplicate_flag.sh
+++ b/tests/bfs/printf_duplicate_flag.sh
@@ -1 +1 @@
-fail invoke_bfs basic -printf '%--p'
+! invoke_bfs basic -printf '%--p'
diff --git a/tests/bfs/printf_everything.sh b/tests/bfs/printf_everything.sh
index 5f20718..5e95830 100644
--- a/tests/bfs/printf_everything.sh
+++ b/tests/bfs/printf_everything.sh
@@ -1,14 +1,14 @@
everything=(%{a,b,c,d,D,f,g,G,h,H,i,k,l,m,M,n,p,P,s,S,t,u,U,y,Y})
# Check if we have fstypes
-if ! fail invoke_bfs basic -printf '%F' -quit >/dev/null; then
+if ! ! invoke_bfs basic -printf '%F' -quit >/dev/null; then
everything+=(%F)
fi
everything+=(%{A,C,T}{%,+,@,a,A,b,B,c,C,d,D,e,F,g,G,h,H,I,j,k,l,m,M,n,p,r,R,s,S,t,T,u,U,V,w,W,x,X,y,Y,z,Z})
# Check if we have birth times
-if ! fail invoke_bfs basic -printf '%w' -quit >/dev/null; then
+if ! ! invoke_bfs basic -printf '%w' -quit >/dev/null; then
everything+=(%w %{B,W}{%,+,@,a,A,b,B,c,C,d,D,e,F,g,G,h,H,I,j,k,l,m,M,n,p,r,R,s,S,t,T,u,U,V,w,W,x,X,y,Y,z,Z})
fi
diff --git a/tests/bfs/printf_incomplete_escape.sh b/tests/bfs/printf_incomplete_escape.sh
index 144add5..f560d28 100644
--- a/tests/bfs/printf_incomplete_escape.sh
+++ b/tests/bfs/printf_incomplete_escape.sh
@@ -1 +1 @@
-fail invoke_bfs basic -printf '\'
+! invoke_bfs basic -printf '\'
diff --git a/tests/bfs/printf_incomplete_format.sh b/tests/bfs/printf_incomplete_format.sh
index 347a0f4..92c6afc 100644
--- a/tests/bfs/printf_incomplete_format.sh
+++ b/tests/bfs/printf_incomplete_format.sh
@@ -1 +1 @@
-fail invoke_bfs basic -printf '%'
+! invoke_bfs basic -printf '%'
diff --git a/tests/bfs/printf_invalid_escape.sh b/tests/bfs/printf_invalid_escape.sh
index ce12233..4338f9b 100644
--- a/tests/bfs/printf_invalid_escape.sh
+++ b/tests/bfs/printf_invalid_escape.sh
@@ -1 +1 @@
-fail invoke_bfs basic -printf '\!'
+! invoke_bfs basic -printf '\!'
diff --git a/tests/bfs/printf_invalid_format.sh b/tests/bfs/printf_invalid_format.sh
index 1717615..59d63a7 100644
--- a/tests/bfs/printf_invalid_format.sh
+++ b/tests/bfs/printf_invalid_format.sh
@@ -1 +1 @@
-fail invoke_bfs basic -printf '%!'
+! invoke_bfs basic -printf '%!'
diff --git a/tests/bfs/printf_must_be_numeric.sh b/tests/bfs/printf_must_be_numeric.sh
index eabb3d6..7c7c3fa 100644
--- a/tests/bfs/printf_must_be_numeric.sh
+++ b/tests/bfs/printf_must_be_numeric.sh
@@ -1 +1 @@
-fail invoke_bfs basic -printf '%+p'
+! invoke_bfs basic -printf '%+p'
diff --git a/tests/bfs/stderr_fails_loudly.sh b/tests/bfs/stderr_fails_loudly.sh
index c423d9e..8572d5a 100644
--- a/tests/bfs/stderr_fails_loudly.sh
+++ b/tests/bfs/stderr_fails_loudly.sh
@@ -1,2 +1,2 @@
test -e /dev/full || skip
-fail invoke_bfs -D all basic -false -fprint /dev/full 2>/dev/full
+! invoke_bfs -D all basic -false -fprint /dev/full 2>/dev/full
diff --git a/tests/bfs/unexpected_operator.sh b/tests/bfs/unexpected_operator.sh
index b3658f6..2eb0e71 100644
--- a/tests/bfs/unexpected_operator.sh
+++ b/tests/bfs/unexpected_operator.sh
@@ -1 +1 @@
-fail invoke_bfs \! -o -print
+! invoke_bfs \! -o -print
diff --git a/tests/bfs/xtype_depth.sh b/tests/bfs/xtype_depth.sh
index cd478af..02c8173 100644
--- a/tests/bfs/xtype_depth.sh
+++ b/tests/bfs/xtype_depth.sh
@@ -1,2 +1,2 @@
# Make sure -xtype is considered side-effecting for facts_when_impure
-fail invoke_bfs loops -xtype l -depth 100
+! invoke_bfs loops -xtype l -depth 100
diff --git a/tests/bsd/f_incomplete.sh b/tests/bsd/f_incomplete.sh
index acb63af..50afe42 100644
--- a/tests/bsd/f_incomplete.sh
+++ b/tests/bsd/f_incomplete.sh
@@ -1,2 +1,2 @@
-fail invoke_bfs -f
+! invoke_bfs -f
diff --git a/tests/bsd/mtime_bad_unit.sh b/tests/bsd/mtime_bad_unit.sh
index 3921f80..6e2caf1 100644
--- a/tests/bsd/mtime_bad_unit.sh
+++ b/tests/bsd/mtime_bad_unit.sh
@@ -1 +1 @@
-fail invoke_bfs times -mtime +1q
+! invoke_bfs times -mtime +1q
diff --git a/tests/bsd/mtime_missing_unit.sh b/tests/bsd/mtime_missing_unit.sh
index 3ac4c97..f6b1f93 100644
--- a/tests/bsd/mtime_missing_unit.sh
+++ b/tests/bsd/mtime_missing_unit.sh
@@ -1 +1 @@
-fail invoke_bfs times -mtime +1w2
+! invoke_bfs times -mtime +1w2
diff --git a/tests/common/maxdepth_incomplete.sh b/tests/common/maxdepth_incomplete.sh
index 536dcf5..0bcb461 100644
--- a/tests/common/maxdepth_incomplete.sh
+++ b/tests/common/maxdepth_incomplete.sh
@@ -1 +1 @@
-fail invoke_bfs basic -maxdepth
+! invoke_bfs basic -maxdepth
diff --git a/tests/common/mindepth_incomplete.sh b/tests/common/mindepth_incomplete.sh
index 19a3b21..6f55a42 100644
--- a/tests/common/mindepth_incomplete.sh
+++ b/tests/common/mindepth_incomplete.sh
@@ -1 +1 @@
-fail invoke_bfs basic -mindepth
+! invoke_bfs basic -mindepth
diff --git a/tests/gnu/exec_flush_fail.sh b/tests/gnu/exec_flush_fail.sh
index ce796b2..5505f7a 100644
--- a/tests/gnu/exec_flush_fail.sh
+++ b/tests/gnu/exec_flush_fail.sh
@@ -1,3 +1,3 @@
# Failure to flush streams before exec should be caught
test -e /dev/full || skip
-fail invoke_bfs basic -print0 -exec true \; >/dev/full
+! invoke_bfs basic -print0 -exec true \; >/dev/full
diff --git a/tests/gnu/exec_nothing.sh b/tests/gnu/exec_nothing.sh
index 9d613e8..443aa0d 100644
--- a/tests/gnu/exec_nothing.sh
+++ b/tests/gnu/exec_nothing.sh
@@ -1,2 +1,2 @@
# Regression test: don't segfault on missing command
-fail invoke_bfs basic -exec \;
+! invoke_bfs basic -exec \;
diff --git a/tests/gnu/exec_plus_flush_fail.sh b/tests/gnu/exec_plus_flush_fail.sh
index 8beee09..53a50e5 100644
--- a/tests/gnu/exec_plus_flush_fail.sh
+++ b/tests/gnu/exec_plus_flush_fail.sh
@@ -1,2 +1,2 @@
test -e /dev/full || skip
-fail invoke_bfs basic/a -print0 -exec echo found {} + >/dev/full
+! invoke_bfs basic/a -print0 -exec echo found {} + >/dev/full
diff --git a/tests/gnu/files0_from_empty.sh b/tests/gnu/files0_from_empty.sh
index bd4fbf4..85eee8f 100644
--- a/tests/gnu/files0_from_empty.sh
+++ b/tests/gnu/files0_from_empty.sh
@@ -1 +1 @@
-printf "\0" | fail invoke_bfs -files0-from -
+! printf "\0" | invoke_bfs -files0-from -
diff --git a/tests/gnu/files0_from_error.sh b/tests/gnu/files0_from_error.sh
index ab27ea2..1515d0b 100644
--- a/tests/gnu/files0_from_error.sh
+++ b/tests/gnu/files0_from_error.sh
@@ -1 +1 @@
-fail invoke_bfs -files0-from basic
+! invoke_bfs -files0-from basic
diff --git a/tests/gnu/files0_from_none.sh b/tests/gnu/files0_from_none.sh
index c6e5b97..090fce0 100644
--- a/tests/gnu/files0_from_none.sh
+++ b/tests/gnu/files0_from_none.sh
@@ -1 +1 @@
-printf "" | fail invoke_bfs -files0-from -
+! printf "" | invoke_bfs -files0-from -
diff --git a/tests/gnu/files0_from_nothing.sh b/tests/gnu/files0_from_nothing.sh
index 5fdae60..fee50a8 100644
--- a/tests/gnu/files0_from_nothing.sh
+++ b/tests/gnu/files0_from_nothing.sh
@@ -1 +1 @@
-fail invoke_bfs -files0-from basic/nonexistent
+! invoke_bfs -files0-from basic/nonexistent
diff --git a/tests/gnu/files0_from_nowhere.sh b/tests/gnu/files0_from_nowhere.sh
index 2337613..68eea4b 100644
--- a/tests/gnu/files0_from_nowhere.sh
+++ b/tests/gnu/files0_from_nowhere.sh
@@ -1 +1 @@
-fail invoke_bfs -files0-from
+! invoke_bfs -files0-from
diff --git a/tests/gnu/files0_from_ok.sh b/tests/gnu/files0_from_ok.sh
index 5387e5c..8e145ce 100644
--- a/tests/gnu/files0_from_ok.sh
+++ b/tests/gnu/files0_from_ok.sh
@@ -1 +1 @@
-printf "basic\0" | fail invoke_bfs -files0-from - -ok echo {} \;
+! printf "basic\0" | invoke_bfs -files0-from - -ok echo {} \;
diff --git a/tests/gnu/fls_nonexistent.sh b/tests/gnu/fls_nonexistent.sh
index 4756834..ff86763 100644
--- a/tests/gnu/fls_nonexistent.sh
+++ b/tests/gnu/fls_nonexistent.sh
@@ -1 +1 @@
-fail invoke_bfs rainbow -fls scratch/nonexistent/path
+! invoke_bfs rainbow -fls scratch/nonexistent/path
diff --git a/tests/gnu/fprint0_nonexistent.sh b/tests/gnu/fprint0_nonexistent.sh
index d8e0f30..ec14c2d 100644
--- a/tests/gnu/fprint0_nonexistent.sh
+++ b/tests/gnu/fprint0_nonexistent.sh
@@ -1 +1 @@
-fail invoke_bfs basic -fprint0 scratch/nonexistent/path
+! invoke_bfs basic -fprint0 scratch/nonexistent/path
diff --git a/tests/gnu/fprint_error.sh b/tests/gnu/fprint_error.sh
index 0e75b0e..7617034 100644
--- a/tests/gnu/fprint_error.sh
+++ b/tests/gnu/fprint_error.sh
@@ -1,2 +1,2 @@
test -e /dev/full || skip
-fail invoke_bfs basic -maxdepth 0 -fprint /dev/full
+! invoke_bfs basic -maxdepth 0 -fprint /dev/full
diff --git a/tests/gnu/fprint_noarg.sh b/tests/gnu/fprint_noarg.sh
index bf772f3..8511649 100644
--- a/tests/gnu/fprint_noarg.sh
+++ b/tests/gnu/fprint_noarg.sh
@@ -1 +1 @@
-fail invoke_bfs basic -fprint
+! invoke_bfs basic -fprint
diff --git a/tests/gnu/fprint_nonexistent.sh b/tests/gnu/fprint_nonexistent.sh
index b6dac8a..4409162 100644
--- a/tests/gnu/fprint_nonexistent.sh
+++ b/tests/gnu/fprint_nonexistent.sh
@@ -1 +1 @@
-fail invoke_bfs basic -fprint scratch/nonexistent/path
+! invoke_bfs basic -fprint scratch/nonexistent/path
diff --git a/tests/gnu/fprintf_nofile.sh b/tests/gnu/fprintf_nofile.sh
index c2c48a5..4e79002 100644
--- a/tests/gnu/fprintf_nofile.sh
+++ b/tests/gnu/fprintf_nofile.sh
@@ -1 +1 @@
-fail invoke_bfs basic -fprintf
+! invoke_bfs basic -fprintf
diff --git a/tests/gnu/fprintf_noformat.sh b/tests/gnu/fprintf_noformat.sh
index 0d285c3..fd97f4c 100644
--- a/tests/gnu/fprintf_noformat.sh
+++ b/tests/gnu/fprintf_noformat.sh
@@ -1 +1 @@
-fail invoke_bfs basic -fprintf /dev/null
+! invoke_bfs basic -fprintf /dev/null
diff --git a/tests/gnu/fprintf_nonexistent.sh b/tests/gnu/fprintf_nonexistent.sh
index 6ed141a..160e739 100644
--- a/tests/gnu/fprintf_nonexistent.sh
+++ b/tests/gnu/fprintf_nonexistent.sh
@@ -1 +1 @@
-fail invoke_bfs basic -fprintf scratch/nonexistent/path '%p\n'
+! invoke_bfs basic -fprintf scratch/nonexistent/path '%p\n'
diff --git a/tests/gnu/ignore_readdir_race_root.sh b/tests/gnu/ignore_readdir_race_root.sh
index bad7391..dc41e7f 100644
--- a/tests/gnu/ignore_readdir_race_root.sh
+++ b/tests/gnu/ignore_readdir_race_root.sh
@@ -1,2 +1,2 @@
# Make sure -ignore_readdir_race doesn't suppress ENOENT at the root
-fail invoke_bfs basic/nonexistent -ignore_readdir_race
+! invoke_bfs basic/nonexistent -ignore_readdir_race
diff --git a/tests/gnu/ok_nothing.sh b/tests/gnu/ok_nothing.sh
index 439687b..52c3547 100644
--- a/tests/gnu/ok_nothing.sh
+++ b/tests/gnu/ok_nothing.sh
@@ -1,2 +1,2 @@
# Regression test: don't segfault on missing command
-fail invoke_bfs basic -ok \;
+! invoke_bfs basic -ok \;
diff --git a/tests/gnu/print_error.sh b/tests/gnu/print_error.sh
index 62a32b4..bc79637 100644
--- a/tests/gnu/print_error.sh
+++ b/tests/gnu/print_error.sh
@@ -1,2 +1,2 @@
test -e /dev/full || skip
-fail invoke_bfs basic -maxdepth 0 >/dev/full
+! invoke_bfs basic -maxdepth 0 >/dev/full
diff --git a/tests/gnu/regex_error.sh b/tests/gnu/regex_error.sh
index 9bd4c8d..4af933f 100644
--- a/tests/gnu/regex_error.sh
+++ b/tests/gnu/regex_error.sh
@@ -1 +1 @@
-fail invoke_bfs basic -regex '['
+! invoke_bfs basic -regex '['
diff --git a/tests/posix/closed_stderr.sh b/tests/posix/closed_stderr.sh
index cc746ef..570d5bb 100644
--- a/tests/posix/closed_stderr.sh
+++ b/tests/posix/closed_stderr.sh
@@ -1 +1 @@
-fail invoke_bfs basic >&- 2>&-
+! invoke_bfs basic >&- 2>&-
diff --git a/tests/posix/closed_stdout.sh b/tests/posix/closed_stdout.sh
index 446bf56..25c060d 100644
--- a/tests/posix/closed_stdout.sh
+++ b/tests/posix/closed_stdout.sh
@@ -1 +1 @@
-fail invoke_bfs basic >&-
+! invoke_bfs basic >&-
diff --git a/tests/posix/exec_plus_nothing.sh b/tests/posix/exec_plus_nothing.sh
index ef01968..347722d 100644
--- a/tests/posix/exec_plus_nothing.sh
+++ b/tests/posix/exec_plus_nothing.sh
@@ -1,2 +1,2 @@
# Regression test: don't look OOB for {} +
-fail invoke_bfs basic -exec +
+! invoke_bfs basic -exec +
diff --git a/tests/posix/extra_paren.sh b/tests/posix/extra_paren.sh
index cd8e8f8..d15022f 100644
--- a/tests/posix/extra_paren.sh
+++ b/tests/posix/extra_paren.sh
@@ -1 +1 @@
-fail invoke_bfs basic -print \)
+! invoke_bfs basic -print \)
diff --git a/tests/posix/incomplete.sh b/tests/posix/incomplete.sh
index 07b1b61..bca5a13 100644
--- a/tests/posix/incomplete.sh
+++ b/tests/posix/incomplete.sh
@@ -1 +1 @@
-fail invoke_bfs basic \(
+! invoke_bfs basic \(
diff --git a/tests/posix/missing_paren.sh b/tests/posix/missing_paren.sh
index ac8dd60..d906fbe 100644
--- a/tests/posix/missing_paren.sh
+++ b/tests/posix/missing_paren.sh
@@ -1 +1 @@
-fail invoke_bfs basic \( -print
+! invoke_bfs basic \( -print
diff --git a/tests/posix/newer_nonexistent.sh b/tests/posix/newer_nonexistent.sh
index 789cadf..5f2da4b 100644
--- a/tests/posix/newer_nonexistent.sh
+++ b/tests/posix/newer_nonexistent.sh
@@ -1 +1 @@
-fail invoke_bfs times -newer times/nonexistent
+! invoke_bfs times -newer times/nonexistent
diff --git a/tests/posix/ok_plus_nothing.sh b/tests/posix/ok_plus_nothing.sh
index 7cb7de5..77c7644 100644
--- a/tests/posix/ok_plus_nothing.sh
+++ b/tests/posix/ok_plus_nothing.sh
@@ -1,2 +1,2 @@
# Regression test: don't look OOB for {} +
-fail invoke_bfs basic -ok +
+! invoke_bfs basic -ok +
diff --git a/tests/posix/readdir_error.sh b/tests/posix/readdir_error.sh
index 483f543..e45ec5c 100644
--- a/tests/posix/readdir_error.sh
+++ b/tests/posix/readdir_error.sh
@@ -34,4 +34,4 @@ done
# On Linux, open(/proc/$pid/net) will succeed but readdir() will fail
test -r "/proc/$pid/net" || skip
-fail invoke_bfs "/proc/$pid/net" >/dev/null
+! invoke_bfs "/proc/$pid/net" >/dev/null
diff --git a/tests/tests.sh b/tests/tests.sh
index 3047bf4..844de5c 100755
--- a/tests/tests.sh
+++ b/tests/tests.sh
@@ -476,19 +476,13 @@ function bfs_verbose() {
function invoke_bfs() {
bfs_verbose "$@"
"${BFS[@]}" "$@"
-}
-
-# Expect a command to fail, but not crash
-function fail() {
- "$@"
- local STATUS="$?"
+ local status=$?
- if ((STATUS > 125)); then
- exit "$STATUS"
- elif ((STATUS > 0)); then
- return 0
+ # Allow bfs to fail, but not crash
+ if ((status > 125)); then
+ exit $status
else
- return 1
+ return $status
fi
}