On 2024.02.07 17:58, Jeff King wrote: > On Fri, Feb 02, 2024 at 04:50:26PM -0800, Josh Steadmon wrote: > > > This has the additional benefit that test harnesses seeking to run all > > unit tests can find them with a simple glob of "t/unit-tests/bin/t-*", > > with no exceptions needed. This will be important in a later patch where > > we add support for running the unit tests via a test-tool subcommand. > > Is this last paragraph still accurate? I think in this rebased version > of the series, we'll continue to use $(UNIT_TESTS) derived from the > source list rather than a glob in bin/. Right, thanks for the catch. Removed in V3. > > --- a/t/Makefile > > +++ b/t/Makefile > > @@ -44,8 +44,7 @@ TINTEROP = $(sort $(wildcard interop/i[0-9][0-9][0-9][0-9]-*.sh)) > > CHAINLINTTESTS = $(sort $(patsubst chainlint/%.test,%,$(wildcard chainlint/*.test))) > > CHAINLINT = '$(PERL_PATH_SQ)' chainlint.pl > > UNIT_TEST_SOURCES = $(wildcard unit-tests/t-*.c) > > -UNIT_TEST_PROGRAMS = $(patsubst unit-tests/%.c,unit-tests/bin/%$(X),$(UNIT_TEST_SOURCES)) > > -UNIT_TESTS = $(sort $(filter-out unit-tests/bin/t-basic%,$(UNIT_TEST_PROGRAMS))) > > +UNIT_TESTS = $(patsubst unit-tests/%.c,unit-tests/bin/%$(X),$(UNIT_TEST_SOURCES)) > > This drops the intermediate UNIT_TEST_PROGRAMS, which makes sense. It > was only used to keep the long lines a bit more readable. But it also > drops the $(sort) call. Do we need to keep it? > > Certainly I'd think we want the contents of $(UNIT_TESTS) to be in a > deterministic order. Does the $(wildcard) function already return things > in sorted order? I can't find any mention in the documention. It seems > to do so for me in a simple test, but aae5239be2 (t/Makefile: Use $(sort > ...) explicitly where needed, 2011-09-04) argues otherwise. I see this line in the docs [1]: "As with wildcard expansion in rules, the results of the wildcard function are sorted". GNU Make has restored the sorted behavior of $(wildcard) since 2018 [2]. I'll leave the sort off for now, but if folks feel like we need to support older versions of `make`, I'll add it back. [1] https://www.gnu.org/software/make/manual/html_node/Wildcard-Function.html [2] https://savannah.gnu.org/bugs/index.php?52076