diff --git a/redo/builder.py b/redo/builder.py index b226110..0fb24a8 100644 --- a/redo/builder.py +++ b/redo/builder.py @@ -419,7 +419,8 @@ class _BuildJob(object): sf.csum = None sf.update_stamp() sf.set_changed() - else: + # rv might have changed up above + if rv: helpers.unlink(self.tmpname) sf = self.sf sf.set_failed() diff --git a/t/122-defaults-parent/.gitignore b/t/122-defaults-parent/.gitignore new file mode 100644 index 0000000..50e1322 --- /dev/null +++ b/t/122-defaults-parent/.gitignore @@ -0,0 +1 @@ +/*.log diff --git a/t/122-defaults-parent/all.do b/t/122-defaults-parent/all.do new file mode 100644 index 0000000..838ea31 --- /dev/null +++ b/t/122-defaults-parent/all.do @@ -0,0 +1,22 @@ +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 diff --git a/t/122-defaults-parent/clean.do b/t/122-defaults-parent/clean.do new file mode 100644 index 0000000..b877c59 --- /dev/null +++ b/t/122-defaults-parent/clean.do @@ -0,0 +1,2 @@ +rm -f *~ .*~ */*~ */.*~ *.tmp */*.tmp x/shouldfail *.log */*.log + diff --git a/t/122-defaults-parent/inner/default.do b/t/122-defaults-parent/inner/default.do new file mode 100644 index 0000000..f8283d1 --- /dev/null +++ b/t/122-defaults-parent/inner/default.do @@ -0,0 +1,2 @@ +echo "inner/default.do: PWD=$PWD '$1' '$2' '$3'" >&2 +echo SUSPICIOUS diff --git a/t/122-defaults-parent/x/file b/t/122-defaults-parent/x/file new file mode 100644 index 0000000..e69de29