Test that timing out a write causes a disconnect and a reconnect

This commit is contained in:
Alex Young
2012-06-28 14:45:53 +01:00
parent 4de4cee3d0
commit 9850f5d0a4
7 changed files with 83 additions and 9 deletions

View File

@@ -0,0 +1,27 @@
#!/usr/bin/env ruby
# encoding: utf-8
# Open a socket, say hello, receive a write, then sleep for > 6
# seconds. This should tell the source that the write has gone MIA,
# and we expect a reconnect.
require 'flexnbd/fake_dest'
include FlexNBD::FakeDest
sock = serve( *ARGV )
client_sock1 = accept( sock )
write_hello( client_sock1 )
read_request( client_sock1 )
t = Thread.start do
client_sock2 = accept( sock, "Timed out waiting for a reconnection",
FlexNBD::MS_REQUEST_LIMIT_SECS + 1 )
client_sock2.close
end
sleep( FlexNBD::MS_REQUEST_LIMIT_SECS + 2 )
client_sock1.close
t.join
exit(0)