File: fork_with_new_stdout.t

package info (click to toggle)
perl 5.32.1-4%2Bdeb11u3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 113,408 kB
  • sloc: ansic: 641,443; perl: 491,650; sh: 70,967; pascal: 8,354; cpp: 4,103; xml: 2,428; makefile: 2,237; yacc: 1,173; lisp: 1
file content (54 lines) | stat: -rw-r--r-- 828 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!perl -w
use strict;
use warnings;

use Test2::Util qw/CAN_FORK/;

BEGIN {
    unless (CAN_FORK) {
        require Test::More;
        Test::More->import(skip_all => "fork is not supported");
    }
}

use IO::Pipe;
use Test::Builder;
use Config;

my $b = Test::Builder->new;
$b->reset;

$b->plan('tests' => 2);

my $pipe = IO::Pipe->new;
if (my $pid = fork) {
    $pipe->reader;
    my ($one, $two) = <$pipe>;
    $b->like($one, qr/ok 1/,   "ok 1 from child");
    $b->like($two, qr/1\.\.1/, "1..1 from child");
    waitpid($pid, 0);
}
else {
    require Test::Builder::Formatter;
    $b->{Stack}->top->format(Test::Builder::Formatter->new());
    $pipe->writer;
    $b->reset;
    $b->no_plan;
    $b->output($pipe);
    $b->ok(1);
    $b->done_testing;
}


=pod
#actual
1..2
ok 1
1..1
ok 1
ok 2
#expected
1..2
ok 1
ok 2
=cut