Jim Meyering wrote: > Stefano Lattarini wrote: >> Plus some other preparatory, follow-up or "while-at-it" changes. >> >> After this, "make syntax-check" and "make distcheck" still pass on >> my Debian box. >> >> This completes the first important part of the "de-recursion" of the >> coreutils build system: the compilation of the programs, the creation >> of Texinfo documentation and manpages, and the testsuite are now all >> controlled by one top-level Makefile. >> >> The next step would be de-recursing the gnulib-imported 'lib/' and >> 'gnulib-tests/' subdirectories, but I'll leave that to someone else ;-) > > Thanks a lot. > I've applied these and ensured that distcheck works for me, too. > (BTW, in coreutils, distcheck includes "make syntax-check" -- at least > it used to) > > I hope to actually review the changes later today. > > The only missing pieces: > - a timing comparison: does this result in a performance improvement? > - a NEWS entry: every 70+-change-set deserves one ;-) > One incidental improvement I've noticed: it fixes at least one bug > that would cause an occasional parallel "make syntax-check" failure.
Hi Stefano, I still haven't reviewed your changes, but in using them I did notice a missing dependency: I ran this command to run the single test: $ make tests/rm/v-slash.log PASS: tests/rm/v-slash.log then modified remove.c and recompiled src/rm and went to run the test again: $ make tests/rm/v-slash.log make: `tests/rm/v-slash.log' is up to date. Oops. It didn't run. The individual test scripts (the .log witness files, actually) do not depend on the programs they test. >From 45bf1ab13682f8842b2b9ed81bb9069f6e5b01b3 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyer...@redhat.com> Date: Tue, 4 Sep 2012 12:12:19 +0200 Subject: [PATCH] tests: depend on the programs we're testing * tests/local.mk ($(TEST_LOGS)): Depend on $(PROGRAMS), so that tests are rerun when any program is rebuilt. Technically, we could specify precisely which few programs are dependents of each test, but that can come later, if deemed worth the trouble and maintenance burden. Also, there is the issue of the primary program(s) being tested (i.e., those itemized via print_ver_) versus those that are tested incidentally: for example, nearly every test exercises "rm" when its clean-up code removes files. --- tests/local.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/local.mk b/tests/local.mk index b129475..2440667 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -784,3 +784,5 @@ pr_data = \ tests/pr/ttb3-0FF \ tests/pr/ttb3-FF \ tests/pr/w72l24f-ll + +$(TEST_LOGS): $(PROGRAMS) -- 1.7.12.176.g3fc0e4c