From 42b5d260e490895a1c96731ee7dbc92326543cec Mon Sep 17 00:00:00 2001
From: Lars Kanis <kanis@comcard.de>
Date: Thu, 25 Jun 2015 15:14:58 +0200
Subject: [PATCH] Add a test case for FXApp#addInput for socket accept()
---
test/TC_FXApp.rb | 32 +++++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/test/TC_FXApp.rb b/test/TC_FXApp.rb
index 7501017..1ebef42 100755
--- a/test/TC_FXApp.rb
+++ b/test/TC_FXApp.rb
@@ -33,14 +33,16 @@ class TC_FXApp2 < Fox::TestCase
app.removeInput(pipe_wr, INPUT_WRITE)
app.addInput(pipe_rd, INPUT_READ, app, FXApp::ID_QUIT)
- data_sent = false
- app.addTimeout(1) do
- data_sent = true
- pipe_wr.write " "
+ 2.times do
+ data_sent = false
+ app.addTimeout(1) do
+ data_sent = true
+ pipe_wr.write " "
+ end
+ app.run
+ assert data_sent, "the read input event shouldn't fire before some data is available"
+ assert " ", pipe_rd.read(1)
end
- app.run
- assert data_sent, "the read input event shouldn't fire before some data is available"
-
app.removeInput(pipe_rd, INPUT_READ)
pipe_wr.close
pipe_rd.close unless pipe_rd.closed?
@@ -50,6 +52,22 @@ class TC_FXApp2 < Fox::TestCase
check_events *IO.pipe
end
+ def test_addInput_on_socket_accept
+ s = TCPServer.open 'localhost', 0
+ app.addInput(s, INPUT_READ, app, FXApp::ID_QUIT)
+ 2.times do
+ pipe_wr = nil
+ app.addTimeout(1) do
+ pipe_wr = TCPSocket.open 'localhost', s.addr[1]
+ end
+ app.run
+ assert pipe_wr, "the read input event shouldn't fire before client connection happens"
+ s.accept.close
+ end
+ app.removeInput(s, INPUT_READ)
+ s.close
+ end
+
def test_addInput_on_socket
s = TCPServer.open 'localhost', 0
pipe_wr = TCPSocket.open 'localhost', s.addr[1]
--
GitLab