diff options
Diffstat (limited to 'test.py')
-rw-r--r-- | test.py | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/test.py b/test.py deleted file mode 100644 index 9f6421e..0000000 --- a/test.py +++ /dev/null @@ -1,66 +0,0 @@ -import ctypes -import socket -import threading -import time -import unittest - - -libpapo = ctypes.CDLL('./libpapo.so') -unittest.util._MAX_LENGTH=2000 - - -class PapoServerTest(unittest.TestCase): - - - @classmethod - def setUpClass(cls): - server = papo_server(); - thread = threading.Thread(target=cls.run_papo_server, args=(server,)) - thread.start() - time.sleep(2) - - - @classmethod - def tearDownClass(cls): - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.connect(('localhost', 6667)) - s.sendall(b'exit') - - - @classmethod - def run_papo_server(cls, server): - libpapo.server_init(ctypes.byref(server), 6667) - libpapo.server_run(ctypes.byref(server)) - - - def test_server_run(self): - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.connect(('localhost', 6667)) - s.sendall(b'USER username 0 * :User Name\r\n') - data = s.recv(1024) - self.assertIn(b'001 username :Welcome!\r\n', data) - - -class epoll_data(ctypes.Union): - _fields_ = [('ptr', ctypes.c_void_p), - ('fd', ctypes.c_int), - ('u32', ctypes.c_uint), - ('u64', ctypes.c_ulong)] - - -class epoll_event(ctypes.Structure): - _fields_ = [('events', ctypes.c_uint), - ('epoll_data_t', epoll_data)] - - -class papo_server(ctypes.Structure): - _MAXEVENTS=64 - _fields_ = [('fd', ctypes.c_int), - ('epoll_fd', ctypes.c_int), - ('events', epoll_event * _MAXEVENTS), - ('connected_clients', ctypes.c_int * _MAXEVENTS), - ('running', ctypes.c_bool)] - - -if __name__ == '__main__': - unittest.main() |