#!/usr/bin/perl
use_ok(
'Dpkg::IPC'
);
my
(
$tmp1_fh
,
$tmp1_name
) = tempfile(
UNLINK
=> 1);
my
(
$tmp2_fh
,
$tmp2_name
) = tempfile(
UNLINK
=> 1);
my
$string1
=
"foo\nbar\n"
;
my
$string2
;
file_dump(
$tmp1_name
,
$string1
);
my
$pid
= spawn(
exec
=>
'cat'
,
from_string
=> \
$string1
,
to_string
=> \
$string2
);
ok(
$pid
,
'execute cat program, I/O to variables'
);
is(
$string2
,
$string1
,
'{from,to}_string'
);
$pid
= spawn(
exec
=>
'cat'
,
from_handle
=>
$tmp1_fh
,
to_handle
=>
$tmp2_fh
);
ok(
$pid
,
'execute cat program, I/O to filehandles'
);
wait_child(
$pid
);
$string2
= file_slurp(
$tmp2_name
);
is(
$string2
,
$string1
,
'{from,to}_handle'
);
$pid
= spawn(
exec
=>
'cat'
,
from_file
=>
$tmp1_name
,
to_file
=>
$tmp2_name
,
wait_child
=> 1);
ok(
$pid
,
'execute cat program, I/O to filenames and wait'
);
$string2
= file_slurp(
$tmp2_name
);
is(
$string2
,
$string1
,
'{from,to}_file'
);
eval
{
$pid
= spawn(
exec
=> [
'sleep'
,
'10'
],
wait_child
=> 1,
timeout
=> 1);
};
ok($@,
'fails on timeout'
);