Refactor interop result D in quic_client_interop_test
gfe-relnote: n/a, test-only
PiperOrigin-RevId: 274663867
Change-Id: I37652d884bfbb5b8df386a271077cf37de412705
diff --git a/quic/tools/quic_client_interop_test_bin.cc b/quic/tools/quic_client_interop_test_bin.cc
index 3bbb5c5..20a4699 100644
--- a/quic/tools/quic_client_interop_test_bin.cc
+++ b/quic/tools/quic_client_interop_test_bin.cc
@@ -7,9 +7,11 @@
#include <string>
#include <utility>
+#include "net/third_party/quiche/src/quic/core/quic_types.h"
#include "net/third_party/quiche/src/quic/core/quic_versions.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_epoll.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_system_event_loop.h"
+#include "net/third_party/quiche/src/quic/test_tools/quic_connection_peer.h"
#include "net/third_party/quiche/src/quic/tools/fake_proof_verifier.h"
#include "net/third_party/quiche/src/quic/tools/quic_client.h"
#include "net/third_party/quiche/src/quic/tools/quic_url.h"
@@ -98,10 +100,21 @@
while (client->WaitForEvents()) {
}
- QuicConnectionStats client_stats =
- client->session()->connection()->GetStats();
- if (client_stats.retry_packet_processed) {
- features.insert(Feature::kRetry);
+ QuicConnection* connection = client->session()->connection();
+ if (connection != nullptr) {
+ QuicConnectionStats client_stats = connection->GetStats();
+ if (client_stats.retry_packet_processed) {
+ features.insert(Feature::kRetry);
+ }
+ QuicSentPacketManager* sent_packet_manager =
+ test::QuicConnectionPeer::GetSentPacketManager(connection);
+ const bool received_forward_secure_ack =
+ sent_packet_manager != nullptr &&
+ sent_packet_manager->GetLargestAckedPacket(ENCRYPTION_FORWARD_SECURE)
+ .IsInitialized();
+ if (client_stats.stream_bytes_received > 0 && received_forward_secure_ack) {
+ features.insert(Feature::kStreamData);
+ }
}
if (!client->connected()) {
@@ -112,9 +125,6 @@
features.insert(Feature::kHttp3);
}
- // TODO(nharper): Properly check that we actually sent stream data and
- // received ACKs for it.
- features.insert(Feature::kStreamData);
// TODO(nharper): Check that we sent/received (which one?) a CONNECTION_CLOSE
// with error code 0.
features.insert(Feature::kConnectionClose);
@@ -180,7 +190,7 @@
}
auto supported_features = quic::ServerSupport(host, port);
- std::cout << "Supported features: ";
+ std::cout << host << ":" << port << " = ";
for (auto feature : supported_features) {
std::cout << MatrixLetter(feature);
}