]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/httpd-corner.t
www: drop --subject from "git send-email" instructions
[public-inbox.git] / t / httpd-corner.t
index 794d8aebe7ca0414a22492bb747778784e839723..0a613a9e095565a5b4fa75fda023436532e200b6 100644 (file)
@@ -2,12 +2,9 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 # 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);