This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Get t/io/open.t working under miniperl
authorFather Chrysostomos <sprout@cpan.org>
Tue, 2 Sep 2014 07:11:34 +0000 (00:11 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 3 Sep 2014 03:11:16 +0000 (20:11 -0700)
If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before Errno.pm is generated and copied
into lib/.

t/io/open.t

index 3e6efb4..3817bdd 100644 (file)
@@ -438,23 +438,29 @@ pass("no crash when open autovivifies glob in freed package");
         is($WARN, '', "ignore warning on embedded nul with no warnings syscalls");
     }
 
-    use Errno 'ENOENT';
-    # check handling of multiple arguments, which the original patch
-    # mis-handled
-    $! = 0;
-    is (unlink($fn, $fn), 0, "check multiple arguments to unlink");
-    is($!+0, ENOENT, "check errno");
-    $! = 0;
-    is (chmod(0644, $fn, $fn), 0, "check multiple arguments to chmod");
-    is($!+0, ENOENT, "check errno");
-    $! = 0;
-    is (utime(time, time, $fn, $fn), 0, "check multiple arguments to utime");
-    is($!+0, ENOENT, "check errno");
     SKIP: {
-        skip "no chown", 2 unless $Config{d_chown};
+        if (is_miniperl && !eval 'require Errno') {
+            skip "Errno not built yet", 8;
+        }
+        require Errno;
+        import Errno 'ENOENT';
+        # check handling of multiple arguments, which the original patch
+        # mis-handled
         $! = 0;
-        is(chown(-1, -1, $fn, $fn), 0, "check multiple arguments to chown");
-        is($!+0, ENOENT, "check errno");
+        is (unlink($fn, $fn), 0, "check multiple arguments to unlink");
+        is($!+0, &ENOENT, "check errno");
+        $! = 0;
+        is (chmod(0644, $fn, $fn), 0, "check multiple arguments to chmod");
+        is($!+0, &ENOENT, "check errno");
+        $! = 0;
+        is (utime(time, time, $fn, $fn), 0, "check multiple arguments to utime");
+        is($!+0, &ENOENT, "check errno");
+        SKIP: {
+            skip "no chown", 2 unless $Config{d_chown};
+            $! = 0;
+            is(chown(-1, -1, $fn, $fn), 0, "check multiple arguments to chown");
+            is($!+0, &ENOENT, "check errno");
+        }
     }
 
     is (unlink($fn), 0, "unlink fails with \\0 in name");