Tests: added Ruby threading tests.
This commit is contained in:
13
test/ruby/threads/config.ru
Normal file
13
test/ruby/threads/config.ru
Normal file
@@ -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
|
||||||
@@ -351,3 +351,44 @@ class TestRubyApplication(TestApplicationRuby):
|
|||||||
assert len(headers['X-Release-Date']) > 0, 'RUBY_RELEASE_DATE'
|
assert len(headers['X-Release-Date']) > 0, 'RUBY_RELEASE_DATE'
|
||||||
assert len(headers['X-Revision']) > 0, 'RUBY_REVISION'
|
assert len(headers['X-Revision']) > 0, 'RUBY_REVISION'
|
||||||
assert len(headers['X-Version']) > 0, 'RUBY_VERSION'
|
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'
|
||||||
|
|||||||
Reference in New Issue
Block a user