Linux-Event-Fork
view release on metacpan or search on metacpan
t/05-child-setup-options.t view on Meta::CPAN
use v5.36;
use Test2::V0;
use Linux::Event;
use Linux::Event::Fork;
# Test cwd + env overlay + clear_env + umask.
# We run a small perl child that prints:
# cwd=<...>
# foo=<...>
# path=<... or undef>
# umask=<...>
sub run_child (%spawn) {
my $loop = Linux::Event->new;
my $forker = Linux::Event::Fork->new($loop);
my $out = '';
t/05-child-setup-options.t view on Meta::CPAN
on_exit => sub ($child, $ex) { $exit = $ex; $loop->stop },
);
$loop->run;
ok($exit && $exit->exited, 'child exited');
is($exit->code, 0, 'exit code 0');
return $out;
}
# 1) env overlay should preserve PATH by default.
{
my $out = run_child(
cmd => [
$^X, '-we',
q{
use Cwd qw(getcwd);
my $cwd = getcwd();
print "cwd=$cwd
";
print "foo=" . ($ENV{FOO}//"") . "
t/05-child-setup-options.t view on Meta::CPAN
my $m = umask();
umask($m);
printf "umask=%04o
", $m;
exit 0;
},
],
env => { FOO => "BAR" },
);
like($out, qr/^foo=BAR$/m, 'FOO overlay applied');
like($out, qr/^path=1$/m, 'PATH preserved (overlay)');
}
# 2) clear_env should remove PATH unless explicitly set.
{
my $out = run_child(
cmd => [
$^X, '-we',
q{
print "foo=" . ($ENV{FOO}//"") . "
";
( run in 1.480 second using v1.01-cache-2.11-cpan-39bf76dae61 )