This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/porting/checkcase.t should find() from the top level, not from '..'
authorNicholas Clark <nick@ccl4.org>
Thu, 31 May 2012 09:15:20 +0000 (11:15 +0200)
committerNicholas Clark <nick@ccl4.org>
Thu, 31 May 2012 09:15:20 +0000 (11:15 +0200)
This permits it to be usefully run from the top level of the build tree.
Previously it would find() on '..', which meant that one needed to chdir into
t/ else it would report errors for the contents of the directory containing
the build tree.

t/porting/checkcase.t

index 6ae1cf8..edaeb60 100644 (file)
@@ -1,6 +1,10 @@
 #!/usr/bin/perl
-# Finds the files that have the same name, case insensitively,
-# in the current directory and its subdirectories
+# Finds the files that have the same name, case insensitively in the build tree
+
+BEGIN {
+    @INC = '..' if -f '../TestInit.pm';
+}
+use TestInit qw(T); # T is chdir to the top level
 
 use warnings;
 use strict;
@@ -12,13 +16,13 @@ my $test_count = 0;
 find(sub {
           my $name = $File::Find::name;
           # Assumes that the path separator is exactly one character.
-          $name =~ s/^\.\..//;
+          $name =~ s/^\..//;
 
           # Special exemption for Makefile, makefile
           return if $name =~ m!\A(?:x2p/)?[Mm]akefile\z!;
 
           push @{$files{lc $name}}, $name;
-        }, '..');
+        }, '.');
 
 foreach (sort values %files) {
     if (@$_ > 1) {