This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/porting/checkcase.t should skip directories
[perl5.git] / t / porting / checkcase.t
1 #!/usr/bin/perl
2 # Finds the files that have the same name, case insensitively,
3 # in the current directory and its subdirectories
4
5 use warnings;
6 use strict;
7 use File::Find;
8
9 my %files;
10 my $test_count = 0;
11
12 find(sub {
13            # We only care about directories to the extent they
14            # result in an actual file collision, so skip dirs
15            return if -d $File::Find::name;
16
17            my $name = $File::Find::name;
18            # Assumes that the path separator is exactly one character.
19            $name =~ s/^\.\..//;
20
21            # Special exemption for Makefile, makefile
22            return if $name =~ m!\A(?:x2p/)?[Mm]akefile\z!;
23
24            push @{$files{lc $name}}, $name;
25          }, '..');
26
27 foreach (sort values %files) {
28     if (@$_ > 1) {
29                 print "not ok ".++$test_count. " - ". join(", ", @$_), "\n";
30                 print STDERR "# $_\n" foreach @$_;
31     } else {
32                 print "ok ".++$test_count. " - ". join(", ", @$_), "\n";
33         }
34 }
35
36 print "1..".$test_count."\n";