From e8584c8d76c71325a3e76a6d2ee35ac256583240 Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Sun, 21 Nov 2010 06:12:27 -0800 Subject: [PATCH] Add a new passfailtest. This tests that the target file isn't removed or changed if building fails. --- t/.gitignore | 1 + t/passfail.do | 6 ++++++ t/passfailtest.do | 28 ++++++++++++++++++++++++++++ t/test.do | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 t/passfail.do create mode 100644 t/passfailtest.do 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