def setup
@server_open_call = 0
@server_close_call = 0
@document_open_call = 0
@document_close_call = 0
@server = Rucy::Server.new
@server.open_hook{ |s|
@server_open_call += 1
s.port = SERVER_PORT
s.mount(Rucy::PageDocument.new("<html>Hello world.</html>\n"), '/')
s.mount(self, '/test_document_open_close')
s.messenger_factory = Rucy::MultiProcessMessenger
s.timeout = 0.01
}
@server.close_hook{ |s|
@server_close_call += 1
}
@svr_pid = fork{
trap(:USR1) { @server.close }
begin
@server.accept
assert_equal(1, @server_open_call)
assert_equal(1, @server_close_call)
assert_equal(1, @document_open_call)
assert_equal(1, @document_close_call)
rescue
STDERR.puts "server error: #{$!}"
for frame in $!.backtrace
puts "server error: #{frame}"
end
end
exit!
}
sleep(0.1)
end