TEST_P(ProtocolIntegrationTest, HeaderAndBodyWireBytesCountReuseDownstream) {
  // We only care about the downstream protocol.
  if (upstreamProtocol() != Http::CodecType::HTTP2) {
    return;
  }

  useAccessLog("%DOWNSTREAM_WIRE_BYTES_SENT% %DOWNSTREAM_WIRE_BYTES_RECEIVED% "
               "%DOWNSTREAM_HEADER_BYTES_SENT% %DOWNSTREAM_HEADER_BYTES_RECEIVED%");

  initialize();
  codec_client_ = makeHttpConnection(makeClientConnection(lookupPort("http")));
  const int request_size = 100;
  const int response_size = 100;

  // Send first request on the connection
  auto response_one = sendRequestAndWaitForResponse(default_request_headers_, request_size,
                                                    default_response_headers_, response_size, 0);
  checkSimpleRequestSuccess(request_size, response_size, response_one.get());
  expectDownstreamBytesSentAndReceived(BytesCountExpectation(244, 182, 114, 38),
                                       BytesCountExpectation(177, 137, 68, 28),
                                       BytesCountExpectation(111, 137, 8, 6), 0);

  // Reuse connection, send the second request on the connection.
  auto response_two = sendRequestAndWaitForResponse(default_request_headers_, request_size,
                                                    default_response_headers_, response_size, 0);
  checkSimpleRequestSuccess(request_size, response_size, response_two.get());
  expectDownstreamBytesSentAndReceived(BytesCountExpectation(244, 182, 114, 38),
                                       BytesCountExpectation(148, 137, 15, 27),
                                       BytesCountExpectation(111, 137, 8, 6), 1);
}
TEST_P(ProtocolIntegrationTest, HeaderAndBodyWireBytesCountReuseDownstream) {
   
  if (upstreamProtocol() != Http::CodecType::HTTP2) {
    return;
  }

  useAccessLog("%DOWNSTREAM_WIRE_BYTES_SENT% %DOWNSTREAM_WIRE_BYTES_RECEIVED% "
               "%DOWNSTREAM_HEADER_BYTES_SENT% %DOWNSTREAM_HEADER_BYTES_RECEIVED%");

  initialize();
  codec_client_ = makeHttpConnection(makeClientConnection(lookupPort("http")));
  const int request_size = 100;
  const int response_size = 100;

   
  auto response_one = sendRequestAndWaitForResponse(default_request_headers_, request_size,
                                                    default_response_headers_, response_size, 0);
  checkSimpleRequestSuccess(request_size, response_size, response_one.get());
  expectDownstreamBytesSentAndReceived(BytesCountExpectation(244, 182, 114, 38),
                                       BytesCountExpectation(177, 137, 68, 28),
                                       BytesCountExpectation(111, 137, 8, 6), 0);

   
  auto response_two = sendRequestAndWaitForResponse(default_request_headers_, request_size,
                                                    default_response_headers_, response_size, 0);
  checkSimpleRequestSuccess(request_size, response_size, response_two.get());
  expectDownstreamBytesSentAndReceived(BytesCountExpectation(244, 182, 114, 38),
                                       BytesCountExpectation(148, 137, 15, 27),
                                       BytesCountExpectation(111, 137, 8, 6), 1);
}