This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Prepare Module::Corelist for 5.35.6
[perl5.git] / dist / ExtUtils-CBuilder / t / 00-have-compiler.t
index 1073277..e4706a0 100644 (file)
@@ -33,13 +33,13 @@ ok( $b, "got CBuilder object" ) or diag $@;
 
     # This will fork a child that will print
     #    'Can't exec "djaadjfkadjkfajdf"'
-    # or similar on STDERR; so make sure fd2 is temporarily closed before
-    # the fork
-    open(my $orig_err, ">&", \*STDERR) or die "Can't dup STDERR: $!";
-    close(STDERR);
+    # or similar on STDERR; so make sure fd2 is temporarily redirected to
+    # oblivion before the fork
+    open(OLDERR, ">&STDERR") or die "Can't dup STDERR: $!";
+    open(STDERR, ">", File::Spec->devnull()) or die "Can't redirect STDERR: $!";
     my $res = $b1->have_compiler;
-    open(STDERR, ">&", $orig_err) or die "Can't dup \$orig_err $!";
-    close($orig_err);
+    open(STDERR, ">&OLDERR") or die "Can't restore STDERR: $!";
+    close(OLDERR);
 
     is($res, 0, "have_compiler: fake missing cc" );
 }
@@ -47,11 +47,11 @@ ok( $b, "got CBuilder object" ) or diag $@;
     my $b2 = ExtUtils::CBuilder->new(quiet => 1);
     configure_fake_missing_compilers($b2);
 
-    open(my $orig_err, ">&", \*STDERR) or die "Can't dup STDERR: $!";
-    close(STDERR);
+    open(OLDERR, ">&STDERR") or die "Can't dup STDERR: $!";
+    open(STDERR, ">", File::Spec->devnull()) or die "Can't redirect STDERR: $!";
     my $res = $b2->have_cplusplus;
-    open(STDERR, ">&", $orig_err) or die "Can't dup \$orig_err $!";
-    close($orig_err);
+    open(STDERR, ">&OLDERR") or die "Can't restore STDERR: $!";
+    close(OLDERR);
 
     is($res, 0, "have_cplusplus: fake missing c++" );
 }