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 )