Subject: | tests fail when run in parallel |
when run via HARNESS_OPTIONS=j9 (which is pretty common) or things like prove -rb -j9 t:
PERL_DL_NONLAZY=1 /Users/ether/perl5/perlbrew/perls/20.0/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# ^M# Package Version
# perl 5.20.0
# XML::Simple 2.20
# Storable 2.49
# XML::Parser 2.43
# XML::SAX 0.99
# XML::NamespaceSupport 1.11
# XML::SAX::PurePerl 0.99
# XML::SAX::Expat 0.51 (default parser)
t/0_Config.t ............ ok
t/1_XMLin.t ............. ok
t/6_ObjIntf.t ........... ok
t/7_SaxStuff.t .......... ok
t/8_Namespaces.t ........ ok
t/2_XMLout.t ............ ok
t/9_Strict.t ............ ok
t/A_XMLParser.t ......... ok
t/release-pod-syntax.t .. skipped: these tests are for release candidate testing
t/B_Hooks.t ............. ok
File does not exist: t/desertnet.xml at t/3_Storable.t line 158.
# Looks like you planned 23 tests but ran 4.
# Looks like your test exited with 2 just after 4.
t/3_Storable.t ..........
Dubious, test returned 2 (wstat 512, 0x200)
Failed 19/23 subtests
t/4_MemShare.t .......... ok
t/5_MemCopy.t ........... ok
Test Summary Report
-------------------
t/3_Storable.t (Wstat: 512 Tests: 4 Failed: 0)
Non-zero exit status: 2
Parse errors: Bad plan. You planned 23 tests but ran 4.
Files=13, Tests=481, 2 wallclock secs ( 0.11 usr 0.04 sys + 1.72 cusr 0.15 csys = 2.02 CPU)
It looks like you are re-using data files across multiple tests, so when tests run in parallel, they stomp on each other. Please use unique temp files or directories as from File::Temp or Test::TempDir::Tiny.