Add a new passfailtest.

This tests that the target file isn't removed or changed if building fails.
This commit is contained in:
Avery Pennarun 2010-11-21 06:12:27 -08:00
commit e8584c8d76
4 changed files with 36 additions and 1 deletions

1
t/.gitignore vendored
View file

@ -6,3 +6,4 @@ c.c.c.b.b
d
test.args
test2.args
/passfail

6
t/passfail.do Normal file
View file

@ -0,0 +1,6 @@
echo $$
if [ -e pleasefail ]; then
exit 1
else
exit 0
fi

28
t/passfailtest.do Normal file
View file

@ -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

View file

@ -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