about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-07-05 23:27:28 +0000
committerEric Wong <e@yhbt.net>2020-07-06 20:01:15 +0000
commitf982abbaa39e07090d3fb641fd9de25434c0d74c (patch)
treee5c5d0a4cd6312045ea79dd8706ac390624ed734 /t
parent2bb3b3491416232a44ad8b318537c856cff727f4 (diff)
downloadpublic-inbox-f982abbaa39e07090d3fb641fd9de25434c0d74c.tar.gz
This will allow us to gzip responses generated by cgit
and any other CGI programs or long-lived streaming
responses we may spawn.
Diffstat (limited to 't')
-rw-r--r--t/httpd-corner.psgi7
-rw-r--r--t/httpd-corner.t9
2 files changed, 15 insertions, 1 deletions
diff --git a/t/httpd-corner.psgi b/t/httpd-corner.psgi
index 44629620..cb41cfa0 100644
--- a/t/httpd-corner.psgi
+++ b/t/httpd-corner.psgi
@@ -94,6 +94,13 @@ my $app = sub {
                 return $qsp->psgi_return($env, undef, sub {
                         [ 200, [ qw(Content-Type application/octet-stream)]]
                 });
+        } elsif ($path eq '/psgi-return-compressible') {
+                require PublicInbox::Qspawn;
+                my $cmd = [qw(echo goodbye world)];
+                my $qsp = PublicInbox::Qspawn->new($cmd);
+                return $qsp->psgi_return($env, undef, sub {
+                        [200, [qw(Content-Type text/plain)]]
+                });
         } elsif ($path eq '/psgi-return-enoent') {
                 require PublicInbox::Qspawn;
                 my $cmd = [ 'this-better-not-exist-in-PATH'.rand ];
diff --git a/t/httpd-corner.t b/t/httpd-corner.t
index 68148655..514672a1 100644
--- a/t/httpd-corner.t
+++ b/t/httpd-corner.t
@@ -340,11 +340,18 @@ SKIP: {
         is($n, 30 * 1024 * 1024, 'got expected output from curl');
         is($non_zero, 0, 'read all zeros');
 
-        require_mods(@zmods, 2);
+        require_mods(@zmods, 4);
         my $buf = xqx([$curl, '-sS', "$base/psgi-return-gzip"]);
         is($?, 0, 'curl succesful');
         IO::Uncompress::Gunzip::gunzip(\$buf => \(my $out));
         is($out, "hello world\n");
+        my $curl_rdr = { 2 => \(my $curl_err = '') };
+        $buf = xqx([$curl, qw(-sSv --compressed),
+                        "$base/psgi-return-compressible"], undef, $curl_rdr);
+        is($?, 0, 'curl --compressed successful');
+        is($buf, "goodbye world\n", 'gzipped response as expected');
+        like($curl_err, qr/\bContent-Encoding: gzip\b/,
+                'curl got gzipped response');
 }
 
 {