File: fork_with_new_stdout.t

package info (click to toggle)
libtest-simple-perl 1.302211-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,972 kB
  • sloc: perl: 19,894; makefile: 7
file content (54 lines) | stat: -rw-r--r-- 828 bytes parent folder | download | duplicates (11)
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