about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-11-04 03:01:35 +0000
committerEric Wong <e@80x24.org>2019-11-08 20:22:18 +0000
commitc976a11cae7779b7be80edefff1411823c4b75e1 (patch)
tree914889ae0f2f2c7e8f1e584d6ab7f522f4d5c030 /t
parent2399690b533a3f0c584addae366aab23b23cb3ed (diff)
downloadpublic-inbox-c976a11cae7779b7be80edefff1411823c4b75e1.tar.gz
We already load PublicInbox::Spawn, so there's no need to
add another dependency to make life difficult for potential
contributors.
Diffstat (limited to 't')
-rw-r--r--t/httpd-corner.t21
1 files changed, 11 insertions, 10 deletions
diff --git a/t/httpd-corner.t b/t/httpd-corner.t
index 50aa28e3..13c0c2db 100644
--- a/t/httpd-corner.t
+++ b/t/httpd-corner.t
@@ -6,10 +6,9 @@ use strict;
 use warnings;
 use Test::More;
 use Time::HiRes qw(gettimeofday tv_interval);
-use PublicInbox::Spawn qw(which);
+use PublicInbox::Spawn qw(which spawn);
 
-foreach my $mod (qw(Plack::Util Plack::Builder
-                        HTTP::Date HTTP::Status IPC::Run)) {
+foreach my $mod (qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status)) {
         eval "require $mod";
         plan skip_all => "$mod missing for httpd-corner.t" if $@;
 }
@@ -250,19 +249,21 @@ SKIP: {
         my ($r, $w);
         pipe($r, $w) or die "pipe: $!";
         my $cmd = [qw(curl --tcp-nodelay --no-buffer -T- -HExpect: -sS), $url];
-        my ($out, $err) = ('', '');
-        my $h = IPC::Run::start($cmd, $r, \$out, \$err);
-        $w->autoflush(1);
+        open my $cout, '+>', undef or die;
+        open my $cerr, '>', undef or die;
+        my $rdr = { 0 => fileno($r), 1 => fileno($cout), 2 => fileno($cerr) };
+        my $pid = spawn($cmd, undef, $rdr);
+        close $r or die "close read pipe: $!";
         foreach my $c ('a'..'z') {
                 print $w $c or die "failed to write to curl: $!";
                 delay();
         }
         close $w or die "close write pipe: $!";
-        close $r or die "close read pipe: $!";
-        IPC::Run::finish($h);
+        waitpid($pid, 0);
         is($?, 0, 'curl exited successfully');
-        is($err, '', 'no errors from curl');
-        is($out, sha1_hex($str), 'read expected body');
+        is(-s $cerr, 0, 'no errors from curl');
+        $cout->seek(0, SEEK_SET);
+        is(<$cout>, sha1_hex($str), 'read expected body');
 
         open my $fh, '-|', qw(curl -sS), "$base/async-big" or die $!;
         my $n = 0;