| // Copyright (c) 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/third_party/quiche/src/quic/test_tools/send_algorithm_test_utils.h" |
| |
| #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h" |
| #include "net/third_party/quiche/src/quic/platform/api/quic_test.h" |
| #include "net/third_party/quiche/src/quic/platform/api/quic_test_output.h" |
| #include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h" |
| |
| namespace quic { |
| namespace test { |
| |
| bool LoadSendAlgorithmTestResult(SendAlgorithmTestResult* result) { |
| std::string test_result_file_content; |
| if (!QuicLoadTestOutput(GetSendAlgorithmTestResultFilename(), |
| &test_result_file_content)) { |
| return false; |
| } |
| return result->ParseFromString(test_result_file_content); |
| } |
| |
| void RecordSendAlgorithmTestResult(uint64_t random_seed, |
| int64_t simulated_duration_micros) { |
| SendAlgorithmTestResult result; |
| result.set_test_name(GetFullSendAlgorithmTestName()); |
| result.set_random_seed(random_seed); |
| result.set_simulated_duration_micros(simulated_duration_micros); |
| |
| QuicSaveTestOutput(GetSendAlgorithmTestResultFilename(), |
| result.SerializeAsString()); |
| } |
| |
| void CompareSendAlgorithmTestResult(int64_t actual_simulated_duration_micros) { |
| SendAlgorithmTestResult expected; |
| ASSERT_TRUE(LoadSendAlgorithmTestResult(&expected)); |
| QUIC_LOG(INFO) << "Loaded expected test result: " |
| << expected.ShortDebugString(); |
| |
| EXPECT_GE(expected.simulated_duration_micros(), |
| actual_simulated_duration_micros); |
| } |
| |
| std::string GetFullSendAlgorithmTestName() { |
| const auto* test_info = |
| ::testing::UnitTest::GetInstance()->current_test_info(); |
| const std::string type_param = |
| test_info->type_param() ? test_info->type_param() : ""; |
| const std::string value_param = |
| test_info->value_param() ? test_info->value_param() : ""; |
| return quiche::QuicheStrCat(test_info->test_suite_name(), ".", |
| test_info->name(), "_", type_param, "_", |
| value_param); |
| } |
| |
| std::string GetSendAlgorithmTestResultFilename() { |
| return GetFullSendAlgorithmTestName() + ".test_result"; |
| } |
| |
| } // namespace test |
| } // namespace quic |