diff options
author | Max Romanov <max.romanov@nginx.com> | 2020-11-05 12:45:26 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2020-11-05 12:45:26 +0300 |
commit | e17e73eddab015b8942d2228780bbd9afcc5e392 (patch) | |
tree | 40968ecf94384e31837a720549955ad5ecdcaa3b /test | |
parent | b6475df79cd14d80c794abfc9d1edbcebbe86f2c (diff) | |
download | unit-e17e73eddab015b8942d2228780bbd9afcc5e392.tar.gz unit-e17e73eddab015b8942d2228780bbd9afcc5e392.tar.bz2 |
Tests: added Ruby threading tests.
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/threads/config.ru | 13 | ||||
-rw-r--r-- | test/test_ruby_application.py | 41 |
2 files changed, 54 insertions, 0 deletions
diff --git a/test/ruby/threads/config.ru b/test/ruby/threads/config.ru new file mode 100644 index 00000000..2a234d0d --- /dev/null +++ b/test/ruby/threads/config.ru @@ -0,0 +1,13 @@ +app = Proc.new do |env| + delay = env['HTTP_X_DELAY'].to_f + + sleep(delay) + + ['200', { + 'Content-Length' => 0.to_s, + 'Rack-Multithread' => env['rack.multithread'].to_s, + 'X-Thread' => Thread.current.object_id.to_s + }, []] +end + +run app diff --git a/test/test_ruby_application.py b/test/test_ruby_application.py index b765f390..e42fb97f 100644 --- a/test/test_ruby_application.py +++ b/test/test_ruby_application.py @@ -351,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' |