Skip Menu |

This queue is for tickets about the Module-Release CPAN distribution.

Report information
The Basics
Id: 44529
Status: patched
Priority: 0/
Queue: Module-Release

People
Owner: Nobody in particular
Requestors: csjewell [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 2.04_01
Fixed in: (no value)



Subject: Tests do not pass ($^O = 'MSWin32'): t/run.t, t/defaults.t,
[I'm assuming Module::Release SHOULD test and work correctly under Windows, and I'm working toward that goal.] Windows has weird quoting rules... prefer to avoid them if possible (the convolutions in Perl's own tests to avoid problems with them... oh, boy!): Here's working versions (at least for me) of the last two tests in run.t, starting in line 71: (Changes are in lines 74 and 84.) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Pass it a command that exits with 255 (which should be bad) # This use to die, but now it just warns { stderr_like { eval { $release->run( qq|$^X -e exit(255)| ) } } qr/didn't close cleanly/, "Error message with bad close"; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Pass it perl printing hello { my $message = $release->run( qq|$^X -e "print q(Hello)"| ); is( $message, 'Hello', "Got right message from running perl" ); } ----------------- Also, for some reason, 2>&1 does not work inside backticks/qx, on Windows, when called from defaults.t, so Release.pm line 511 (where it tries to detect a valid perl) fails for me, which means t\defaults.t fails on line 26 (why it doesn't fail outside of testing, I don't know.) This line works instead: my $version = `$path -e "print \$\]"`; ------------------ t/useragent.t fails for me, too... but no solution yet (haven't attacked it yet, got other things to do today! I'll get back to you on it.)
Thanks for looking into these Windows issues. I've fixed the quoting issues and push them to github. You said that you don't have git installed, but you can get a Github account, fork the module- release project, and there's a feature of Github where you can edit the file in the web browser and commit the result. You can then send me a pull request to I can sync with your changes. If you are using cygwin, you can update with the git package. For the problem with 2>&1 in default.t, I'm probably going to have to pull out IPC::Open3. The problem is intercepting standard error when the executable isn't perl so the user doesn't see whatever that program would spit out. For further reports, please include the test output. :)
Subject: Re: [rt.cpan.org #44529] Tests do not pass ($^O = 'MSWin32'): t/run.t, t/defaults.t,
Date: Tue, 24 Mar 2009 14:01:52 -0600
To: "brian d foy via RT" <bug-Module-Release [...] rt.cpan.org>
From: "Curtis Jewell" <perl [...] csjewell.fastmail.us>
1) I didn't know that about github! (I'm used to svn, and the msys git installs its own version of perl, and I don't want it to mess things up when I'm trying to program my Perl::Dist submodules!) Thanks... 2) I figured you'd have to do something like that for the default.t problem. (I've had to capture stderr to process it and to hide it quite a few times!) 3) Will do on sending the output. I don't have all the issues caught yet. (One thing I may either send to you to add or make another dist, your choice, is a filter for the .tar.gz file to catch executable flags that'll cause PAUSE to not index a dist, because MakeMaker doesn't do it...) 4) One other issue I may have caught is that when Test::Prereq executes a Module:Install using Makefile.PL, that Makefile.PL will then create a t/inc/Module/Install.pm file if you have Module::Install installed to use in authoring distributions (if not, I assume it'd bail with a "Can't find module" error, I haven't tried that yet), which leaves a file behind, and ends up creating MANIFEST problems when it's ran within Module::Release. Here's the test script in question: #!perl use strict; use warnings; use Test::More; use English qw(-no_match_vars); # use File::Remove qw(); use Cwd qw(); my $cwd = Cwd::cwd(); diag("$cwd\n"); if ( not $ENV{TEST_AUTHOR} ) { my $msg = 'No TEST_AUTHOR: Skipping author test'; plan skip_all => $msg; } eval { require Test::Prereq; }; plan skip_all => 'Test::Prereq required for testing prerequisites' if $EVAL_ERROR; diag('Takes a few minutes...'); Test::Prereq->import(); my @modules_skip = ( # Perl::Dist prerequisites - # since we have Perl::Dist as a prereq, I'm not # listing all of them in the Makefile.PL. # Enough's there as is! 'Archive::Tar', 'Archive::Zip', 'File::Spec', 'File::Copy::Recursive', 'File::Find::Rule', 'File::Path', 'File::pushd', 'File::Remove', 'File::HomeDir', 'File::ShareDir', 'File::PathList', 'File::Temp', 'HTTP::Status', 'IPC::Run3', 'LWP::UserAgent', 'LWP::UserAgent::WithCache', 'LWP::Online', 'Object::Tiny', 'YAML::Tiny', 'Module::CoreList', 'Params::Util', 'Template', 'CPAN', 'PAR::Dist', 'Process', 'Process::Storable', 'Process::Delegatable', 'IO::Capture', 'Win32::File::Object', 'Portable::Dist', 'Probe::Perl', # Needed only for tests 't::lib::Test', # Needed only for AUTHOR_TEST tests 'Perl::Critic::More', 'Test::HasVersion', 'Test::MinimumVersion', 'Test::Perl::Critic', 'Test::Prereq', ); prereq_ok(5.006, 'Check prerequisites', \@modules_skip); # File::Remove::remove( \1, 't\inc' ); and the Makefile.PL: #! perl use inc::Module::Install; die "OS unsupported\n" if (not win32); all_from 'lib/Perl/Dist/WiX.pm'; requires 'version' => '0.76'; requires 'Alien::WiX' => 'v0.300000'; requires 'Data::Dump::Streamer' => '2.08'; requires 'Data::UUID' => '1.149'; requires 'Devel::StackTrace' => '1.20'; requires 'Exception::Class' => '1.22'; requires 'File::ShareDir' => '1.00'; requires 'IO::String' => '1.08'; requires 'List::MoreUtils' => '0.07'; requires 'Module::CoreList' => '2.17'; requires 'Object::InsideOut' => '3.53'; test_requires 'Perl::Critic::More' => '1.000' if ( $ENV{TEST_AUTHOR} ); requires 'Perl::Dist' => '1.12'; requires 'Readonly' => '1.03'; requires 'Scalar::Util' => '1.19'; # Remove when 5.008 is minimum perl version. requires 'Storable' => '2.15'; # Remove when 5.008 is minimum perl version. requires 'URI' => '1.35'; recommends 'Readonly::XS' => '1.05'; test_requires 'Test::HasVersion' => '0.012' if ( $ENV{TEST_AUTHOR} ); test_requires 'Test::MinimumVersion' => '0.008' if ( $ENV{TEST_AUTHOR} ); test_requires 'Test::More' => '0.47'; test_requires 'Test::Output' => '0.11'; test_requires 'Test::Perl::Critic' => '1.01' if ( $ENV{TEST_AUTHOR} ); test_requires 'Test::Prereq' => '1.036' if ( $ENV{TEST_AUTHOR} ); test_requires 'Test::UseAllModules' => '0.09'; requires 'Win32' => '0.35'; resources 'repository' => 'http://svn.ali.as/cpan/trunk/Perl-Dist-WiX'; resources 'bugtracker' => 'http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Perl-Dist-WiX'; license 'perl'; install_share; WriteAll; and the output: C:\Documents and Settings\Curtis\Desktop\Blueberry Perl\Work\Perl-Dist-WiX>perl t\85_prereq.t # C:/Documents and Settings/Curtis/Desktop/Blueberry Perl/Work/Perl-Dist-WiX # Takes a few minutes... 1..1 include C:/Documents and Settings/Curtis/Desktop/Blueberry Perl/Work/Perl-Dist-WiX/t/inc/Module/Install.pm Prototype mismatch: sub Test::Prereq::prompt ($;$) vs none at C:\strawberry\perl\site\lib/Module/Install.pm line 187. include inc/Module/Install/With.pm include inc/Module/Install/Base.pm include inc/Module/Install/Metadata.pm include inc/Module/Install/Share.pm include inc/Module/Install/Makefile.pm include inc/Module/Install/WriteAll.pm Writing META.yml include inc/Module/Install/Win32.pm include inc/Module/Install/Can.pm include inc/Module/Install/Fetch.pm Fetching with LWP: http://cpan.strawberryperl.com/authors/01mailrc.txt.gz Fetching with LWP: http://cpan.strawberryperl.com/modules/02packages.details.txt.gz Fetching with LWP: http://cpan.strawberryperl.com/modules/03modlist.data.gz Database was generated on Mon, 23 Mar 2009 16:25:56 GMT Updating database file ... Gathering information from index files ... Obtaining current state of database ... Populating database tables ... Done! ok 1 - Check prerequisites C:\Documents and Settings\Curtis\Desktop\Blueberry Perl\Work\Perl-Dist-WiX> After that, I notice that inc/Module/Install.pm is gone, and there is a t/inc/Module/Install.pm where it shouldn't be. Thanks! --Curtis -- Curtis Jewell swordsman@csjewell.fastmail.us %DCL-E-MEM-BAD, bad memory -VMS-F-PDGERS, pudding between the ears [I use PC-Alpine, which deliberately does not display colors and pictures in HTML mail] On Tue, 24 Mar 2009 15:00 -0400, "brian d foy via RT" <bug-Module-Release@rt.cpan.org> wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=44529 > > > Thanks for looking into these Windows issues. I've fixed the quoting > issues and push them to > github. > > You said that you don't have git installed, but you can get a Github > account, fork the module- > release project, and there's a feature of Github where you can edit the > file in the web browser > and commit the result. You can then send me a pull request to I can sync > with your changes. If > you are using cygwin, you can update with the git package. > > For the problem with 2>&1 in default.t, I'm probably going to have to > pull out IPC::Open3. The > problem is intercepting standard error when the executable isn't perl so > the user doesn't see > whatever that program would spit out. > > For further reports, please include the test output. :)
-- Curtis Jewell swordsman@csjewell.fastmail.us %DCL-E-MEM-BAD, bad memory -VMS-F-PDGERS, pudding between the ears [I use PC-Alpine, which deliberately does not display colors and pictures in HTML mail]