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.sh, then the test succeeds.