Ticket #1806 (closed bug: fixed)

Opened 4 years ago

Last modified 4 years ago

"make smoke" does not respect TEST_JOBS

Reported by: dukeleto Owned by:
Priority: normal Milestone:
Component: testing Version: 2.8.0
Severity: medium Keywords:
Cc: Language:
Patch status: applied Platform: all


While other test targets use TEST_JOBS to set how many test files will be run in parallel, the smoke target does not.


smolder.test_jobs.diff Download (423 bytes) - added by jkeenan 4 years ago.
Have make smoke accept value of $ENV{TEST_JOBS}

Change History

Changed 4 years ago by mikehh


make smoke/smolder_test does not seem to handle TEST_JOBS at all

from the makefile:

# Normal test package
test : test_core

# Test Parrot core.
test_core: test_prep
    $(PERL) t/harness $(EXTRA_TEST_ARGS)

# run the test suite, create a TAP archive and send it off to smolder
smolder_test : test_prep
	$(PERL) t/harness $(EXTRA_TEST_ARGS) --archive --send-to-smolder

smoke : smolder_test

if you look at t/harness we have the following lines:

my $harness;
if ($longopts->{archive}) {
    eval { require TAP::Harness::Archive };
    $harness = TAP::Harness::Archive->new(
            verbosity        => $ENV{HARNESS_VERBOSE},
            archive          => 'parrot_test_run.tar.gz',
            merge            => 1,
            extra_properties => \%env_data,
            extra_files      => [ 'myconfig', 'config_lib.pir' ],
    send_archive_to_smolder(%env_data) if $longopts->{send_to_smolder};

else {
    eval { require TAP::Harness };
    if ($@) {
    else {
        $harness = TAP::Harness->new({
            verbosity => $ENV{HARNESS_VERBOSE},
            merge     => 0,
            jobs      => $ENV{TEST_JOBS} || 1,
            directives => 1,
    my $results = $harness->runtests(@tests);

    exit ( $results->all_passed() ? 0 : 1 );

please note that $harness is different in for example make test vs make smoke - make test uses TAP::Harness while make smoke uses TAP::Harness::Archive

I haven't looked further but I suspect that TAP::Harness::Archive expects the output to be sequential, so does not accept TEST_JOBS

Cheers, Michael (mikehh)

Changed 4 years ago by jkeenan

Have make smoke accept value of $ENV{TEST_JOBS}

Changed 4 years ago by jkeenan

  • patch set to new

Examining both the code and documentation of the latest version of TAP::Harness::Archive and that of the version of TAP::Harness that came with Perl 5.12, I see no reason why TAP::Harness::Archive can not handle this. I think the problem is simpler than that: a simple deficiency in our t/harness.

Does patch smolder.test_jobs.diff do the trick for you? (I don't have a box on which setting TEST_JOBS > 1 makes sense, so I can't fully evaluate the patch.)

Thank you very much.


Changed 4 years ago by dukeleto

  • status changed from new to closed
  • resolution set to fixed
  • patch changed from new to applied

I confirmed that the patch works and committed it in r49347. Thanks kid51++ ! Smoke testing just got a lot faster.

Note: See TracTickets for help on using tickets.