def test_correct_connection(): def correct_connection(client): request = str(time.time()) + '\r\n' client.sock.connect((client.host, client.port)) client.sock.send(request) total_data = [] while True: data = client.sock.recv(64) total_data.append(data) if data.endswith('\r\n'): break response = ''.joint(total_data) client.sock.close() client.assertions.append(request == response) client.scheduler.stop() scheduler = Scheduler() port = _get_free_port() client = TClient(scheduler, '', port) client.add_test(correct_connection) scheduler.add(_line_reader_echo('', port)) scheduler.add(client.as_task()) scheduler.run() client.join() assert all(client.assertions)
def test_connection_remote_close(): port = _get_free_port() def connect_and_close_socket(client): client.sock.connect((client.host, client.port)) client.sock.close() client.scheduler.stop() scheduler = Scheduler() client = TClient(scheduler, '', port) client.add_test(connect_and_close_socket) scheduler.add(_line_reader_echo('', port)) scheduler.add(client.as_task()) scheduler.run() client.join() assert all(client.assertions)
def main(): parser = optparse.OptionParser('usage: %prog [-p <port>] [-h <host>]') parser.add_option('-p', '--port', type='int', default=8080, dest='port', help='server port') parser.add_option('--host', default='', dest='host', help='server host') (options, args) = parser.parse_args() scheduler = Scheduler() raw_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) scheduler.add(echo(raw_socket, options.host, options.port)) print('>> server running %s:%d' % (options.host or '0.0.0.0', options.port)) try: scheduler.run() except KeyboardInterrupt: scheduler.stop() finally: raw_socket.close()
def test_multiple_correct_connections(): port = _get_free_port() def correct_connection(client): request = str(time.time()) + '\r\n' client.sock.connect((client.host, client.port)) client.sock.send(request) total_data = [] while True: data = client.sock.recv(2048) total_data.append(data) if data.endswith('\r\n'): break response = ''.joint(total_data) client.sock.close() client.assertions.append(request == response) scheduler = Scheduler() scheduler.add(_line_reader_echo('', port)) clients = [] for c_id in range(3): client = TClient(scheduler, '', port) client.add_test(correct_connection) clients.append(client) scheduler.add(client.as_task()) def all_tasks_done(): yield [c.join() for c in clients] scheduler.add(all_tasks_done()) scheduler.run() assert all(client.assertions)
def main(): scheduler = Scheduler() scheduler.add(system_call_exception()) scheduler.run()
def main(): scheduler = Scheduler() scheduler.add(worker()) scheduler.run()