X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fhttpd-corner.t;h=0a613a9e095565a5b4fa75fda023436532e200b6;hb=4eee5af6011cc8cdefb66c9729952c7eff5c0b0b;hp=794d8aebe7ca0414a22492bb747778784e839723;hpb=860169adcd29341142b7c4a369c09b4ac492bd1e;p=public-inbox.git diff --git a/t/httpd-corner.t b/t/httpd-corner.t index 794d8aeb..0a613a9e 100644 --- a/t/httpd-corner.t +++ b/t/httpd-corner.t @@ -2,12 +2,9 @@ # License: AGPL-3.0+ # note: our HTTP server should be standalone and capable of running # generic PSGI/Plack apps. -use strict; -use warnings; -use Test::More; +use strict; use v5.10.1; use PublicInbox::TestCommon; use Time::HiRes qw(gettimeofday tv_interval); -use PublicInbox::Spawn qw(which spawn popen_rd); -use PublicInbox::TestCommon; +use PublicInbox::Spawn qw(spawn popen_rd); require_mods(qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status)); use Digest::SHA qw(sha1_hex); use IO::Handle (); @@ -39,7 +36,7 @@ if ($^O eq 'linux') { } } elsif ($^O eq 'freebsd' && system('kldstat -m accf_data >/dev/null') == 0) { require PublicInbox::Daemon; - my $var = PublicInbox::Daemon::SO_ACCEPTFILTER(); + my $var = $PublicInbox::Daemon::SO_ACCEPTFILTER; $accf_arg = pack('a16a240', 'dataready', ''); setsockopt($sock, SOL_SOCKET, $var, $accf_arg) or die "setsockopt: $!"; } @@ -85,7 +82,12 @@ if ('test worker death') { like($body, qr/\A[0-9]+\z/, '/pid response'); isnt($body, $pid, 'respawned worker'); } - +{ + my $conn = conn_for($sock, 'Header spaces bogus'); + $conn->write("GET /empty HTTP/1.1\r\nSpaced-Out : 3\r\n\r\n"); + $conn->read(my $buf, 4096); + like($buf, qr!\AHTTP/1\.[0-9] 400 !, 'got 400 response on bad request'); +} { my $conn = conn_for($sock, 'streaming callback'); $conn->write("GET /callback HTTP/1.0\r\n\r\n"); @@ -303,7 +305,7 @@ my $check_self = sub { }; SKIP: { - my $curl = which('curl') or skip('curl(1) missing', 4); + my $curl = require_cmd('curl', 1) or skip('curl(1) missing', 4); my $base = 'http://'.tcp_host_port($sock); my $url = "$base/sha1"; my ($r, $w); @@ -599,18 +601,19 @@ SKIP: { SKIP: { skip 'SO_ACCEPTFILTER is FreeBSD-only', 1 if $^O ne 'freebsd'; skip 'accf_data not loaded: kldload accf_data' if !defined $accf_arg; - my $var = PublicInbox::Daemon::SO_ACCEPTFILTER(); + my $var = $PublicInbox::Daemon::SO_ACCEPTFILTER; defined(my $x = getsockopt($sock, SOL_SOCKET, $var)) or die; is($x, $accf_arg, 'SO_ACCEPTFILTER unchanged if previously set'); }; SKIP: { skip 'only testing lsof(8) output on Linux', 1 if $^O ne 'linux'; - my $lsof = which('lsof') or skip 'no lsof in PATH', 1; + my $lsof = require_cmd('lsof', 1) or skip 'no lsof in PATH', 1; my $null_in = ''; my $rdr = { 2 => \(my $null_err), 0 => \$null_in }; my @lsof = xqx([$lsof, '-p', $td->{pid}], undef, $rdr); - is_deeply([grep(/\bdeleted\b/, @lsof)], [], 'no lingering deleted inputs'); + my $d = [ grep(/\(deleted\)/, @lsof) ]; + is_deeply($d, [], 'no lingering deleted inputs') or diag explain($d); # filter out pipes inherited from the parent my @this = xqx([$lsof, '-p', $$], undef, $rdr);