Tests: added Perl threading tests.

This commit is contained in:
Max Romanov
2020-11-05 16:11:01 +03:00
parent d321d454f9
commit fc9a012ceb
2 changed files with 52 additions and 0 deletions

11
test/perl/threads/psgi.pl Normal file
View File

@@ -0,0 +1,11 @@
my $app = sub {
my ($environ) = @_;
sleep int($environ->{'HTTP_X_DELAY'});
return ['200', [
'Content-Length' => 0,
'Psgi-Multithread' => $environ->{'psgi.multithread'},
'X-Thread' => $environ->{'psgi.input'}
], []];
};

View File

@@ -238,3 +238,44 @@ class TestPerlApplication(TestApplicationPerl):
assert resp['status'] == 200, 'status' assert resp['status'] == 200, 'status'
assert resp['body'] == 'Hello World!', 'body' assert resp['body'] == 'Hello World!', 'body'
def test_perl_application_threads(self):
self.load('threads')
assert 'success' in self.conf(
'4', 'applications/threads/threads'
), 'configure 4 threads'
socks = []
for i in range(4):
(_, sock) = self.get(
headers={
'Host': 'localhost',
'X-Delay': '2',
'Connection': 'close',
},
no_recv=True,
start=True,
)
socks.append(sock)
threads = set()
for sock in socks:
resp = self.recvall(sock).decode('utf-8')
self.log_in(resp)
resp = self._resp_to_dict(resp)
assert resp['status'] == 200, 'status'
threads.add(resp['headers']['X-Thread'])
assert resp['headers']['Psgi-Multithread'] == '1', 'multithread'
sock.close()
assert len(socks) == len(threads), 'threads differs'