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

33 lines
647 B
Ruby
Raw Normal View History

#!/usr/bin/env ruby
# Open a server, accept a client, then cancel the migration by issuing
# a break command.
require 'flexnbd/fake_dest'
include FlexNBD
addr, port, src_pid, sock = *ARGV
2018-02-02 21:34:14 +00:00
server = FakeDest.new(addr, port)
client = server.accept
2018-02-02 21:34:14 +00:00
ctrl = UNIXSocket.open(sock)
2018-02-02 21:34:14 +00:00
Process.kill('STOP', src_pid.to_i)
ctrl.write("break\n")
ctrl.close_write
client.write_hello
2018-02-02 21:34:14 +00:00
Process.kill('CONT', src_pid.to_i)
2018-02-02 21:34:14 +00:00
raise 'Unexpected control response' unless
ctrl.read =~ /0: mirror stopped/
client2 = nil
begin
2018-02-02 21:34:14 +00:00
client2 = server.accept('Expected timeout')
raise 'Unexpected reconnection'
rescue Timeout::Error
# expected
end
client.close
exit(0)