Subject: | WriteMakefile(test => { TESTS => "foo.t bar.t quux.t" }, ...) is broken |
Makefile.PL has:
WriteMakefile(
...
test => { TESTS => "t/01_compile.t t/02_perl.t t/03_xs.t" },
);
Running "make test" fails:
...
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" "t/01_compile.t t/02_perl.t t/03_xs.t"
t/01_compile.t t/02_perl.t t/03_xs....t/01_compile.t t/02_perl.t t/03_xs.t does not exist
FAILED--1 test script could be run, alas--no output ever seen
make: *** [test_dynamic] Error 2
Reason is that $(TEST_FILES) is now quoted in the generated Makefile
when invoking test_harness:
test_dynamic :: pure_all
PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harn
ess" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST
_LIB)', '$(INST_ARCHLIB)')" "$(TEST_FILES)"
Previous versions (e.g. 6.59) of EUMM did NOT quote $(TEST_FILES) here.
Note that this also breaks (regardless of what Makefile.PL contains) invocations like
$ make test TEST_FILES="foo.t bar.t"
Cheers, Roderich