Subject: | tests may fail on Win32 when IPC::Run is installed, Archive::Tar is not, and tar.exe exists |
If (on win32, perl5.8.8) IPC::Run is installed and Archive::Tar is not
installed, *and* you have some version of 'gzip.exe' and 'tar.exe' on
your path (from MKS, cygwin, or msys/mingw), then the tests may fail
exactly like this cpan-testers report:
http://www.nntp.perl.org/group/perl.cpan.testers/2007/12/msg832293.html
This is the test debug output:
# Older versions of Archive::Zip may cause File::Spec warnings
# See bug #19713 in rt.cpan.org. It is safe to ignore them
ok 1 - use Archive::Extract;
# IPC::Run enabled: 1
# IPC::Run available: 1
# IPC::Run vesion: 0.80
# IPC::Open3 enabled: 1
# IPC::Open3 available: 1
# IPC::Open3 vesion: 1.02
ok 2 - Archive::Extract->can('types')
ok 3 - Got a list of types
ok 4 - Object created based on 'tgz'
ok 5 - No error logged
ok 6 - Object created based on 'tar'
ok 7 - No error logged
ok 8 - Object created based on 'gz'
ok 9 - No error logged
ok 10 - Object created based on 'zip'
ok 11 - No error logged
ok 12 - Object created based on 'bz2'
ok 13 - No error logged
ok 14 - Object created based on 'tbz'
ok 15 - No error logged
ok 16 - Object created based on 'Z'
ok 17 - No error logged
ok 18 - Found extraction dir
'S:\jloverso\ws\3rdparty\do\win32\PERL-M~1\ARCHIV~1.24\t\src'
ok 19 - Is expected dir
'S:\jloverso\ws\3rdparty\do\win32\PERL-M~1\ARCHIV~1.24\t\src'
ok 20 - Found extraction dir
'S:\jloverso\ws\3rdparty\do\win32\PERL-M~1\ARCHIV~1.24\t\src'
ok 21 - Is expected dir
'S:\jloverso\ws\3rdparty\do\win32\PERL-M~1\ARCHIV~1.24\t\src'
# Running extract with PREFER_BIN = 0
# Extracting y.tar.gz
ok 22 - The object isa Archive::Extract
ok 23 - Archive type recognized properly
# Extracting to: S:\jloverso\ws\3rdparty\do\win32\PERL-M~1\ARCHIV~1.24\t\out
# Buffers enabled: 1
You do not have 'Archive::Tar' installed - Please install it as soon as
possible. at t\01_Archive-Extract.t line 326
Error listing contents of archive
'S:\jloverso\ws\3rdparty\do\win32\PERL-M~1\ARCHIV~1.24\t\src\y.tar.gz': y/
y/z
tar: blocksize = 2
gzip: output file "[standard output]": The pipe is being closed.
at t\01_Archive-Extract.t line 326
Unable to untar file
'S:\jloverso\ws\3rdparty\do\win32\PERL-M~1\ARCHIV~1.24\t\src\y.tar.gz'
at t\01_Archive-Extract.t line 326
Extract failed, no extractor found at t\01_Archive-Extract.t line 326
not ok 24 - extract() for 'y.tar.gz' reports success
# Failed test 'extract() for 'y.tar.gz' reports success'
# at t\01_Archive-Extract.t line 328.
# Extractor was:
ok 25 - No errors capturing buffers
not ok 26 - Found correct number of output files
# Failed test 'Found correct number of output files'
# at t\01_Archive-Extract.t line 350.
# got: '0'
# expected: '2'
Modification of non-creatable array value attempted, subscript -1 at
t\01_Archive-Extract.t line 352.
1..26
# Looks like you failed 2 tests of 26.
# Looks like your test died just after 26.
In this case, the gzip.exe on my path was from MKS, and the tar was from
msys. gzip was outputing an errant extra error message.
Installing Archive::Tar before testing fixes this problem.