Enable -Wexit-time-destructors in QUIC
gfe-relnote: n/a, test-only
PiperOrigin-RevId: 276295537
Change-Id: I88c7f703dab4863b9a6499f4bc1fecd935cdef12
diff --git a/quic/core/crypto/transport_parameters_test.cc b/quic/core/crypto/transport_parameters_test.cc
index 90afe22..61a6e0d 100644
--- a/quic/core/crypto/transport_parameters_test.cc
+++ b/quic/core/crypto/transport_parameters_test.cc
@@ -24,14 +24,10 @@
const ParsedQuicVersion kVersion(PROTOCOL_TLS1_3, QUIC_VERSION_99);
const QuicVersionLabel kFakeVersionLabel = 0x01234567;
const QuicVersionLabel kFakeVersionLabel2 = 0x89ABCDEF;
-const QuicConnectionId kFakeOriginalConnectionId = TestConnectionId(0x1337);
const uint64_t kFakeIdleTimeoutMilliseconds = 12012;
const uint8_t kFakeStatelessResetTokenData[16] = {
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F};
-const std::vector<uint8_t> kFakeStatelessResetToken(
- kFakeStatelessResetTokenData,
- kFakeStatelessResetTokenData + sizeof(kFakeStatelessResetTokenData));
const uint64_t kFakeMaxPacketSize = 9001;
const uint64_t kFakeInitialMaxData = 101;
const uint64_t kFakeInitialMaxStreamDataBidiLocal = 2001;
@@ -43,14 +39,10 @@
const uint64_t kFakeMaxAckDelay = 51;
const bool kFakeDisableMigration = true;
const uint64_t kFakeActiveConnectionIdLimit = 52;
-const QuicConnectionId kFakePreferredConnectionId = TestConnectionId(0xBEEF);
const uint8_t kFakePreferredStatelessResetTokenData[16] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F};
-const std::vector<uint8_t> kFakePreferredStatelessResetToken(
- kFakePreferredStatelessResetTokenData,
- kFakePreferredStatelessResetTokenData +
- sizeof(kFakeStatelessResetTokenData));
+
const auto kCustomParameter1 =
static_cast<TransportParameters::TransportParameterId>(0xffcd);
const char* kCustomParameter1Value = "foo";
@@ -58,6 +50,27 @@
static_cast<TransportParameters::TransportParameterId>(0xff34);
const char* kCustomParameter2Value = "bar";
+QuicConnectionId CreateFakeOriginalConnectionId() {
+ return TestConnectionId(0x1337);
+}
+
+QuicConnectionId CreateFakePreferredConnectionId() {
+ return TestConnectionId(0xBEEF);
+}
+
+std::vector<uint8_t> CreateFakeStatelessResetToken() {
+ return std::vector<uint8_t>(
+ kFakeStatelessResetTokenData,
+ kFakeStatelessResetTokenData + sizeof(kFakeStatelessResetTokenData));
+}
+
+std::vector<uint8_t> CreateFakePreferredStatelessResetToken() {
+ return std::vector<uint8_t>(
+ kFakePreferredStatelessResetTokenData,
+ kFakePreferredStatelessResetTokenData +
+ sizeof(kFakePreferredStatelessResetTokenData));
+}
+
QuicSocketAddress CreateFakeV4SocketAddress() {
QuicIpAddress ipv4_address;
if (!ipv4_address.FromString("65.66.67.68")) { // 0x41, 0x42, 0x43, 0x44
@@ -81,8 +94,9 @@
TransportParameters::PreferredAddress preferred_address;
preferred_address.ipv4_socket_address = CreateFakeV4SocketAddress();
preferred_address.ipv6_socket_address = CreateFakeV6SocketAddress();
- preferred_address.connection_id = kFakePreferredConnectionId;
- preferred_address.stateless_reset_token = kFakePreferredStatelessResetToken;
+ preferred_address.connection_id = CreateFakePreferredConnectionId();
+ preferred_address.stateless_reset_token =
+ CreateFakePreferredStatelessResetToken();
return std::make_unique<TransportParameters::PreferredAddress>(
preferred_address);
}
@@ -158,9 +172,9 @@
orig_params.version = kFakeVersionLabel;
orig_params.supported_versions.push_back(kFakeVersionLabel);
orig_params.supported_versions.push_back(kFakeVersionLabel2);
- orig_params.original_connection_id = kFakeOriginalConnectionId;
+ orig_params.original_connection_id = CreateFakeOriginalConnectionId();
orig_params.idle_timeout_milliseconds.set_value(kFakeIdleTimeoutMilliseconds);
- orig_params.stateless_reset_token = kFakeStatelessResetToken;
+ orig_params.stateless_reset_token = CreateFakeStatelessResetToken();
orig_params.max_packet_size.set_value(kFakeMaxPacketSize);
orig_params.initial_max_data.set_value(kFakeInitialMaxData);
orig_params.initial_max_stream_data_bidi_local.set_value(
@@ -191,10 +205,11 @@
EXPECT_EQ(2u, new_params.supported_versions.size());
EXPECT_EQ(kFakeVersionLabel, new_params.supported_versions[0]);
EXPECT_EQ(kFakeVersionLabel2, new_params.supported_versions[1]);
- EXPECT_EQ(kFakeOriginalConnectionId, new_params.original_connection_id);
+ EXPECT_EQ(CreateFakeOriginalConnectionId(),
+ new_params.original_connection_id);
EXPECT_EQ(kFakeIdleTimeoutMilliseconds,
new_params.idle_timeout_milliseconds.value());
- EXPECT_EQ(kFakeStatelessResetToken, new_params.stateless_reset_token);
+ EXPECT_EQ(CreateFakeStatelessResetToken(), new_params.stateless_reset_token);
EXPECT_EQ(kFakeMaxPacketSize, new_params.max_packet_size.value());
EXPECT_EQ(kFakeInitialMaxData, new_params.initial_max_data.value());
EXPECT_EQ(kFakeInitialMaxStreamDataBidiLocal,
@@ -215,9 +230,9 @@
new_params.preferred_address->ipv4_socket_address);
EXPECT_EQ(CreateFakeV6SocketAddress(),
new_params.preferred_address->ipv6_socket_address);
- EXPECT_EQ(kFakePreferredConnectionId,
+ EXPECT_EQ(CreateFakePreferredConnectionId(),
new_params.preferred_address->connection_id);
- EXPECT_EQ(kFakePreferredStatelessResetToken,
+ EXPECT_EQ(CreateFakePreferredStatelessResetToken(),
new_params.preferred_address->stateless_reset_token);
EXPECT_EQ(kFakeActiveConnectionIdLimit,
new_params.active_connection_id_limit.value());
@@ -272,7 +287,7 @@
orig_params.perspective = Perspective::IS_CLIENT;
orig_params.version = kFakeVersionLabel;
orig_params.idle_timeout_milliseconds.set_value(kFakeIdleTimeoutMilliseconds);
- orig_params.stateless_reset_token = kFakeStatelessResetToken;
+ orig_params.stateless_reset_token = CreateFakeStatelessResetToken();
orig_params.max_packet_size.set_value(kFakeMaxPacketSize);
std::vector<uint8_t> out;
@@ -543,10 +558,11 @@
EXPECT_EQ(2u, new_params.supported_versions.size());
EXPECT_EQ(kFakeVersionLabel, new_params.supported_versions[0]);
EXPECT_EQ(kFakeVersionLabel2, new_params.supported_versions[1]);
- EXPECT_EQ(kFakeOriginalConnectionId, new_params.original_connection_id);
+ EXPECT_EQ(CreateFakeOriginalConnectionId(),
+ new_params.original_connection_id);
EXPECT_EQ(kFakeIdleTimeoutMilliseconds,
new_params.idle_timeout_milliseconds.value());
- EXPECT_EQ(kFakeStatelessResetToken, new_params.stateless_reset_token);
+ EXPECT_EQ(CreateFakeStatelessResetToken(), new_params.stateless_reset_token);
EXPECT_EQ(kFakeMaxPacketSize, new_params.max_packet_size.value());
EXPECT_EQ(kFakeInitialMaxData, new_params.initial_max_data.value());
EXPECT_EQ(kFakeInitialMaxStreamDataBidiLocal,
@@ -567,9 +583,9 @@
new_params.preferred_address->ipv4_socket_address);
EXPECT_EQ(CreateFakeV6SocketAddress(),
new_params.preferred_address->ipv6_socket_address);
- EXPECT_EQ(kFakePreferredConnectionId,
+ EXPECT_EQ(CreateFakePreferredConnectionId(),
new_params.preferred_address->connection_id);
- EXPECT_EQ(kFakePreferredStatelessResetToken,
+ EXPECT_EQ(CreateFakePreferredStatelessResetToken(),
new_params.preferred_address->stateless_reset_token);
EXPECT_EQ(kFakeActiveConnectionIdLimit,
new_params.active_connection_id_limit.value());
diff --git a/quic/core/http/quic_spdy_stream_body_manager_test.cc b/quic/core/http/quic_spdy_stream_body_manager_test.cc
index 3a5b720..10b19f1 100644
--- a/quic/core/http/quic_spdy_stream_body_manager_test.cc
+++ b/quic/core/http/quic_spdy_stream_body_manager_test.cc
@@ -50,29 +50,29 @@
EXPECT_EQ(0u, bytes_to_consume);
}
-struct {
- std::vector<QuicByteCount> frame_header_lengths;
- std::vector<const char*> frame_payloads;
- std::vector<QuicByteCount> body_bytes_to_read;
- std::vector<QuicByteCount> expected_return_values;
-} const kOnBodyConsumedTestData[] = {
- // One frame consumed in one call.
- {{2}, {"foobar"}, {6}, {6}},
- // Two frames consumed in one call.
- {{3, 5}, {"foobar", "baz"}, {9}, {14}},
- // One frame consumed in two calls.
- {{2}, {"foobar"}, {4, 2}, {4, 2}},
- // Two frames consumed in two calls matching frame boundaries.
- {{3, 5}, {"foobar", "baz"}, {6, 3}, {11, 3}},
- // Two frames consumed in two calls,
- // the first call only consuming part of the first frame.
- {{3, 5}, {"foobar", "baz"}, {5, 4}, {5, 9}},
- // Two frames consumed in two calls,
- // the first call consuming the entire first frame and part of the second.
- {{3, 5}, {"foobar", "baz"}, {7, 2}, {12, 2}},
-};
-
TEST_F(QuicSpdyStreamBodyManagerTest, OnBodyConsumed) {
+ struct {
+ std::vector<QuicByteCount> frame_header_lengths;
+ std::vector<const char*> frame_payloads;
+ std::vector<QuicByteCount> body_bytes_to_read;
+ std::vector<QuicByteCount> expected_return_values;
+ } const kOnBodyConsumedTestData[] = {
+ // One frame consumed in one call.
+ {{2}, {"foobar"}, {6}, {6}},
+ // Two frames consumed in one call.
+ {{3, 5}, {"foobar", "baz"}, {9}, {14}},
+ // One frame consumed in two calls.
+ {{2}, {"foobar"}, {4, 2}, {4, 2}},
+ // Two frames consumed in two calls matching frame boundaries.
+ {{3, 5}, {"foobar", "baz"}, {6, 3}, {11, 3}},
+ // Two frames consumed in two calls,
+ // the first call only consuming part of the first frame.
+ {{3, 5}, {"foobar", "baz"}, {5, 4}, {5, 9}},
+ // Two frames consumed in two calls,
+ // the first call consuming the entire first frame and part of the second.
+ {{3, 5}, {"foobar", "baz"}, {7, 2}, {12, 2}},
+ };
+
for (size_t test_case_index = 0;
test_case_index < QUIC_ARRAYSIZE(kOnBodyConsumedTestData);
++test_case_index) {
@@ -105,26 +105,26 @@
}
}
-struct {
- std::vector<QuicByteCount> frame_header_lengths;
- std::vector<const char*> frame_payloads;
- size_t iov_len;
-} const kPeekBodyTestData[] = {
- // No frames, more iovecs than frames.
- {{}, {}, 1},
- // One frame, same number of iovecs.
- {{3}, {"foobar"}, 1},
- // One frame, more iovecs than frames.
- {{3}, {"foobar"}, 2},
- // Two frames, fewer iovecs than frames.
- {{3, 5}, {"foobar", "baz"}, 1},
- // Two frames, same number of iovecs.
- {{3, 5}, {"foobar", "baz"}, 2},
- // Two frames, more iovecs than frames.
- {{3, 5}, {"foobar", "baz"}, 3},
-};
-
TEST_F(QuicSpdyStreamBodyManagerTest, PeekBody) {
+ struct {
+ std::vector<QuicByteCount> frame_header_lengths;
+ std::vector<const char*> frame_payloads;
+ size_t iov_len;
+ } const kPeekBodyTestData[] = {
+ // No frames, more iovecs than frames.
+ {{}, {}, 1},
+ // One frame, same number of iovecs.
+ {{3}, {"foobar"}, 1},
+ // One frame, more iovecs than frames.
+ {{3}, {"foobar"}, 2},
+ // Two frames, fewer iovecs than frames.
+ {{3, 5}, {"foobar", "baz"}, 1},
+ // Two frames, same number of iovecs.
+ {{3, 5}, {"foobar", "baz"}, 2},
+ // Two frames, more iovecs than frames.
+ {{3, 5}, {"foobar", "baz"}, 3},
+ };
+
for (size_t test_case_index = 0;
test_case_index < QUIC_ARRAYSIZE(kPeekBodyTestData); ++test_case_index) {
const std::vector<QuicByteCount>& frame_header_lengths =
@@ -159,62 +159,65 @@
}
}
-struct {
- std::vector<QuicByteCount> frame_header_lengths;
- std::vector<const char*> frame_payloads;
- std::vector<std::vector<QuicByteCount>> iov_lengths;
- std::vector<QuicByteCount> expected_total_bytes_read;
- std::vector<QuicByteCount> expected_return_values;
-} const kReadBodyTestData[] = {
- // One frame, one read with smaller iovec.
- {{4}, {"foo"}, {{2}}, {2}, {2}},
- // One frame, one read with same size iovec.
- {{4}, {"foo"}, {{3}}, {3}, {3}},
- // One frame, one read with larger iovec.
- {{4}, {"foo"}, {{5}}, {3}, {3}},
- // One frame, one read with two iovecs, smaller total size.
- {{4}, {"foobar"}, {{2, 3}}, {5}, {5}},
- // One frame, one read with two iovecs, same total size.
- {{4}, {"foobar"}, {{2, 4}}, {6}, {6}},
- // One frame, one read with two iovecs, larger total size in last iovec.
- {{4}, {"foobar"}, {{2, 6}}, {6}, {6}},
- // One frame, one read with extra iovecs, body ends at iovec boundary.
- {{4}, {"foobar"}, {{2, 4, 4, 3}}, {6}, {6}},
- // One frame, one read with extra iovecs, body ends not at iovec boundary.
- {{4}, {"foobar"}, {{2, 7, 4, 3}}, {6}, {6}},
- // One frame, two reads with two iovecs each, smaller total size.
- {{4}, {"foobarbaz"}, {{2, 1}, {3, 2}}, {3, 5}, {3, 5}},
- // One frame, two reads with two iovecs each, same total size.
- {{4}, {"foobarbaz"}, {{2, 1}, {4, 2}}, {3, 6}, {3, 6}},
- // One frame, two reads with two iovecs each, larger total size.
- {{4}, {"foobarbaz"}, {{2, 1}, {4, 10}}, {3, 6}, {3, 6}},
- // Two frames, one read with smaller iovec.
- {{4, 3}, {"foobar", "baz"}, {{8}}, {8}, {11}},
- // Two frames, one read with same size iovec.
- {{4, 3}, {"foobar", "baz"}, {{9}}, {9}, {12}},
- // Two frames, one read with larger iovec.
- {{4, 3}, {"foobar", "baz"}, {{10}}, {9}, {12}},
- // Two frames, one read with two iovecs, smaller total size.
- {{4, 3}, {"foobar", "baz"}, {{4, 3}}, {7}, {10}},
- // Two frames, one read with two iovecs, same total size.
- {{4, 3}, {"foobar", "baz"}, {{4, 5}}, {9}, {12}},
- // Two frames, one read with two iovecs, larger total size in last iovec.
- {{4, 3}, {"foobar", "baz"}, {{4, 6}}, {9}, {12}},
- // Two frames, one read with extra iovecs, body ends at iovec boundary.
- {{4, 3}, {"foobar", "baz"}, {{4, 6, 4, 3}}, {9}, {12}},
- // Two frames, one read with extra iovecs, body ends not at iovec boundary.
- {{4, 3}, {"foobar", "baz"}, {{4, 7, 4, 3}}, {9}, {12}},
- // Two frames, two reads with two iovecs each, reads end on frame boundary.
- {{4, 3}, {"foobar", "baz"}, {{2, 4}, {2, 1}}, {6, 3}, {9, 3}},
- // Three frames, three reads, extra iovecs, no iovec ends on frame boundary.
- {{4, 3, 6},
- {"foobar", "bazquux", "qux"},
- {{4, 3}, {2, 3}, {5, 3}},
- {7, 5, 4},
- {10, 5, 10}},
-};
-
TEST_F(QuicSpdyStreamBodyManagerTest, ReadBody) {
+ struct {
+ std::vector<QuicByteCount> frame_header_lengths;
+ std::vector<const char*> frame_payloads;
+ std::vector<std::vector<QuicByteCount>> iov_lengths;
+ std::vector<QuicByteCount> expected_total_bytes_read;
+ std::vector<QuicByteCount> expected_return_values;
+ } const kReadBodyTestData[] = {
+ // One frame, one read with smaller iovec.
+ {{4}, {"foo"}, {{2}}, {2}, {2}},
+ // One frame, one read with same size iovec.
+ {{4}, {"foo"}, {{3}}, {3}, {3}},
+ // One frame, one read with larger iovec.
+ {{4}, {"foo"}, {{5}}, {3}, {3}},
+ // One frame, one read with two iovecs, smaller total size.
+ {{4}, {"foobar"}, {{2, 3}}, {5}, {5}},
+ // One frame, one read with two iovecs, same total size.
+ {{4}, {"foobar"}, {{2, 4}}, {6}, {6}},
+ // One frame, one read with two iovecs, larger total size in last iovec.
+ {{4}, {"foobar"}, {{2, 6}}, {6}, {6}},
+ // One frame, one read with extra iovecs, body ends at iovec boundary.
+ {{4}, {"foobar"}, {{2, 4, 4, 3}}, {6}, {6}},
+ // One frame, one read with extra iovecs, body ends not at iovec boundary.
+ {{4}, {"foobar"}, {{2, 7, 4, 3}}, {6}, {6}},
+ // One frame, two reads with two iovecs each, smaller total size.
+ {{4}, {"foobarbaz"}, {{2, 1}, {3, 2}}, {3, 5}, {3, 5}},
+ // One frame, two reads with two iovecs each, same total size.
+ {{4}, {"foobarbaz"}, {{2, 1}, {4, 2}}, {3, 6}, {3, 6}},
+ // One frame, two reads with two iovecs each, larger total size.
+ {{4}, {"foobarbaz"}, {{2, 1}, {4, 10}}, {3, 6}, {3, 6}},
+ // Two frames, one read with smaller iovec.
+ {{4, 3}, {"foobar", "baz"}, {{8}}, {8}, {11}},
+ // Two frames, one read with same size iovec.
+ {{4, 3}, {"foobar", "baz"}, {{9}}, {9}, {12}},
+ // Two frames, one read with larger iovec.
+ {{4, 3}, {"foobar", "baz"}, {{10}}, {9}, {12}},
+ // Two frames, one read with two iovecs, smaller total size.
+ {{4, 3}, {"foobar", "baz"}, {{4, 3}}, {7}, {10}},
+ // Two frames, one read with two iovecs, same total size.
+ {{4, 3}, {"foobar", "baz"}, {{4, 5}}, {9}, {12}},
+ // Two frames, one read with two iovecs, larger total size in last iovec.
+ {{4, 3}, {"foobar", "baz"}, {{4, 6}}, {9}, {12}},
+ // Two frames, one read with extra iovecs, body ends at iovec boundary.
+ {{4, 3}, {"foobar", "baz"}, {{4, 6, 4, 3}}, {9}, {12}},
+ // Two frames, one read with extra iovecs, body ends not at iovec
+ // boundary.
+ {{4, 3}, {"foobar", "baz"}, {{4, 7, 4, 3}}, {9}, {12}},
+ // Two frames, two reads with two iovecs each, reads end on frame
+ // boundary.
+ {{4, 3}, {"foobar", "baz"}, {{2, 4}, {2, 1}}, {6, 3}, {9, 3}},
+ // Three frames, three reads, extra iovecs, no iovec ends on frame
+ // boundary.
+ {{4, 3, 6},
+ {"foobar", "bazquux", "qux"},
+ {{4, 3}, {2, 3}, {5, 3}},
+ {7, 5, 4},
+ {10, 5, 10}},
+ };
+
for (size_t test_case_index = 0;
test_case_index < QUIC_ARRAYSIZE(kReadBodyTestData); ++test_case_index) {
const std::vector<QuicByteCount>& frame_header_lengths =
diff --git a/quic/core/qpack/value_splitting_header_list_test.cc b/quic/core/qpack/value_splitting_header_list_test.cc
index 03a5eb0..45963bc 100644
--- a/quic/core/qpack/value_splitting_header_list_test.cc
+++ b/quic/core/qpack/value_splitting_header_list_test.cc
@@ -75,37 +75,37 @@
EXPECT_EQ(headers.begin(), headers.end());
}
-struct {
- const char* name;
- QuicStringPiece value;
- std::vector<const char*> expected_values;
-} kTestData[]{
- // Empty value.
- {"foo", "", {""}},
- // Trivial case.
- {"foo", "bar", {"bar"}},
- // Simple split.
- {"foo", {"bar\0baz", 7}, {"bar", "baz"}},
- {"cookie", "foo;bar", {"foo", "bar"}},
- {"cookie", "foo; bar", {"foo", "bar"}},
- // Empty fragments with \0 separator.
- {"foo", {"\0", 1}, {"", ""}},
- {"bar", {"foo\0", 4}, {"foo", ""}},
- {"baz", {"\0bar", 4}, {"", "bar"}},
- {"qux", {"\0foobar\0", 8}, {"", "foobar", ""}},
- // Empty fragments with ";" separator.
- {"cookie", ";", {"", ""}},
- {"cookie", "foo;", {"foo", ""}},
- {"cookie", ";bar", {"", "bar"}},
- {"cookie", ";foobar;", {"", "foobar", ""}},
- // Empty fragments with "; " separator.
- {"cookie", "; ", {"", ""}},
- {"cookie", "foo; ", {"foo", ""}},
- {"cookie", "; bar", {"", "bar"}},
- {"cookie", "; foobar; ", {"", "foobar", ""}},
-};
-
TEST(ValueSplittingHeaderListTest, Split) {
+ struct {
+ const char* name;
+ QuicStringPiece value;
+ std::vector<const char*> expected_values;
+ } kTestData[]{
+ // Empty value.
+ {"foo", "", {""}},
+ // Trivial case.
+ {"foo", "bar", {"bar"}},
+ // Simple split.
+ {"foo", {"bar\0baz", 7}, {"bar", "baz"}},
+ {"cookie", "foo;bar", {"foo", "bar"}},
+ {"cookie", "foo; bar", {"foo", "bar"}},
+ // Empty fragments with \0 separator.
+ {"foo", {"\0", 1}, {"", ""}},
+ {"bar", {"foo\0", 4}, {"foo", ""}},
+ {"baz", {"\0bar", 4}, {"", "bar"}},
+ {"qux", {"\0foobar\0", 8}, {"", "foobar", ""}},
+ // Empty fragments with ";" separator.
+ {"cookie", ";", {"", ""}},
+ {"cookie", "foo;", {"foo", ""}},
+ {"cookie", ";bar", {"", "bar"}},
+ {"cookie", ";foobar;", {"", "foobar", ""}},
+ // Empty fragments with "; " separator.
+ {"cookie", "; ", {"", ""}},
+ {"cookie", "foo; ", {"foo", ""}},
+ {"cookie", "; bar", {"", "bar"}},
+ {"cookie", "; foobar; ", {"", "foobar", ""}},
+ };
+
for (size_t i = 0; i < QUIC_ARRAYSIZE(kTestData); ++i) {
spdy::SpdyHeaderBlock block;
block[kTestData[i].name] = kTestData[i].value;
diff --git a/quic/core/quic_packet_creator_test.cc b/quic/core/quic_packet_creator_test.cc
index 063a906..437f76c 100644
--- a/quic/core/quic_packet_creator_test.cc
+++ b/quic/core/quic_packet_creator_test.cc
@@ -45,8 +45,9 @@
const QuicPacketNumber kPacketNumber = QuicPacketNumber(UINT64_C(0x12345678));
// Use fields in which each byte is distinct to ensure that every byte is
// framed correctly. The values are otherwise arbitrary.
-const QuicConnectionId kTestConnectionId =
- TestConnectionId(UINT64_C(0xFEDCBA9876543210));
+QuicConnectionId CreateTestConnectionId() {
+ return TestConnectionId(UINT64_C(0xFEDCBA9876543210));
+}
// Run tests with combinations of {ParsedQuicVersion,
// ToggleVersionSerialization}.
@@ -614,7 +615,7 @@
}
QuicPacketHeader header;
- header.destination_connection_id = kTestConnectionId;
+ header.destination_connection_id = CreateTestConnectionId();
header.reset_flag = false;
header.version_flag = false;
header.packet_number = kPacketNumber;
@@ -661,7 +662,7 @@
TEST_P(QuicPacketCreatorTest, BuildConnectivityProbingPacket) {
QuicPacketHeader header;
- header.destination_connection_id = kTestConnectionId;
+ header.destination_connection_id = CreateTestConnectionId();
header.reset_flag = false;
header.version_flag = false;
header.packet_number = kPacketNumber;
@@ -748,7 +749,7 @@
}
QuicPacketHeader header;
- header.destination_connection_id = kTestConnectionId;
+ header.destination_connection_id = CreateTestConnectionId();
header.reset_flag = false;
header.version_flag = false;
header.packet_number = kPacketNumber;
@@ -793,7 +794,7 @@
}
QuicPacketHeader header;
- header.destination_connection_id = kTestConnectionId;
+ header.destination_connection_id = CreateTestConnectionId();
header.reset_flag = false;
header.version_flag = false;
header.packet_number = kPacketNumber;
@@ -840,7 +841,7 @@
}
QuicPacketHeader header;
- header.destination_connection_id = kTestConnectionId;
+ header.destination_connection_id = CreateTestConnectionId();
header.reset_flag = false;
header.version_flag = false;
header.packet_number = kPacketNumber;
@@ -892,7 +893,7 @@
}
QuicPacketHeader header;
- header.destination_connection_id = kTestConnectionId;
+ header.destination_connection_id = CreateTestConnectionId();
header.reset_flag = false;
header.version_flag = false;
header.packet_number = kPacketNumber;
diff --git a/quic/core/tls_handshaker_test.cc b/quic/core/tls_handshaker_test.cc
index c23d56b..96691fa 100644
--- a/quic/core/tls_handshaker_test.cc
+++ b/quic/core/tls_handshaker_test.cc
@@ -505,7 +505,7 @@
}
TEST_F(TlsHandshakerTest, ClientSendingBadALPN) {
- static std::string kTestBadClientAlpn = "bad-client-alpn";
+ const std::string kTestBadClientAlpn = "bad-client-alpn";
EXPECT_CALL(client_session_, GetAlpnsToOffer())
.WillOnce(Return(std::vector<std::string>({kTestBadClientAlpn})));
EXPECT_CALL(*client_conn_, CloseConnection(QUIC_HANDSHAKE_FAILED,
@@ -539,9 +539,9 @@
}
TEST_F(TlsHandshakerTest, ServerRequiresCustomALPN) {
- static const std::string kTestAlpn = "An ALPN That Client Did Not Offer";
+ const std::string kTestAlpn = "An ALPN That Client Did Not Offer";
EXPECT_CALL(server_session_, SelectAlpn(_))
- .WillOnce([](const std::vector<QuicStringPiece>& alpns) {
+ .WillOnce([kTestAlpn](const std::vector<QuicStringPiece>& alpns) {
return std::find(alpns.cbegin(), alpns.cend(), kTestAlpn);
});
EXPECT_CALL(*client_conn_, CloseConnection(QUIC_HANDSHAKE_FAILED,
@@ -568,16 +568,17 @@
EXPECT_CALL(server_session_,
OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED));
- static const std::string kTestAlpn = "A Custom ALPN Value";
- static const std::vector<std::string> kTestAlpns(
+ const std::string kTestAlpn = "A Custom ALPN Value";
+ const std::vector<std::string> kTestAlpns(
{"foo", "bar", kTestAlpn, "something else"});
EXPECT_CALL(client_session_, GetAlpnsToOffer())
.WillRepeatedly(Return(kTestAlpns));
EXPECT_CALL(server_session_, SelectAlpn(_))
- .WillOnce([](const std::vector<QuicStringPiece>& alpns) {
- EXPECT_THAT(alpns, ElementsAreArray(kTestAlpns));
- return std::find(alpns.cbegin(), alpns.cend(), kTestAlpn);
- });
+ .WillOnce(
+ [kTestAlpn, kTestAlpns](const std::vector<QuicStringPiece>& alpns) {
+ EXPECT_THAT(alpns, ElementsAreArray(kTestAlpns));
+ return std::find(alpns.cbegin(), alpns.cend(), kTestAlpn);
+ });
EXPECT_CALL(client_session_, OnAlpnSelected(QuicStringPiece(kTestAlpn)));
EXPECT_CALL(server_session_, OnAlpnSelected(QuicStringPiece(kTestAlpn)));
client_stream_->CryptoConnect();