From ecc32885f097ece2c46187166c496e3dd2d70229 Mon Sep 17 00:00:00 2001 From: Makarand Dharmapurikar Date: Thu, 1 Dec 2016 15:22:50 -0800 Subject: WIP --- test/http2_test/http2_base_server.py | 11 ++++++----- test/http2_test/http2_test_server.py | 1 + test/http2_test/test_goaway.py | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'test/http2_test') diff --git a/test/http2_test/http2_base_server.py b/test/http2_test/http2_base_server.py index 44fb575c0f..cbc26b11b1 100644 --- a/test/http2_test/http2_base_server.py +++ b/test/http2_test/http2_base_server.py @@ -113,9 +113,6 @@ class H2ProtocolBaseServer(Protocol): return while self._send_remaining[stream_id] > 0: - if self._stream_status[stream_id] is False: - logging.info('Stream %d is closed.'%stream_id) - break lfcw = self._conn.local_flow_control_window(stream_id) if lfcw == 0: break @@ -125,7 +122,11 @@ class H2ProtocolBaseServer(Protocol): (lfcw, self._send_offset, self._send_offset + bytes_to_send, stream_id)) data = self._data_to_send[self._send_offset : self._send_offset + bytes_to_send] - self._conn.send_data(stream_id, data, False) + try: + self._conn.send_data(stream_id, data, False) + except ProtocolError: + logging.info('Stream %d is closed'%stream_id) + break self._send_remaining[stream_id] -= bytes_to_send self._send_offset += bytes_to_send if self._send_remaining[stream_id] == 0: @@ -163,7 +164,7 @@ class H2ProtocolBaseServer(Protocol): asked in request """ grpc_msg_size = struct.unpack('i',recv_buffer[1:5][::-1])[0] if len(recv_buffer) != GRPC_HEADER_SIZE + grpc_msg_size: - logging.error('not enough data to decode req proto. size = %d, needed %s'%(len(recv_buffer), 5+grpc_msg_size)) + #logging.error('not enough data to decode req proto. size = %d, needed %s'%(len(recv_buffer), 5+grpc_msg_size)) return None req_proto_str = recv_buffer[5:5+grpc_msg_size] sr = messages_pb2.SimpleRequest() diff --git a/test/http2_test/http2_test_server.py b/test/http2_test/http2_test_server.py index 7ec781d2aa..35308c4787 100644 --- a/test/http2_test/http2_test_server.py +++ b/test/http2_test/http2_test_server.py @@ -21,6 +21,7 @@ class H2Factory(Factory): def buildProtocol(self, addr): self._num_streams += 1 + logging.info('New Connection: %d'%self._num_streams) if self._testcase == 'rst_after_header': t = test_rst_after_header.TestcaseRstStreamAfterHeader() elif self._testcase == 'rst_after_data': diff --git a/test/http2_test/test_goaway.py b/test/http2_test/test_goaway.py index 7dd7cb7948..4c46cab8f9 100644 --- a/test/http2_test/test_goaway.py +++ b/test/http2_test/test_goaway.py @@ -1,4 +1,5 @@ import logging +import time import http2_base_server class TestcaseGoaway(object): @@ -23,11 +24,12 @@ class TestcaseGoaway(object): def on_connection_lost(self, reason): logging.info('Disconnect received. Count %d'%self._iteration) # _iteration == 2 => Two different connections have been used. - if self._iteration == 2: + if self._iteration == 200: self._base_server.on_connection_lost(reason) def on_send_done(self, stream_id): self._base_server.on_send_done_default(stream_id) + time.sleep(1) logging.info('Sending GOAWAY for stream %d:'%stream_id) self._base_server._conn.close_connection(error_code=0, additional_data=None, last_stream_id=stream_id) self._base_server._stream_status[stream_id] = False -- cgit v1.2.3