summaryrefslogtreecommitdiff
path: root/cpan/Test-Simple/t/Legacy/fork_die.t
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/Test-Simple/t/Legacy/fork_die.t')
-rw-r--r--cpan/Test-Simple/t/Legacy/fork_die.t61
1 files changed, 0 insertions, 61 deletions
diff --git a/cpan/Test-Simple/t/Legacy/fork_die.t b/cpan/Test-Simple/t/Legacy/fork_die.t
deleted file mode 100644
index 31fb9b64e1..0000000000
--- a/cpan/Test-Simple/t/Legacy/fork_die.t
+++ /dev/null
@@ -1,61 +0,0 @@
-use strict;
-use warnings;
-
-use Test::CanFork;
-
-# The failure case for this test is producing 2 results, 1 pass and 1 fail,
-# both with the same test number. If this test file does anything other than 1
-# (non-indented) result that passes, it has failed in one way or another.
-use Test::More tests => 1;
-use Test::Stream qw/context/;
-
-my $line;
-
-subtest do_it => sub {
- ok(1, "Pass!");
-
- my ($read, $write);
- pipe($read, $write) || die "Could not open pipe";
-
- my $pid = fork();
- die "Forking failed!" unless defined $pid;
-
- unless($pid) {
- close($read);
- Test::Stream::IOSets->_autoflush($write);
- my $ctx = context();
- my $handles = $ctx->stream->io_sets->init_encoding('legacy');
- $handles->[0] = $write;
- $handles->[1] = $write;
- $handles->[2] = $write;
- *STDERR = $write;
- *STDOUT = $write;
-
- die "This process did something wrong!"; BEGIN { $line = __LINE__ };
- }
- close($write);
-
- waitpid($pid, 0);
- ok($?, "Process exited with failure");
-
- my $file = __FILE__;
- {
- local $SIG{ALRM} = sub { die "Read Timeout\n" };
- alarm 2;
- my @output = map {chomp($_); $_} <$read>;
- alarm 0;
- is_deeply(
- \@output,
- [
- "Subtest finished with a new PID ($pid vs $$) while forking support was turned off!",
- 'This is almost certainly not what you wanted. Did you fork and forget to exit?',
- "This process did something wrong! at $file line $line.",
- ],
- "Got warning and exception, nothing else"
- );
- }
-
- ok(1, "Pass After!");
-};
-
-done_testing;