test_asgi_application.py (1654:fc7d0578e124) test_asgi_application.py (1683:43cbc14c7be9)
1import re
2import time
3from distutils.version import LooseVersion
4
5import pytest
6
7from conftest import option
8from conftest import skip_alert

--- 387 unchanged lines hidden (view full) ---

396 self.load('threading')
397
398 for _ in range(10):
399 self.get(no_recv=True)
400
401 assert (
402 self.wait_for_record(r'\(5\) Thread: 100') is not None
403 ), 'last thread finished'
1import re
2import time
3from distutils.version import LooseVersion
4
5import pytest
6
7from conftest import option
8from conftest import skip_alert

--- 387 unchanged lines hidden (view full) ---

396 self.load('threading')
397
398 for _ in range(10):
399 self.get(no_recv=True)
400
401 assert (
402 self.wait_for_record(r'\(5\) Thread: 100') is not None
403 ), 'last thread finished'
404
405 def test_asgi_application_threads(self):
406 self.load('threads')
407
408 assert 'success' in self.conf(
409 '4', 'applications/threads/threads'
410 ), 'configure 4 threads'
411
412 socks = []
413
414 for i in range(4):
415 (_, sock) = self.get(
416 headers={
417 'Host': 'localhost',
418 'X-Delay': '2',
419 'Connection': 'close',
420 },
421 no_recv=True,
422 start=True,
423 )
424
425 socks.append(sock)
426
427 time.sleep(0.25) # required to avoid greedy request reading
428
429 threads = set()
430
431 for sock in socks:
432 resp = self.recvall(sock).decode('utf-8')
433
434 self.log_in(resp)
435
436 resp = self._resp_to_dict(resp)
437
438 assert resp['status'] == 200, 'status'
439
440 threads.add(resp['headers']['x-thread'])
441
442 sock.close()
443
444 assert len(socks) == len(threads), 'threads differs'