diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/perl/variables/psgi.pl | 11 | ||||
-rw-r--r-- | test/test_perl_application.py | 28 |
2 files changed, 37 insertions, 2 deletions
diff --git a/test/perl/variables/psgi.pl b/test/perl/variables/psgi.pl index c0a61b67..bed20af8 100644 --- a/test/perl/variables/psgi.pl +++ b/test/perl/variables/psgi.pl @@ -4,6 +4,8 @@ my $app = sub { my $len = int($environ->{'CONTENT_LENGTH'}); $environ->{'psgi.input'}->read(my $body, $len); + my $version = join('', @{$environ->{'psgi.version'}}); + return ['200', [ 'Content-Type' => $environ->{'CONTENT_TYPE'}, 'Content-Length' => $len, @@ -11,6 +13,13 @@ my $app = sub { 'Request-Uri' => $environ->{'REQUEST_URI'}, 'Http-Host' => $environ->{'HTTP_HOST'}, 'Server-Protocol' => $environ->{'SERVER_PROTOCOL'}, - 'Custom-Header' => $environ->{'HTTP_CUSTOM_HEADER'} + 'Custom-Header' => $environ->{'HTTP_CUSTOM_HEADER'}, + 'Psgi-Version' => $version, + 'Psgi-Url-Scheme' => $environ->{'psgi.url_scheme'}, + 'Psgi-Multithread' => $environ->{'psgi.multithread'}, + 'Psgi-Multiprocess' => $environ->{'psgi.multiprocess'}, + 'Psgi-Run-Once' => $environ->{'psgi.run_once'}, + 'Psgi-Nonblocking' => $environ->{'psgi.nonblocking'}, + 'Psgi-Streaming' => $environ->{'psgi.streaming'} ], [$body]]; }; diff --git a/test/test_perl_application.py b/test/test_perl_application.py index bfc82f99..45f8ab33 100644 --- a/test/test_perl_application.py +++ b/test/test_perl_application.py @@ -33,7 +33,14 @@ class TestUnitPerlApplication(unit.TestUnitApplicationPerl): 'Request-Uri': '/', 'Http-Host': 'localhost', 'Server-Protocol': 'HTTP/1.1', - 'Custom-Header': 'blah' + 'Custom-Header': 'blah', + 'Psgi-Version': '11', + 'Psgi-Url-Scheme': 'http', + 'Psgi-Multithread': '', + 'Psgi-Multiprocess': '1', + 'Psgi-Run-Once': '', + 'Psgi-Nonblocking': '', + 'Psgi-Streaming': '' }, 'headers') self.assertEqual(resp['body'], body, 'body') @@ -126,5 +133,24 @@ class TestUnitPerlApplication(unit.TestUnitApplicationPerl): self.assertEqual(self.get()['body'], 'body\n', 'body io file') + def test_perl_keepalive_body(self): + self.load('variables') + + (resp, sock) = self.post(headers={ + 'Connection': 'keep-alive', + 'Content-Type': 'text/html', + 'Host': 'localhost' + }, start=True, body='0123456789' * 500) + + self.assertEqual(resp['body'], '0123456789' * 500, 'keep-alive 1') + + resp = self.post(headers={ + 'Connection': 'close', + 'Content-Type': 'text/html', + 'Host': 'localhost' + }, sock=sock, body='0123456789') + + self.assertEqual(resp['body'], '0123456789', 'keep-alive 2') + if __name__ == '__main__': unittest.main() |