Skip to content

Commit 8fc51de

Browse files
committed
[skip ci] clarify what these tests are attempting
1 parent 45059b6 commit 8fc51de

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

test/client_test.rb

+14-8
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,14 @@ class ClientTest < TinyTds::TestCase
135135
it 'raises TinyTds exception with tcp socket network failure' do
136136
skip if ENV['CI'] && ENV['APPVEYOR_BUILD_FOLDER'] # only CI using docker
137137
begin
138-
client = new_connection timeout: 1, port: 1234
138+
client = new_connection timeout: 2, port: 1234
139139
assert_client_works(client)
140-
action = lambda { client.execute("waitfor delay '00:00:02'").do }
141-
# Delay the TCP socket from closing until delay has elapsed.
142-
Toxiproxy[:sqlserver_test].toxic(:slow_close, delay: 500).apply do
140+
action = lambda { client.execute("waitfor delay '00:00:05'").do }
141+
142+
# Use toxiproxy to close the TCP socket after 1 second.
143+
# TinyTds shuuld be able to execute the statement, hit the timeout configured above, and then not be able to use the network to cancel
144+
# the network connection needs to close after the sql batch is sent and before the timeout above is hit
145+
Toxiproxy[:sqlserver_test].toxic(:slow_close, delay: 1000).apply do
143146
assert_raise_tinytds_error(action) do |e|
144147
assert_equal 20003, e.db_error_number
145148
assert_equal 6, e.severity
@@ -154,11 +157,14 @@ class ClientTest < TinyTds::TestCase
154157
it 'raises TinyTds exception with dead connection network failure' do
155158
skip if ENV['CI'] && ENV['APPVEYOR_BUILD_FOLDER'] # only CI using docker
156159
begin
157-
client = new_connection timeout: 1, port: 1234
160+
client = new_connection timeout: 2, port: 1234
158161
assert_client_works(client)
159-
action = lambda { client.execute("waitfor delay '00:00:02'").do }
160-
# Stops all data from getting through, and closes the connection after timeout
161-
Toxiproxy[:sqlserver_test].toxic(:timeout, timeout: 500).apply do
162+
action = lambda { client.execute("waitfor delay '00:00:05'").do }
163+
164+
# Use toxiproxy to close the network connection after 1 second.
165+
# We want TinyTds to execute the statement, hit the timeout configured above, and then not be able to use the network to cancel
166+
# the network connection needs to close after the sql batch is sent and before the timeout above is hit
167+
Toxiproxy[:sqlserver_test].toxic(:timeout, timeout: 1000).apply do
162168
assert_raise_tinytds_error(action) do |e|
163169
assert_equal 20047, e.db_error_number
164170
assert_includes [1,9], e.severity

0 commit comments

Comments
 (0)