Re: [rt.cpan.org #121128] Test failures on Cygwin

2017-04-15 Thread Ken Brown via RT
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

2017-04-15 Thread Ken Brown via RT
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

2017-04-15 Thread Ken Brown via RT
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