Re: [rt.cpan.org #121128] Test failures on Cygwin
Sat Apr 15 13:40:53 2017: Request 121128 was acted upon. Transaction: Correspondence added by kbr...@cornell.edu Queue: Module-ScanDeps Subject: Re: [rt.cpan.org #121128] Test failures on Cygwin Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: kbr...@cornell.edu Status: open Ticket https://rt.cpan.org/Ticket/Display.html?id=121128 > On 4/15/2017 1:14 PM, Roderich Schupp via RT wrote: > https://rt.cpan.org/Ticket/Display.html?id=121128 > > > On 2017-04-15 07:44:44, kbr...@cornell.edu wrote: >> Attached. > > Yep, that is exactly the output you would get when forcing > t/10-case-insensitive-keys.t to run (not skip) on a case-sensitive filesystem. > >> By the way, my file system is set up to be case sensitive, which I guess >> is the same as case_intolerant. > > :) "case intolerant" sounds like some form of allergy to me :) >> I wonder if the problem is that the File::Spec >> module didn't detect this; shouldn't the test have been skipped? > > I looked at File::Spec::Cygwin (from Perl 5.24.1) and it has indeed a Cygwin > specific > File::Spec::case_tolerant. Sorry, I have no machine to test this, but on > first glance this test looks suspicious since there's no "use Cygwin": > > sub case_tolerant { > return 1 unless $^O eq 'cygwin' > and defined ::mount_flags; > ... > > Do the following two oneliners produce different output? > > perl -E 'say "DEFINED" if defined ::mount_flags' > perl -MCygwin -E 'say "DEFINED" if defined ::mount_flags' Yes. $ perl -E 'say "DEFINED" if defined ::mount_flags' DEFINED $ perl -MCygwin -E 'say "DEFINED" if defined ::mount_flags' Can't locate Cygwin.pm in @INC (you may need to install the Cygwin module) (@INC contains: /usr/lib/perl5/site_perl/5.24/x86_64-cygwin-threads /usr/lib/perl5/site_perl/5.24 /usr/lib/perl5/vendor_perl/5.24/x86_64-cygwin-threads /usr/lib/perl5/vendor_perl/5.24 /usr/lib/perl5/5.24/x86_64-cygwin-threads /usr/lib/perl5/5.24 .). BEGIN failed--compilation aborted. Apparently there isn't actually a Cygwin module in the usual sense, but Cygwin::mount_flags is defined in the perl C source code, in cygwin/cygwin.c: newXSproto("Cygwin::mount_table", XS_Cygwin_mount_table, file, ""); But I think the real issue here is that File::Spec doesn't know how to test whether file systems are case sensitive on Cygwin. There's more to it than what can be found in the mount table. In any case, Module::ScanDeps seems to be fine. I'll file a bug report about File::Spec. Thanks, as always, for your help. Ken
Re: [rt.cpan.org #121128] Test failures on Cygwin
Sat Apr 15 07:44:44 2017: Request 121128 was acted upon. Transaction: Correspondence added by kbr...@cornell.edu Queue: Module-ScanDeps Subject: Re: [rt.cpan.org #121128] Test failures on Cygwin Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: kbr...@cornell.edu Status: open Ticket https://rt.cpan.org/Ticket/Display.html?id=121128 > On 4/14/2017 7:10 PM, Roderich Schupp via RT wrote: > Probably harmless. > But can you patch t/10-case-insensitive-keys.t > > ... > # Functional i/f > my $rv1 = scan_deps(@roots1); > #use Data::Dump qw(dump); > #print dump($rv1), "\n"; > ... > > like so: > > ... > # Functional i/f > my $rv1 = scan_deps(@roots1); > use Data::Dumper; > print STDERR "\n", Dumper($rv1); > ... > > then run > > make test TEST_VERBOSE=1 TEST_FILES=t/10-case-insensitive-keys.t > > and attach its stdout/stderr. Attached. By the way, my file system is set up to be case sensitive, which I guess is the same as case_intolerant. [Cygwin users can control this by a registry setting.] I wonder if the problem is that the File::Spec module didn't detect this; shouldn't the test have been skipped? I don't have time at the moment, but I'll take a look at the File::Spec module later and see if that's the issue. Ken $VAR1 = { 'Test.pm' => { 'key' => 'Test.pm', 'type' => 'module', 'used_by' => [ 'this_case.pl' ], 'file' => '/home/kbrown-admin/.cpan/build/Module-ScanDeps-1.23-nAf8Qz/t/data/case-insensitive-keys/Test.pm' }, 'this_case.pl' => { 'file' => '/home/kbrown-admin/.cpan/build/Module-ScanDeps-1.23-nAf8Qz/t/data/case-insensitive-keys/this_case.pl', 'type' => 'data', 'uses' => [ 'Test.pm' ], 'key' => 'this_case.pl' }, 'that_case.pl' => { 'file' => '/home/kbrown-admin/.cpan/build/Module-ScanDeps-1.23-nAf8Qz/t/data/case-insensitive-keys/that_case.pl', 'type' => 'data', 'key' => 'that_case.pl' } }; # Failed test 'For Test.pm: number of used_by in $rv_to_test == Number of used_by in $rv_to_match' # at t/10-case-insensitive-keys.t line 57. # got: 1 # expected: 2 # Failed test 'For that_case.pl: uses exists as expected' # at t/10-case-insensitive-keys.t line 57. # Looks like you planned 43 tests but ran 40. # Looks like you failed 2 tests of 40 run. Failed 1/1 test programs. 2/40 subtests failed. make: *** [Makefile:897: test_dynamic] Error 2 PERL_DL_NONLAZY=1 "/usr/bin/perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/10-case-insensitive-keys.t t/10-case-insensitive-keys.t .. 1..43 ok 1 - use Module::ScanDeps; ok 2 - $rv is a ref ok 3 - that_case.pl is in rv ok 4 - this_case.pl is in rv ok 5 - For this_case.pl: the sub-key matches ok 6 - For this_case.pl: the file has been verified ok 7 - For this_case.pl: the type matches module|autoload|data|shared ok 8 - used-by not defined so this_case.pl must be one of the input files or is a plugin ok 9 - $rv contains a matching used_by field for the uses entry Test.pm for key this_case.pl ok 10 - For that_case.pl: the sub-key matches ok 11 - For that_case.pl: the file has been verified ok 12 - For that_case.pl: the type matches module|autoload|data|shared ok 13 - used-by not defined so that_case.pl must be one of the input files or is a plugin ok 14 - $rv contains a matching used_by field for the uses entry Test.pm for key that_case.pl ok 15 - For Test.pm: the sub-key matches ok 16 - For Test.pm: the file has been verified ok 17 - For Test.pm: the type matches module|autoload|data|shared ok 18 - Test.pm's used_by has no duplicates ok 19 - All entries in Test.pm's used_by are themselves described in $rv ok 20 - $rv contains a matching uses field for the used_by entry that_case.pl for key Test.pm ok 21 - $rv contains a matching uses field for the used_by entry this_case.pl for key Test.pm ok 22 - $rv_to_test is a ref ok 23 - Number of keys in $rv_to_test == Number of keys in $rv_to_match ok 24 - Keys in $rv_to_test all eq keys in $rv_to_match ok 25 - For Test.pm: sub-key matches the expected ok 26 - For Test.pm: file matches the expected ok 27 - For Test.pm: type matches the expected ok 28 - For Test.pm: used_by exists as exp
Re: [rt.cpan.org #121128] Test failures on Cygwin
Sat Apr 15 07:36:18 2017: Request 121128 was acted upon. Transaction: Correspondence added by kbr...@cornell.edu Queue: Module-ScanDeps Subject: Re: [rt.cpan.org #121128] Test failures on Cygwin Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: kbr...@cornell.edu Status: open Ticket https://rt.cpan.org/Ticket/Display.html?id=121128 > On 4/14/2017 7:10 PM, Roderich Schupp via RT wrote: > Probably harmless. > But can you patch t/10-case-insensitive-keys.t > > ... > # Functional i/f > my $rv1 = scan_deps(@roots1); > #use Data::Dump qw(dump); > #print dump($rv1), "\n"; > ... > > like so: > > ... > # Functional i/f > my $rv1 = scan_deps(@roots1); > use Data::Dumper; > print STDERR "\n", Dumper($rv1); > ... > > then run > > make test TEST_VERBOSE=1 TEST_FILES=t/10-case-insensitive-keys.t > > and attach its stdout/stderr. Attached. By the way, my file system is set up to be case sensitive, which I guess is the same as case_intolerant. [Cygwin users can control this by a registry setting.] I wonder if the problem is that the File::Spec module didn't detect this; shouldn't the test have been skipped? I don't have time at the moment, but I'll take a look at the File::Spec module later and see if that's the issue. Ken $VAR1 = { 'Test.pm' => { 'key' => 'Test.pm', 'type' => 'module', 'used_by' => [ 'this_case.pl' ], 'file' => '/home/kbrown-admin/.cpan/build/Module-ScanDeps-1.23-nAf8Qz/t/data/case-insensitive-keys/Test.pm' }, 'this_case.pl' => { 'file' => '/home/kbrown-admin/.cpan/build/Module-ScanDeps-1.23-nAf8Qz/t/data/case-insensitive-keys/this_case.pl', 'type' => 'data', 'uses' => [ 'Test.pm' ], 'key' => 'this_case.pl' }, 'that_case.pl' => { 'file' => '/home/kbrown-admin/.cpan/build/Module-ScanDeps-1.23-nAf8Qz/t/data/case-insensitive-keys/that_case.pl', 'type' => 'data', 'key' => 'that_case.pl' } }; # Failed test 'For Test.pm: number of used_by in $rv_to_test == Number of used_by in $rv_to_match' # at t/10-case-insensitive-keys.t line 57. # got: 1 # expected: 2 # Failed test 'For that_case.pl: uses exists as expected' # at t/10-case-insensitive-keys.t line 57. # Looks like you planned 43 tests but ran 40. # Looks like you failed 2 tests of 40 run. Failed 1/1 test programs. 2/40 subtests failed. make: *** [Makefile:897: test_dynamic] Error 2 PERL_DL_NONLAZY=1 "/usr/bin/perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/10-case-insensitive-keys.t t/10-case-insensitive-keys.t .. 1..43 ok 1 - use Module::ScanDeps; ok 2 - $rv is a ref ok 3 - that_case.pl is in rv ok 4 - this_case.pl is in rv ok 5 - For this_case.pl: the sub-key matches ok 6 - For this_case.pl: the file has been verified ok 7 - For this_case.pl: the type matches module|autoload|data|shared ok 8 - used-by not defined so this_case.pl must be one of the input files or is a plugin ok 9 - $rv contains a matching used_by field for the uses entry Test.pm for key this_case.pl ok 10 - For that_case.pl: the sub-key matches ok 11 - For that_case.pl: the file has been verified ok 12 - For that_case.pl: the type matches module|autoload|data|shared ok 13 - used-by not defined so that_case.pl must be one of the input files or is a plugin ok 14 - $rv contains a matching used_by field for the uses entry Test.pm for key that_case.pl ok 15 - For Test.pm: the sub-key matches ok 16 - For Test.pm: the file has been verified ok 17 - For Test.pm: the type matches module|autoload|data|shared ok 18 - Test.pm's used_by has no duplicates ok 19 - All entries in Test.pm's used_by are themselves described in $rv ok 20 - $rv contains a matching uses field for the used_by entry that_case.pl for key Test.pm ok 21 - $rv contains a matching uses field for the used_by entry this_case.pl for key Test.pm ok 22 - $rv_to_test is a ref ok 23 - Number of keys in $rv_to_test == Number of keys in $rv_to_match ok 24 - Keys in $rv_to_test all eq keys in $rv_to_match ok 25 - For Test.pm: sub-key matches the expected ok 26 - For Test.pm: file matches the expected ok 27 - For Test.pm: type matches the expected ok 28 - For Test.pm: used_by exists as exp