This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
retab t/porting/checkcase.t
[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";
37 # vim: ts=4 sts=4 sw=4 et: