def setUp(self): self.path = "test" self.ssock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self.ssock.bind(self.path) self.ssock.listen(5) self.factory = MockFactory() self.factory.protocol = MockProtocol self.client = UnixClient(loop, self.factory, self.path) self._connected = False
def main(): path = 'adder_socket' loop = pyev.default_loop() sigwatcher = pyev.Signal( signal.SIGINT, loop, lambda watcher, events: watcher.loop.unloop(pyev.EVUNLOOP_ALL)) sigwatcher.start() p = Process(loop, server_main, loop, 'adder_socket') p.start() pickle_factory = PickleProtocolFactory() pickle_client = UnixClient(loop, pickle_factory, path) retries = 10 while retries: try: pickle_client.connect().result() retries = 0 except Exception as e: time.sleep(0.1) retries -= 1 proxy = pickle_factory.proxy(0).result() start = time.time() s = 0 for i in range(10000): s = proxy.call('add', 1, s) stop = time.time() logger.info( 'pickle-rpc took {} seconds to perform {} calls, {} calls per second', stop - start, s, s / (stop - start)) start = time.time() for i in range(10000): proxy.notify('add', 1, s) proxy.call('add', 1, s) stop = time.time() logger.info( 'pickle-rpc took {} seconds to perform {} notifications, {} notifies per second', stop - start, 10000, 10000 / (stop - start)) msgpack_factory = MsgPackProtocolFactory() msgpack_client = UnixClient(loop, msgpack_factory, path + '_mp') retries = 10 while retries: try: msgpack_client.connect().result() retries = 0 except Exception as e: time.sleep(0.1) retries -= 1 proxy = msgpack_factory.proxy(0).result() start = time.time() s = 0 for i in range(10000): s = proxy.call('add', 1, s) stop = time.time() logger.info( 'msgpack-rpc took {} seconds to perform {} calls, {} calls per second', stop - start, s, s / (stop - start)) start = time.time() for i in range(10000): proxy.notify('add', 1, s) proxy.call('add', 1, s) stop = time.time() logger.info( 'msgpack-rpc took {} seconds to perform {} notifications, {} notifies per second', stop - start, 10000, 10000 / (stop - start)) p.stop()
def connect(self): self.factory = MsgPackProtocolFactory() self.client = UnixClient(self.loop, self.factory, self.path) d = self.client.connect() d.add_callback(self.connected) return d
def test_unix_client(self): factory = ProtocolFactory() factory.protocol = Protocol client = UnixClient(loop, MockFactory(), "bogus")