Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: prove: parallel multiple shells

by Corion (Patriarch)
on Aug 18, 2021 at 08:16 UTC ( [id://11135913]=note: print w/replies, xml ) Need Help??


in reply to prove: parallel multiple shells

WWW::Mechanize::Shell runs the same test suite with different Chrome versions. For that, I wrote another wrapper that runs the test suite using prove in parallel for each Chrome version.

When the tests are not run through that wrapper, each test runs its suite using all Chrome versions found. For that I wrote a helper module to run each test suite in a loop, which is likely not what you want:

use lib 't/'; use helper; # What instances of Chrome will we try? my @instances = t::helper::browser_instances(); if (my $err = t::helper::default_unavailable) { plan skip_all => "Couldn't connect to Chrome: $@"; exit } else { plan tests => 4*@instances; }; sub new_mech { t::helper::need_minimum_chrome_version( '62.0.0.0', @_ ); WWW::Mechanize::Chrome->new( autodie => 1, @_, ); }; t::helper::run_across_instances(\@instances, \&new_mech, 4, sub { my ($browser_instance, $mech) = @_; ... });

Replies are listed 'Best First'.
Re^2: prove: parallel multiple shells
by almr (Sexton) on Aug 18, 2021 at 17:23 UTC

    Hey, cool. To my shame I can't quite figure out were the parallelization takes place... I see a NestedLoops call in WWW-Mechanize-Chrome, so that's sequential. Is it in system("$Config{ make } test"), which presumably calls prove... which looks for .t files?

    Or is it in t::helper::run_across_instances call, in the snippet above?

      Sorry - no, I leave all the parallelization still to prove. It runs all test files in parallel (well, up to a limit). prove is called by make test, as you correctly surmised.

      The run_across_instances just loops (single-tasked) through the Chrome instances.

        I see. In that case I'm not sure how I could apply your setup to my problem (multiple .t files that should run with different shells)?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11135913]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-04-25 05:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found