1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-13 11:42:21 +00:00

iffe: avoid pointless reruns: update result timestamp if unchanged

If iffe re-ran a test because the source test script changed, but
the result file is unchanged, it didn't update the timestamp of the
result, so the source script remained newer. The build system then
kept pointlessly re-running the test on each rebuild. If a central
test script such as src/lib/libast/features/standards was changed,
this had cascading effects, e.g., causing libast to be rebuilt over
and over as I recompiled small changes elsewhere. Until now, my
workaround was to delete the entire 'arch' directory and start
over. Hopefully that will now no longer be needed.

src/cmd/INIT/iffe.sh:
- If a test output file has not changed after rerunning a test that
  has changed, still update the output file's timestamp using
  touch(1) to signal that the test has already been run.
This commit is contained in:
Martijn Dekker 2021-01-18 21:35:27 +00:00
parent dd0d03b973
commit 33b6718bf2

View file

@ -3101,6 +3101,7 @@ int x;
case $verbose in
1) echo "$command: $x: unchanged" >&$stderr ;;
esac
touch "$x" # avoid rerunning test on subsequent runs
else case $x in
${dir}[\\/]$cur) test -d $dir || mkdir $dir || exit 1 ;;
esac