X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fspawn.t;h=5fc99a2a101c8c2c83466e515a84bba471b9546e;hb=5593489d9c3ce22b1942f35c7ebb0e06fcf2bfa8;hp=a17b72d97ff5926d41477647b0ffc273d16d5dc2;hpb=5244475c94d9f80b0a76b6bfa9185bdff5a8a0d8;p=public-inbox.git diff --git a/t/spawn.t b/t/spawn.t index a17b72d9..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 ($@)"; @@ -121,6 +132,12 @@ EOF isnt($?, 0, '$? set properly: '.$?); } +{ + local $ENV{GIT_CONFIG} = '/path/to/this/better/not/exist'; + my $fh = popen_rd([qw(env)], { GIT_CONFIG => undef }); + ok(!grep(/^GIT_CONFIG=/, <$fh>), 'GIT_CONFIG clobbered'); +} + { # ->CLOSE vs ->DESTROY waitpid caller distinction my @c; my $fh = popen_rd(['true'], undef, { cb => sub { @c = caller } });