This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
move Carp to ext/Carp, preparing for dual-lifing
[perl5.git] / ext / Carp / t / Carp.t
similarity index 92%
rename from lib/Carp.t
rename to ext/Carp/t/Carp.t
index 253baac..60b3305 100644 (file)
@@ -1,20 +1,26 @@
-BEGIN {
-    chdir 't' if -d 't';
-    @INC = '../lib';
-    require './test.pl';
-}
-
 use warnings;
 no warnings "once";
 use Config;
 
+use IPC::Open3 1.0104 qw(open3);
+use Test::More tests => 58;
+
+sub runperl {
+    my(%args) = @_;
+    my($w, $r);
+    my $pid = open3($w, $r, undef, $^X, "-e", $args{prog});
+    close $w;
+    my $output = "";
+    while(<$r>) { $output .= $_; }
+    waitpid($pid, 0);
+    return $output;
+}
+
 my $Is_VMS = $^O eq 'VMS';
 
 use Carp qw(carp cluck croak confess);
 
 BEGIN {
-    plan tests => 58;
-
     # This test must be run at BEGIN time, because code later in this file
     # sets CORE::GLOBAL::caller
     ok !exists $CORE::GLOBAL::{caller},
@@ -380,34 +386,36 @@ like(
 
 # UTF8-flagged strings should not cause Carp to try to load modules (even
 # implicitly via utf8_heavy.pl) after a syntax error [perl #82854].
-fresh_perl_like(
- q<
-   use utf8; use strict; use Carp;
-   BEGIN { $SIG{__DIE__} = sub { Carp::croak "aaaaa$_[0]" } }
-   $c
-  >,
- qr/aaaaa/,
- {stderr=>1},
- 'Carp can handle UTF8-flagged strings after a syntax error',
+like(
+  runperl(
+    prog => q<
+      use utf8; use strict; use Carp;
+      BEGIN { $SIG{__DIE__} = sub { Carp::croak "aaaaa$_[0]" } }
+      $c
+    >,
+    stderr=>1,
+  ),
+  qr/aaaaa/,
+  'Carp can handle UTF8-flagged strings after a syntax error',
 );
 
 SKIP:
 {
     skip("B:: always created when static", 1)
       if $Config{static_ext} =~ /\bB\b/;
-
-    fresh_perl_is(
-     q<
-       use Carp;
-       $SIG{__WARN__} = sub{};
-       carp ("A duck, but which duck?");
-       print "ok" unless exists $::{"B::"};
-      >,
-     'ok',
-     {},
-     'Carp does not autovivify *B::'
+    is(
+      runperl(
+       prog => q<
+         use Carp;
+         $SIG{__WARN__} = sub{};
+         carp ("A duck, but which duck?");
+         print "ok" unless exists $::{"B::"};
+       >,
+      ),
+      'ok',
+      'Carp does not autovivify *B::',
     );
-  }
+}
 
 # New tests go here