[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

[MacPerl-Porters] [PATCH 5.6.0] tests in :t:pragma:*.t





It looks like the diagnostics pragma could use some Mac-pathifying:

 miniperl :pragma:diagnostics.t
 couldn't find diagnostic data in /pods/perldiag.pod :lib: : :pragma:diagnostics.t at :lib:diagnostics.pm line 241.
 Compilation failed in require at :pragma:diagnostics.t line 28.
 BEGIN failed--compilation aborted at :pragma:diagnostics.t line 28.

The following nasty:

 miniperl -T :pragma:locale.t
 Use of uninitialized value in pattern match (m//) at :pragma:locale.t line 8.
 
looks like it is due to the fact that ccflags is not set in Config.pm.   There
were several passes and a few failures in my run of locale.t by the way.

overload.t passes all 208 tests.  strict.t comes up with:

 miniperl :pragma:strict.t
 Can't locate File/Glob.pm in @INC (@INC contains: ::lib: :) at :pragma:strict.t line 20.
 BEGIN failed--compilation aborted at :pragma:strict.t line 20.

for me since I do not have a full perl build and am missing the 
XS based :ext:ensions from my :lib: path.  sub_lval.t passes all 46 tests

In order to get subs.t to pass all 6 of its tests I had to place a 
copy of my $^X binary (in my case I was using my miniperl although I hope
to eventually try tests with copies of Chris' perl binaries) into
my {MPW}Tools: folder so that toolserver would know where to find them.
This seems to present a chicken and egg problem: in order to run tests such
as these you need to have done an install of perl (including a toolserver
install), however the tests are typically run _before_ installing to verify
the correctness of the build.  It may prove necessary to document expected 
pre install failures and expected post install test results.

All 60 of the utf8.t tests pass for me out of the box.  For warnings.t I 
obtain:

 miniperl :pragma:warnings.t
 Can't locate File/Glob.pm in @INC (@INC contains: ::lib: :) at :pragma:warnings.t line 25.
 BEGIN failed--compilation aborted at :pragma:warnings.t line 25.
 
For the reason I mentioned above regarding strict.t and my non full build.

Here then is the patch for the :t:pragma:*.t tests,

diff -ru :pragma.orig:constant.t :pragma:constant.t
--- :pragma.orig:constant.t	Mon Mar 13 21:25:37 2000
+++ :pragma:constant.t	Mon May 29 19:44:34 2000
@@ -2,7 +2,12 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib' if -d '../lib';
+	if ($^O eq 'MacOS') {
+        unshift @INC, '::lib:' if -d '::lib:';
+    }
+	else {
+        unshift @INC, '../lib' if -d '../lib';
+	}
 }
 
 use warnings;
diff -ru :pragma.orig:diagnostics.t :pragma:diagnostics.t
--- :pragma.orig:diagnostics.t	Mon Mar 13 10:32:18 2000
+++ :pragma:diagnostics.t	Mon May 29 19:47:54 2000
@@ -1,8 +1,14 @@
 #!./perl
 
 BEGIN {
-    chdir '..' if -d '../pod';
-    unshift @INC, './lib' if -d './lib';
+    if ($^O eq 'MacOS') {
+        chdir '::' if -d '::pod:';
+        unshift @INC, ':lib:' if -d ':lib:';
+    }
+	else {
+        chdir '..' if -d '../pod';
+        unshift @INC, './lib' if -d './lib';
+	}
 }
 
 
diff -ru :pragma.orig:locale.t :pragma:locale.t
--- :pragma.orig:locale.t	Mon Mar 13 21:25:37 2000
+++ :pragma:locale.t	Mon May 29 19:49:47 2000
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    unshift @INC, ($^O eq 'MacOS') ? '::lib:' : '../lib';
     unshift @INC, '.';
     require Config; import Config;
     if (!$Config{d_setlocale} || $Config{ccflags} =~ /\bD?NO_LOCALE\b/) {
diff -ru :pragma.orig:overload.t :pragma:overload.t
--- :pragma.orig:overload.t	Tue Dec 28 03:22:38 1999
+++ :pragma:overload.t	Mon May 29 19:51:26 2000
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    unshift @INC, ($^O eq 'MacOS') ? '::lib:' : '../lib';
 }
 
 package Oscalar;
diff -ru :pragma.orig:strict.t :pragma:strict.t
--- :pragma.orig:strict.t	Wed Mar  1 06:28:41 2000
+++ :pragma:strict.t	Mon May 29 19:52:34 2000
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    unshift @INC, ($^O eq 'MacOS') ? '::lib:' : '../lib';
     $ENV{PERL5LIB} = '../lib';
 }
 
diff -ru :pragma.orig:sub_lval.t :pragma:sub_lval.t
--- :pragma.orig:sub_lval.t	Sat Oct  2 02:33:18 1999
+++ :pragma:sub_lval.t	Mon May 29 19:53:27 2000
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    unshift @INC, ($^O eq 'MacOS') ? '::lib:' : '../lib';
 }
 
 sub a : lvalue { my $a = 34; bless \$a }  # Return a temporary
diff -ru :pragma.orig:subs.t :pragma:subs.t
--- :pragma.orig:subs.t	Wed Mar  1 06:28:41 2000
+++ :pragma:subs.t	Sun Jun  4 12:52:24 2000
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    unshift @INC, ($^O eq 'MacOS') ? '::lib:' : '../lib';
     $ENV{PERL5LIB} = '../lib';
 }
 
@@ -13,6 +13,7 @@
 
 my $Is_VMS = $^O eq 'VMS';
 my $Is_MSWin32 = $^O eq 'MSWin32';
+my $Is_MacOS = $^O eq 'MacOS';
 my $tmpfile = "tmp0000";
 my $i = 0 ;
 1 while -f ++$tmpfile;
@@ -49,6 +50,8 @@
                   `./perl $switch $tmpfile 2>&1` :
 		  $Is_MSWin32 ?
                   `.\\perl -I../lib $switch $tmpfile 2>&1` :
+		  $Is_MacOS ?
+		          `$^X -I::lib: $switch $tmpfile` :
                   `./perl $switch $tmpfile 2>&1`;
     my $status = $?;
     $results =~ s/\n+$//;
@@ -119,7 +122,12 @@
 1;
 --FILE--
 use subs qw( Fred ) ;
-require "./abc" ;
+if ($^O eq 'MacOS') {
+    require "abc" ;
+}
+else {
+    require "./abc" ;
+}
 sub Fred { print $_[0] + $_[1], "\n" }
 EXPECT
 3
diff -ru :pragma.orig:utf8.t :pragma:utf8.t
--- :pragma.orig:utf8.t	Sat Mar 18 01:24:04 2000
+++ :pragma:utf8.t	Mon May 29 19:55:52 2000
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    unshift @INC, ($^O eq 'MacOS') ? '::lib:' : '../lib';
     $ENV{PERL5LIB} = '../lib';
     if ( ord("\t") != 9 ) { # skip on ebcdic platforms
         print "1..0 # Skip utf8 tests on ebcdic platform.\n";
diff -ru :pragma.orig:warnings.t :pragma:warnings.t
--- :pragma.orig:warnings.t	Wed Mar  1 06:28:41 2000
+++ :pragma:warnings.t	Mon May 29 19:56:42 2000
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    unshift @INC, ($^O eq 'MacOS') ? '::lib:' : '../lib';
     $ENV{PERL5LIB} = '../lib';
     require Config; import Config;
 }
End of Patch.

If there are no objections I would like to re-do all of my posted
test patches as unix uni-diffs, test on unix (maybe NT) then submit
them to p5p.  Does that sound OK?

Peter Prymmer






==== Want to unsubscribe from this list?
==== Send mail with body "unsubscribe" to macperl-porters-request@macperl.org