diff --git a/t/.gitignore b/t/.gitignore index d6488c9..5d5e603 100644 --- a/t/.gitignore +++ b/t/.gitignore @@ -6,3 +6,4 @@ c.c.c.b.b d test.args test2.args +/passfail diff --git a/t/passfail.do b/t/passfail.do new file mode 100644 index 0000000..4042930 --- /dev/null +++ b/t/passfail.do @@ -0,0 +1,6 @@ +echo $$ +if [ -e pleasefail ]; then + exit 1 +else + exit 0 +fi diff --git a/t/passfailtest.do b/t/passfailtest.do new file mode 100644 index 0000000..5eb77d0 --- /dev/null +++ b/t/passfailtest.do @@ -0,0 +1,28 @@ +rm -f pleasefail +redo passfail +if [ ! -e passfail ]; then + echo "passfail should exist" >&2 + exit 42 +fi +PF1=$(cat passfail) +touch pleasefail +if redo passfail 2>/dev/null; then + echo "redo passfail should have failed" >&2 + exit 42 +fi +if [ ! -e passfail ]; then + echo "passfail should STILL exist" >&2 + exit 42 +fi +PF2=$(cat passfail) +if [ "$PF1" != "$PF2" ]; then + echo "passfail changed even though it failed" >&2 + exit 42 +fi +rm -f pleasefail +redo passfail || exit 43 +PF3=$(cat passfail) +if [ "$PF1" = "$PF3" ]; then + echo "passfail did not change even though it passed" >&2 + exit 42 +fi diff --git a/t/test.do b/t/test.do index 04fb6a8..d9bfbbb 100644 --- a/t/test.do +++ b/t/test.do @@ -1,4 +1,4 @@ redo-ifchange all ./hello >&2 -redo deltest deltest2 test.args test2.args curse/test deps/test +redo deltest deltest2 test.args test2.args passfailtest curse/test deps/test