Pádraig Brady wrote: > > FAIL: tests/misc/dircolors > > ========================== > > > > dircolors.pl: test term-1: stdout mismatch, comparing term-1.2 (expected) > > and term-1.O (actual) > > *** term-1.2 Sun Apr 10 17:58:03 2022 > > --- term-1.O Sun Apr 10 17:58:03 2022 > > *************** > > *** 1,2 **** > > ! LS_COLORS='tw=40;33:'; > > export LS_COLORS > > --- 1,2 ---- > > ! LS_COLORS=''; > > export LS_COLORS > > That suggests the $TERM env var has not been unset for this test. > That should have been done by tests/envvar-check.
Indeed, it seems that the problem is more with the test framework than with the 'dircolors' program. When I create a file named 'owt' with $ cat owt TERM none owt 40;33 then (in an interactive bash): $ ./src/dircolors -b owt LS_COLORS=''; export LS_COLORS $ (unset TERM; ./src/dircolors -b owt) LS_COLORS='tw=40;33:'; export LS_COLORS When I add an 'echo as_unset=$as_unset' statement to tests/envvar-check, it prints as_unset=unset at each test run. Concentrating on a single test run: $ make check-TESTS TESTS=tests/misc/dircolors When I add a line 'print "<<<$ENV{TERM}>>>\n" to tests/misc/dircolors.pl and run the test, the file tests/misc/dircolors.log contains <<<dumb>>> So, somewhere the empty value for TERM must be replaced with the value 'dumb'. Since build-aux/test-driver does not do anything with TERM, my guess is that perl is the culprit. The perl version is 5.22.2. When I add a line $ENV{TERM} = ''; near the beginning of tests/misc/dircolors.log, then the test succeeds. Bruno