Reduce QUIC load balancer copies by passing the result as an argument.
Code is not in production.
Performance numbers (Unenc/3 pass/1 pass, ns)
Tip of tree: 20.2 / 103 / 33.2
This CL: 21.4 / 101/ 26.3
PiperOrigin-RevId: 599890068
diff --git a/quiche/quic/load_balancer/load_balancer_server_id_test.cc b/quiche/quic/load_balancer/load_balancer_server_id_test.cc
index 08b5e6d..6b3bc52 100644
--- a/quiche/quic/load_balancer/load_balancer_server_id_test.cc
+++ b/quiche/quic/load_balancer/load_balancer_server_id_test.cc
@@ -30,27 +30,11 @@
absl::Span<const uint8_t>(kRawServerId, 16))
.IsValid()),
"Attempted to create LoadBalancerServerId with length 16");
- EXPECT_QUIC_BUG(EXPECT_FALSE(LoadBalancerServerId(
- absl::Span<const uint8_t>(kRawServerId, 9),
- absl::Span<const uint8_t>(kRawServerId, 7))
- .IsValid()),
- "Attempted to create LoadBalancerServerId with length 16");
EXPECT_QUIC_BUG(
EXPECT_FALSE(LoadBalancerServerId(absl::Span<const uint8_t>()).IsValid()),
"Attempted to create LoadBalancerServerId with length 0");
}
-TEST_F(LoadBalancerServerIdTest, TwoPartConstructor) {
- LoadBalancerServerId server_id1(absl::Span<const uint8_t>(kRawServerId, 15));
- ASSERT_TRUE(server_id1.IsValid());
- LoadBalancerServerId server_id2(
- absl::Span<const uint8_t>(kRawServerId, 8),
- absl::Span<const uint8_t>(&kRawServerId[8], 7));
- ASSERT_TRUE(server_id2.IsValid());
- EXPECT_TRUE(server_id1 == server_id2);
- ;
-}
-
TEST_F(LoadBalancerServerIdTest, CompareIdenticalExceptLength) {
LoadBalancerServerId server_id(absl::Span<const uint8_t>(kRawServerId, 15));
ASSERT_TRUE(server_id.IsValid());
@@ -111,6 +95,18 @@
}));
}
+TEST_F(LoadBalancerServerIdTest, SetLengthInvalid) {
+ LoadBalancerServerId server_id;
+ EXPECT_QUIC_BUG(server_id.set_length(16),
+ "Attempted to set LoadBalancerServerId length to 16");
+ EXPECT_QUIC_BUG(server_id.set_length(0),
+ "Attempted to set LoadBalancerServerId length to 0");
+ server_id.set_length(1);
+ EXPECT_EQ(server_id.length(), 1);
+ server_id.set_length(15);
+ EXPECT_EQ(server_id.length(), 15);
+}
+
} // namespace
} // namespace test