X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fcgi.t;fp=t%2Fcgi.t;h=3c09ecd619f6214379a3cb5f7bc6aa63b514b8de;hb=181f477a67c1c1f2f91e03d02987bfc7cb67af43;hp=1b4b06cb5eb47bb205ae128c9b53ee3e6e167307;hpb=2df8cfd320dc9efdf3c2764b2c60ec457c1b024f;p=public-inbox.git diff --git a/t/cgi.t b/t/cgi.t index 1b4b06cb..3c09ecd6 100644 --- a/t/cgi.t +++ b/t/cgi.t @@ -7,10 +7,7 @@ use warnings; use Test::More; use Email::MIME; use File::Temp qw/tempdir/; -eval { require IPC::Run }; -plan skip_all => "missing IPC::Run for t/cgi.t" if $@; - -use constant CGI => "blib/script/public-inbox.cgi"; +require './t/common.perl'; my $tmpdir = tempdir('pi-cgi-XXXXXX', TMPDIR => 1, CLEANUP => 1); my $home = "$tmpdir/pi-home"; my $pi_home = "$home/.public-inbox"; @@ -145,11 +142,6 @@ EOF done_testing(); -sub run_with_env { - my ($env, @args) = @_; - IPC::Run::run(@args, init => sub { %ENV = (%ENV, %$env) }); -} - sub cgi_run { my %env = ( PATH_INFO => $_[0], @@ -162,7 +154,9 @@ sub cgi_run { HTTP_HOST => 'test.example.com', ); my ($in, $out, $err) = ("", "", ""); - my $rc = run_with_env(\%env, [CGI], \$in, \$out, \$err); + my $rdr = { 0 => \$in, 1 => \$out, 2 => \$err }; + run_script(['.cgi'], \%env, $rdr); + die "unexpected error: \$?=$?" if $?; my ($head, $body) = split(/\r\n\r\n/, $out, 2); - { head => $head, body => $body, rc => $rc, err => $err } + { head => $head, body => $body, err => $err } }