From aa423a723f0e20fd360c22419e2052f8682246bd Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Fri, 12 Oct 2018 04:39:09 -0400 Subject: [PATCH] t/660-stamp: don't run at the same time as other tests in redo -j. flush-cache can cause files affected by redo-stamp to get rebuilt unnecessarily, which the test is specifically trying to validate. Since other tests run flush-cache at random times when using -j, this would cause random test failures. --- t/all.do | 17 +++++++++++++++-- t/{660-stamp => s60-stamp}/.gitignore | 0 t/{660-stamp => s60-stamp}/a.do | 0 t/{660-stamp => s60-stamp}/ab.do | 0 t/{660-stamp => s60-stamp}/abc.do | 0 t/{660-stamp => s60-stamp}/all.do | 0 t/{660-stamp => s60-stamp}/b.do | 0 t/{660-stamp => s60-stamp}/bob.do | 0 t/{660-stamp => s60-stamp}/c | 0 t/{660-stamp => s60-stamp}/clean.do | 0 t/{660-stamp => s60-stamp}/stamptest.do | 2 +- t/{660-stamp => s60-stamp}/stampy.do | 2 +- t/{660-stamp => s60-stamp}/usestamp.do | 0 t/{660-stamp => s60-stamp}/usestamp2.do | 0 14 files changed, 17 insertions(+), 4 deletions(-) rename t/{660-stamp => s60-stamp}/.gitignore (100%) rename t/{660-stamp => s60-stamp}/a.do (100%) rename t/{660-stamp => s60-stamp}/ab.do (100%) rename t/{660-stamp => s60-stamp}/abc.do (100%) rename t/{660-stamp => s60-stamp}/all.do (100%) rename t/{660-stamp => s60-stamp}/b.do (100%) rename t/{660-stamp => s60-stamp}/bob.do (100%) rename t/{660-stamp => s60-stamp}/c (100%) rename t/{660-stamp => s60-stamp}/clean.do (100%) rename t/{660-stamp => s60-stamp}/stamptest.do (97%) rename t/{660-stamp => s60-stamp}/stampy.do (68%) rename t/{660-stamp => s60-stamp}/usestamp.do (100%) rename t/{660-stamp => s60-stamp}/usestamp2.do (100%) diff --git a/t/all.do b/t/all.do index f1831e0..4e9f6bb 100644 --- a/t/all.do +++ b/t/all.do @@ -6,13 +6,26 @@ if [ "$(cat 000-set-minus-e/log)" != "ok" ]; then exit 5 fi -# builds 1xx*/all +# builds 1xx*/all to test for basic/dangerous functionality. +# We don't want to run more advanced tests if the basics don't work. /bin/ls 1[0-9][0-9]*/all.do | sed 's/\.do$//' | xargs redo 110-compile/hello >&2 -# builds the rest +# builds most of the rest in parallel /bin/ls [2-9][0-9][0-9]*/all.do | sed 's/\.do$//' | xargs redo + +# builds the tests that require non-parallel execution. +# If tests are written carefully, this should only be things that +# are checking for unnecessary extra rebuilds of some targets, which +# might happen after flush-cache. +# FIXME: a better solution might be to make flush-cache less destructive! +/bin/ls [s][0-9][0-9]*/all.do | +sed 's/\.do$//' | { + while read d; do + redo "$d" + done +} diff --git a/t/660-stamp/.gitignore b/t/s60-stamp/.gitignore similarity index 100% rename from t/660-stamp/.gitignore rename to t/s60-stamp/.gitignore diff --git a/t/660-stamp/a.do b/t/s60-stamp/a.do similarity index 100% rename from t/660-stamp/a.do rename to t/s60-stamp/a.do diff --git a/t/660-stamp/ab.do b/t/s60-stamp/ab.do similarity index 100% rename from t/660-stamp/ab.do rename to t/s60-stamp/ab.do diff --git a/t/660-stamp/abc.do b/t/s60-stamp/abc.do similarity index 100% rename from t/660-stamp/abc.do rename to t/s60-stamp/abc.do diff --git a/t/660-stamp/all.do b/t/s60-stamp/all.do similarity index 100% rename from t/660-stamp/all.do rename to t/s60-stamp/all.do diff --git a/t/660-stamp/b.do b/t/s60-stamp/b.do similarity index 100% rename from t/660-stamp/b.do rename to t/s60-stamp/b.do diff --git a/t/660-stamp/bob.do b/t/s60-stamp/bob.do similarity index 100% rename from t/660-stamp/bob.do rename to t/s60-stamp/bob.do diff --git a/t/660-stamp/c b/t/s60-stamp/c similarity index 100% rename from t/660-stamp/c rename to t/s60-stamp/c diff --git a/t/660-stamp/clean.do b/t/s60-stamp/clean.do similarity index 100% rename from t/660-stamp/clean.do rename to t/s60-stamp/clean.do diff --git a/t/660-stamp/stamptest.do b/t/s60-stamp/stamptest.do similarity index 97% rename from t/660-stamp/stamptest.do rename to t/s60-stamp/stamptest.do index 6e318ed..d8a6b84 100644 --- a/t/660-stamp/stamptest.do +++ b/t/s60-stamp/stamptest.do @@ -1,4 +1,4 @@ -rm -f stampy usestamp usestamp2 stampy.log usestamp.log usestamp2.log +rm -f bob stampy usestamp usestamp2 stampy.log usestamp.log usestamp2.log echo one >inp ../flush-cache diff --git a/t/660-stamp/stampy.do b/t/s60-stamp/stampy.do similarity index 68% rename from t/660-stamp/stampy.do rename to t/s60-stamp/stampy.do index 96816c4..cc22014 100644 --- a/t/660-stamp/stampy.do +++ b/t/s60-stamp/stampy.do @@ -2,4 +2,4 @@ echo $$ >>stampy.log redo-ifchange inp bob cat inp cd .. -redo-stamp <660-stamp/inp +redo-stamp