diff options
author | Michael Riss <Michael.Riss@gmx.de> | 2013-03-22 16:58:23 +0100 |
---|---|---|
committer | Michael Riss <Michael.Riss@gmx.de> | 2013-03-22 17:00:00 +0100 |
commit | 1fecc4b3072c6a0cfef5c629f50cbaa647ea98b1 (patch) | |
tree | b2f2344f46c7b19f45599cd48a2cec2b964b5dbe /tests/runner.py | |
parent | 4790550b897061a8d67368eeb497e671107174a5 (diff) |
- added test cases for select error reporting
- added missing error reporting for sockets in the write file descriptor set
Diffstat (limited to 'tests/runner.py')
-rwxr-xr-x | tests/runner.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/runner.py b/tests/runner.py index db33c817..3cf20bc8 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -11757,6 +11757,71 @@ elif 'browser' in str(sys.argv): finally: self.clean_pids() + def test_websockets_select_server_down(self): + def closedServer(q): + import socket + + q.put(None) # No sub-process to start + ssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + ssock.bind(("127.0.0.1", 8994)) + try: + with self.WebsockHarness(8994, closedServer): + self.btest('websockets_select.c', expected='266') + finally: + self.clean_pids() + + def test_websockets_select_server_closes_connection(self): + def closingServer(q): + import socket + + q.put(None) # No sub-process to start + ssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + ssock.bind(("127.0.0.1", 8994)) + ssock.listen(2) + while True: + csock, addr = ssock.accept() + print "Connection from %s" % repr(addr) + csock.send("1234567") + csock.close() + + try: + with self.WebsockHarness(8994, closingServer): + self.btest('websockets_select_server_closes_connection.c', expected='266') + finally: + self.clean_pids() + + def test_websockets_select_server_closes_connection_rw(self): + def closingServer_rw(q): + import socket + + q.put(None) # No sub-process to start + ssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + ssock.bind(("127.0.0.1", 8998)) + ssock.listen(2) + while True: + csock, addr = ssock.accept() + print "Connection from %s" % repr(addr) + readArray = bytearray(10) + #readBuffer = buffer(readArray) + bytesRead = 0 + # Let the client start to write data + while (bytesRead < 10): + (readBytes, address) = csock.recvfrom_into( readArray, 10 ) + bytesRead += readBytes + print "server: 10 bytes read" + # Now we write a message on our own ... + csock.send("0123456789") + print "server: 10 bytes written" + # And immediately close the connection + csock.close() + print "server: connection closed" + + try: + with self.WebsockHarness(8998, closingServer_rw): + self.btest('websockets_select_server_closes_connection_rw.c', expected='266') + finally: + self.clean_pids() + def test_enet(self): try_delete(self.in_dir('enet')) shutil.copytree(path_from_root('tests', 'enet'), self.in_dir('enet')) |