Files
flexnbd-c/tests/acceptance/fakes/dest/hang_after_connect.rb

36 lines
931 B
Ruby
Raw Normal View History

2012-06-22 10:05:41 +01:00
#!/usr/bin/env ruby
# Will open a server, accept a single connection, then sleep for 5
# seconds. After that time, the client should have disconnected,
# which we can can't effectively check.
#
# We also expect the client *not* to reconnect, since it could feed back
# an error.
#
2012-06-22 10:05:41 +01:00
# This allows the test runner to check that the command-line sees the
# right error message after the timeout time.
require 'flexnbd/fake_dest'
include FlexNBD
2012-06-22 10:05:41 +01:00
addr, port = *ARGV
2018-02-02 21:34:14 +00:00
server = FakeDest.new(addr, port)
client = server.accept("Client didn't make a connection")
2012-06-22 10:05:41 +01:00
# Sleep for one second past the timeout (a bit of slop in case ruby
# doesn't launch things quickly)
sleep(FlexNBD::MS_HELLO_TIME_SECS + 1)
client.close
# Invert the sense of the timeout exception, since we *don't* want a
# connection attempt
begin
2018-02-02 21:34:14 +00:00
server.accept('Expected timeout')
raise 'Unexpected reconnection'
rescue Timeout::Error
2018-02-02 21:34:14 +00:00
# expected
end
server.close