// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "net/quic/set_quic_flag.h" #include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h" #include "testing/gtest/include/gtest/gtest.h" namespace net::test { TEST(SetQuicFlagTest, Bool) { FLAGS_quic_enforce_single_packet_chlo = true; SetQuicFlagByName("FLAGS_quic_enforce_single_packet_chlo", "false"); EXPECT_FALSE(FLAGS_quic_enforce_single_packet_chlo); SetQuicFlagByName("FLAGS_quic_enforce_single_packet_chlo", "true"); EXPECT_TRUE(FLAGS_quic_enforce_single_packet_chlo); SetQuicFlagByName("FLAGS_quic_enforce_single_packet_chlo", "False"); EXPECT_FALSE(FLAGS_quic_enforce_single_packet_chlo); SetQuicFlagByName("FLAGS_quic_enforce_single_packet_chlo", "True"); EXPECT_TRUE(FLAGS_quic_enforce_single_packet_chlo); } TEST(SetQuicFlagTest, Double) { FLAGS_quic_bbr_cwnd_gain = 3.0; SetQuicFlagByName("FLAGS_quic_bbr_cwnd_gain", "1.5"); EXPECT_EQ(1.5, FLAGS_quic_bbr_cwnd_gain); } TEST(SetQuicFlagTest, DoubleInvalid) { FLAGS_quic_bbr_cwnd_gain = 3.0; SetQuicFlagByName("FLAGS_quic_bbr_cwnd_gain", "true"); EXPECT_EQ(3.0, FLAGS_quic_bbr_cwnd_gain); } TEST(SetQuicFlagTest, Int64) { FLAGS_quic_max_tracked_packet_count = 100; SetQuicFlagByName("FLAGS_quic_max_tracked_packet_count", "5"); EXPECT_EQ(5, FLAGS_quic_max_tracked_packet_count); } TEST(SetQuicFlagTest, Int64Invalid) { FLAGS_quic_max_tracked_packet_count = 100; SetQuicFlagByName("FLAGS_quic_max_tracked_packet_count", "false"); EXPECT_EQ(100, FLAGS_quic_max_tracked_packet_count); } TEST(SetQuicFlagTest, Uint64) { FLAGS_quic_key_update_confidentiality_limit = 100; SetQuicFlagByName("FLAGS_quic_key_update_confidentiality_limit", "5"); EXPECT_EQ(5u, FLAGS_quic_key_update_confidentiality_limit); } TEST(SetQuicFlagTest, Uint64Invalid) { FLAGS_quic_key_update_confidentiality_limit = 100; SetQuicFlagByName("FLAGS_quic_key_update_confidentiality_limit", "false"); EXPECT_EQ(100u, FLAGS_quic_key_update_confidentiality_limit); } TEST(SetQuicFlagTest, Uint64Negative) { FLAGS_quic_key_update_confidentiality_limit = 4096; SetQuicFlagByName("FLAGS_quic_key_update_confidentiality_limit", "-1"); EXPECT_EQ(4096u, FLAGS_quic_key_update_confidentiality_limit); } TEST(SetQuicFlagTest, Int32) { FLAGS_quic_lumpy_pacing_size = 1; SetQuicFlagByName("FLAGS_quic_lumpy_pacing_size", "10"); EXPECT_EQ(10, FLAGS_quic_lumpy_pacing_size); } TEST(SetQuicFlagTest, Int32Invalid) { FLAGS_quic_lumpy_pacing_size = 1; SetQuicFlagByName("FLAGS_quic_lumpy_pacing_size", "false"); EXPECT_EQ(1, FLAGS_quic_lumpy_pacing_size); } } // namespace net::test