Subject: | Wrong perl used in tests |
On my smoker systems I see test failures like this:
...
PERL_DL_NONLAZY=1 "/opt/perl-5.26.2D/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Failed test 'Check return from 'bin/licensecheck -m --copyright t/devscripts/bsd-regents.c' is 0'
# at t/devscripts.t line 17.
# got: '2'
# expected: '0'
# Failed test 'Testing stdout'
# at t/devscripts.t line 18.
# +-----+----+---------------------------------------------------------+
# | GOT | OP | CHECK |
# +-----+----+---------------------------------------------------------+
# | | =~ | (?^:BSD (?:3-clause "New" or "Revised" License|\(3 clau |
# | | | se\))\t1987, 1993.*1994 The Regents of the University o |
# | | | f California.) |
# +-----+----+---------------------------------------------------------+
# Failed test 'No stderr'
# at t/devscripts.t line 21.
# +-------------------------------------------------------+----+-------+
# | GOT | OP | CHECK |
# +-------------------------------------------------------+----+-------+
# | Can't locate strictures.pm in @INC (you may need to i | eq | |
# | nstall the strictures module) (@INC contains: /home/c | | |
# | pansand/.cpan/build/2020031400/App-Licensecheck-v3.0. | | |
# | 46-4/blib/lib /home/cpansand/.cpan/build/2020031400/A | | |
# | pp-Licensecheck-v3.0.46-4/blib/arch /etc/perl /usr/lo | | |
# | cal/lib/x86_64-linux-gnu/perl/5.28.1 /usr/local/share | | |
# | /perl/5.28.1 /usr/lib/x86_64-linux-gnu/perl5/5.28 /us | | |
# | r/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.28 /us | | |
# | r/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/x | | |
# | 86_64-linux-gnu/perl-base .) at bin/licensecheck line | | |
# | 5.\n | | |
# | BEGIN failed--compilation aborted at bin/licensecheck | | |
# | line 5.\n | | |
# +-------------------------------------------------------+----+-------+
...
Looking at the @INC in the error message it seems that the wrong perl is used here, probably /usr/bin/perl instead of the perl which was used to build+test the distribution. If so, then the usual fix is to use the blib/script version of the script (which should have the correct shebang), or to do the call using $^X (which is probably the only solution on non-POSIX systems like Windows).