X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=t%2Fspawn.t;h=5fc99a2a101c8c2c83466e515a84bba471b9546e;hp=6168c1f6171c83919efefa91d7194a5a8b069c1b;hb=5593489d9c3ce22b1942f35c7ebb0e06fcf2bfa8;hpb=60848de2194f0c518bd660860e9458dd765d0a3e diff --git a/t/spawn.t b/t/spawn.t index 6168c1f6..5fc99a2a 100644 --- a/t/spawn.t +++ b/t/spawn.t @@ -24,7 +24,18 @@ SKIP: { is(waitpid($pid, 0), $pid, 'waitpid succeeds on spawned process'); is($?, 0, 'true exited successfully'); pipe(my ($r, $w)) or BAIL_OUT; - $pid = eval { spawn(['true'], undef, { pgid => 1, 2 => $w }) }; + + # Find invalid PID to try to join its process group. + my $wrong_pgid = 1; + for (my $i=0x7fffffff; $i >= 2; $i--) { + if (kill(0, $i) == 0) { + $wrong_pgid = $i; + last; + } + } + + # Test spawn behavior when it can't join the requested process group. + $pid = eval { spawn(['true'], undef, { pgid => $wrong_pgid, 2 => $w }) }; close $w; my $err = do { local $/; <$r> }; # diag "$err ($@)";