File: run_stdin-callback-return-array.t

package info (click to toggle)
libipc-run-perl 20231003.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 844 kB
  • sloc: perl: 6,255; makefile: 5
file content (29 lines) | stat: -rw-r--r-- 1,069 bytes parent folder | download | duplicates (2)
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
# Demonstrate Perl IPC::Run stdin callback problem returning array
# by David Paul Christensen dpchrist@holgerdanske.com
# Public Domain

use strict;
use warnings;

use IPC::Run qw( run );
use Test::More tests => 9;

my @cmd = ("true");
if ($^O eq 'MSWin32') {
  @cmd = ( $^X, '-e', 'exit 0' );
}
our ( $i, @i );
my ( $in, @in );

ok( run( \@cmd ) == 1, "no callback" );    #     1
ok( run( \@cmd, sub { return undef } ) == 1, "undef" );             #     2
ok( run( \@cmd, sub { return "" } ) == 1,    "empty string" );      #     3
ok( run( \@cmd, sub { return () } ) == 1,    "empty array" );       #     4
ok( run( \@cmd, sub { return $i } ) == 1,    "package scalar" );    #     5
ok( run( \@cmd, sub { return $in } ) == 1,   "lexical scalar" );    #     6
ok(
    run( \@cmd, sub { my @a; return @a } ) == 1,
    "block lexical array"
);                                                                  #     7
ok( run( \@cmd, sub { return @i } ) == 1,  "package array" );       #     8
ok( run( \@cmd, sub { return @in } ) == 1, "lexical array" );       #     9