This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/loc_tools.pl: Display diagnostic on non-found file
authorKarl Williamson <khw@cpan.org>
Tue, 9 Jan 2018 20:19:12 +0000 (13:19 -0700)
committerKarl Williamson <khw@cpan.org>
Tue, 9 Jan 2018 20:26:11 +0000 (13:26 -0700)
The diagnostic output added in 759b442cd504fd04e125d71b981f7092ec3fbea1
shows that in some platforms that the path to certain files is not
correct at the time  (spotted by Tomasz Konojacki).

This commit tests for the existence of the files, and if not found warns
and doesn't process further.  This warning gives a better clue in the
future as to the cause of the problem.  The other warning remains, in
case there are other causes, now or in the future.

We are still working on the best way to specify these files, as the
hard-coded relative path that specifies them gets disrupted if the
current directory gets changed.

t/loc_tools.pl

index c0b34a1..202ed02 100644 (file)
@@ -360,12 +360,17 @@ sub find_locales ($;$) {
         # This is going to be slow.
         my @Data;
 
-        # Locales whose name differs if the utf8 bit is on are stored in these two
-        # files with appropriate encodings.
-        if ($^H & 0x08 || (${^OPEN} || "") =~ /:utf8/) {
-            @Data = do "./lib/locale/utf8";
-        } else {
-            @Data = do "./lib/locale/latin1";
+        # Locales whose name differs if the utf8 bit is on are stored in these
+        # two files with appropriate encodings.
+        my $data_file = ($^H & 0x08 || (${^OPEN} || "") =~ /:utf8/)
+                        ? "./lib/locale/utf8"
+                        : "./lib/locale/latin1";
+        $data_file='khw foobar';
+        if (-e $data_file) {
+            @Data = do $data_file;
+        }
+        else {
+            _my_diag(__FILE__ . ":" . __LINE__ . ": '$data_file' doesn't exist");
         }
 
         # The rest of the locales are in this file.