We sometimes missed deps when more than one dep required a stamp check.

If must_build was nonempty when recursively calling isdirty() that
returned a list, we'd lose the original value of must_build.
This commit is contained in:
Alan Falloon 2015-05-06 17:56:14 -04:00 committed by Avery Pennarun
commit 67c1d4f7d8
10 changed files with 47 additions and 5 deletions

View file

@ -70,3 +70,16 @@ redo-ifchange usestamp usestamp2
rm -f stampy
redo-ifchange stampy
[ "$(wc -l <stampy.log)" -eq 6 ] || exit 74
# check that a target that depends on two stamped targets (that are marked as
# always built) won't be redone if neither stamped targets changes
../flush-cache
redo-ifchange abc
rm -f doing_ab doing_abc
redo-ifchange abc
[ ! -f doing_ab ] || exit 92
[ ! -f doing_abc ] || exit 93
../flush-cache
redo-ifchange abc
[ ! -f doing_ab ] || exit 94
[ ! -f doing_abc ] || exit 95