apenwarr-redo/t/122-defaults-parent/all.do
Avery Pennarun 8100aa4973 Certain redo post-build failures would still mark a target as built.
If we failed because:
- target dir doesn't exist
- failed to copy from stdout
- failed to rename $3

We would correctly return error 209, but the target would still be
marked as having been built, so redo-ifchange would not try to build it
next time, beause we forgot to call sf.set_failed() in those cases.

minimal/do worked correctly.

Added a test to catch this in the future.
2019-03-02 04:05:36 -05:00

22 lines
342 B
Text

rm -f x/shouldfail
log=$PWD/$1.log
rm -f "$log"
expect_fail() {
local rv=$1
shift
if ("$@") >>$log 2>&1; then
cat "$log" >&2
echo "unexpected success:" "$@" >&2
return $rv
else
return 0
fi
}
cd inner
expect_fail 11 redo ../x/shouldfail # should fail
expect_fail 12 redo-ifchange ../x/shouldfail # should fail again
exit 0