summaryrefslogtreecommitdiffhomepage
path: root/test/test_ruby_application.py
diff options
context:
space:
mode:
authorAndrei Belov <defan@nginx.com>2020-11-19 21:19:57 +0300
committerAndrei Belov <defan@nginx.com>2020-11-19 21:19:57 +0300
commit7f9079a3cd4cdb6ac3fea53f10bd34fe8b82fe9c (patch)
treec79dc48a3260156f3f824ecd299e5a4934d749c5 /test/test_ruby_application.py
parent646d047e5d12515ceac02279b373601ce0752982 (diff)
parent806a9b2515c60b12a68cd97af04f7fa5cb4dffed (diff)
downloadunit-7f9079a3cd4cdb6ac3fea53f10bd34fe8b82fe9c.tar.gz
unit-7f9079a3cd4cdb6ac3fea53f10bd34fe8b82fe9c.tar.bz2
Merged with the default branch.1.21.0-1
Diffstat (limited to 'test/test_ruby_application.py')
-rw-r--r--test/test_ruby_application.py54
1 files changed, 48 insertions, 6 deletions
diff --git a/test/test_ruby_application.py b/test/test_ruby_application.py
index f84935f8..e42fb97f 100644
--- a/test/test_ruby_application.py
+++ b/test/test_ruby_application.py
@@ -3,6 +3,7 @@ import re
import pytest
from conftest import skip_alert
+from conftest import unit_stop
from unit.applications.lang.ruby import TestApplicationRuby
@@ -175,7 +176,7 @@ class TestRubyApplication(TestApplicationRuby):
self.get()
- self.stop()
+ unit_stop()
assert (
self.wait_for_record(r'\[error\].+Error in application')
@@ -187,7 +188,7 @@ class TestRubyApplication(TestApplicationRuby):
self.get()
- self.stop()
+ unit_stop()
assert (
self.wait_for_record(r'\[error\].+1234567890') is not None
@@ -198,7 +199,7 @@ class TestRubyApplication(TestApplicationRuby):
self.get()
- self.stop()
+ unit_stop()
assert (
self.wait_for_record(r'\[error\].+Error in application')
@@ -215,7 +216,7 @@ class TestRubyApplication(TestApplicationRuby):
self.get()
- self.stop()
+ unit_stop()
assert (
self.wait_for_record(r'\[error\].+1234567890') is not None
@@ -228,7 +229,7 @@ class TestRubyApplication(TestApplicationRuby):
self.conf({"listeners": {}, "applications": {}})
- self.stop()
+ unit_stop()
assert (
self.wait_for_record(r'\[error\].+At exit called\.') is not None
@@ -289,7 +290,7 @@ class TestRubyApplication(TestApplicationRuby):
assert self.get()['status'] == 500, 'body each error status'
- self.stop()
+ unit_stop()
assert (
self.wait_for_record(r'\[error\].+Failed to run ruby script')
@@ -350,3 +351,44 @@ class TestRubyApplication(TestApplicationRuby):
assert len(headers['X-Release-Date']) > 0, 'RUBY_RELEASE_DATE'
assert len(headers['X-Revision']) > 0, 'RUBY_REVISION'
assert len(headers['X-Version']) > 0, 'RUBY_VERSION'
+
+ def test_ruby_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']['Rack-Multithread'] == 'true', 'multithread'
+
+ sock.close()
+
+ assert len(socks) == len(threads), 'threads differs'