Profiling parallel tests

Nicholas Clark nick at ccl4.org
Tue Aug 19 11:54:54 UTC 2008


On Tue, Aug 19, 2008 at 11:43:48AM +0100, Steve Hay wrote:
> Nicholas Clark wrote:
> > As some people may know, thanks to Andy and others' work in getting
> > parallel testing working in TAP::Harness 3, I've made the perl core
> > tests run in 
> > parallel, which halves the total build time:
> 
> Is there something missing on Win32? I've now got all my bleadperl
> smokes running with TEST_JOBS=5 in the environment and 'harness3opts' =>
> 'j5' in the _config file, but the smoketime has scarcely changed at all:
> it is still between 15 and 20 minutes per configuration, as it has
> always been.

I have no good idea. But I tried this:

$ find lib/TAP -type f | xargs grep WIN32
lib/TAP/Formatter/Color.pm:use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ );
lib/TAP/Formatter/Color.pm:    if (IS_WIN32) {
lib/TAP/Parser/Iterator/Process.pm:my $IS_WIN32 = ( $^O =~ /^(MS)?Win32$/ );
lib/TAP/Parser/Iterator/Process.pm:    return unless $Config{d_fork} || $IS_WIN32;
lib/TAP/Parser/Iterator/Process.pm:        if ($IS_WIN32) {
lib/TAP/Parser/Iterator/Process.pm:    $status = 0 if $IS_WIN32 && $status == -1;
lib/TAP/Parser/Multiplexer.pm:use constant IS_WIN32 => $^O =~ /^(MS)?Win32$/;
lib/TAP/Parser/Multiplexer.pm:use constant SELECT_OK => !( IS_VMS || IS_WIN32 );
lib/TAP/Parser/Source/Perl.pm:use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ );
lib/TAP/Parser/Source/Perl.pm:    return Win32::GetShortPathName($^X) if IS_WIN32;

So I'm not sure if there is currently no parallel implementation for Win32.
Or at least, there isn't anything that can select, so it can't run
usefully in parallel.

(Win32 can select on the file handles created by socketpair? If so, would an
implementation that created a socketpair and then arranged send child output
work? (is that "arranged" even possible?))

Nicholas Clark


More information about the tapx-dev mailing list