Get mkdir.t working under miniperl *again*
authorFather Chrysostomos <sprout@cpan.org>
Tue, 9 Sep 2014 03:15:58 +0000 (20:15 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 9 Sep 2014 03:16:13 +0000 (20:16 -0700)
In commit ca7cc9e26e, I got mkdir.t to pass under miniperl when
Errno.pm has not been generated yet.

The way I did it, though, causes the test to fail under miniperl if
Errno.pm *has* been generated.  The ‘require’ call that tests to
see whether Errno can load ends up resetting $! before we test the
value in %!.

Also, we don’t need require inside a string eval.

t/op/mkdir.t

index 8096213..2631526 100644 (file)
@@ -24,7 +24,7 @@ $ENV{LANGUAGE} = 'C'; # GNU locale extension
 
 sub errno_or_skip {
     SKIP: {
-       if (is_miniperl && !eval 'require Errno') {
+       if (is_miniperl && !eval { local $!; require Errno }) {
            skip "Errno not built yet", 1;
        }
        eval "ok($_[0])";