diff --git a/test/BUILD.gn b/test/BUILD.gn index 59dd595595..c05181e2fd 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -485,6 +485,16 @@ if (rtc_include_tests && !build_with_chromium) { absl_deps = [ "//third_party/abseil-cpp/absl/flags:flag" ] } + rtc_library("test_flags") { + visibility = [ "*" ] + testonly = true + sources = [ + "test_flags.cc", + "test_flags.h", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/flags:flag" ] + } + rtc_library("test_main_lib") { visibility = [ "*" ] testonly = true @@ -497,6 +507,7 @@ if (rtc_include_tests && !build_with_chromium) { ":field_trial", ":perf_test", ":resources_dir_flag", + ":test_flags", ":test_support", "../rtc_base", "../rtc_base:checks", diff --git a/test/test_flags.cc b/test/test_flags.cc new file mode 100644 index 0000000000..3f30aff39a --- /dev/null +++ b/test/test_flags.cc @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "test/test_flags.h" + +#include +#include + +#include "absl/flags/flag.h" + +ABSL_FLAG(std::string, + force_fieldtrials, + "", + "Field trials control experimental feature code which can be forced. " + "E.g. running with --force_fieldtrials=WebRTC-FooFeature/Enable/" + " will assign the group Enable to field trial WebRTC-FooFeature."); + +ABSL_FLAG(std::vector, + plot, + {}, + "List of metrics that should be exported for plotting (if they are " + "available). Example: psnr,ssim,encode_time. To plot all available " + " metrics pass 'all' as flag value"); + +ABSL_FLAG( + std::string, + isolated_script_test_perf_output, + "", + "Path where the perf results should be stored in proto format described " + "described by histogram.proto in " + "https://chromium.googlesource.com/catapult/."); diff --git a/test/test_flags.h b/test/test_flags.h new file mode 100644 index 0000000000..694b4540ce --- /dev/null +++ b/test/test_flags.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2022 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ +#ifndef TEST_TEST_FLAGS_H_ +#define TEST_TEST_FLAGS_H_ + +#include +#include + +#include "absl/flags/declare.h" + +ABSL_DECLARE_FLAG(std::string, force_fieldtrials); +ABSL_DECLARE_FLAG(std::vector, plot); +ABSL_DECLARE_FLAG(std::string, isolated_script_test_perf_output); + +#endif // TEST_TEST_FLAGS_H_ diff --git a/test/test_main_lib.cc b/test/test_main_lib.cc index 90dc073fce..204af03ca3 100644 --- a/test/test_main_lib.cc +++ b/test/test_main_lib.cc @@ -28,6 +28,7 @@ #include "system_wrappers/include/metrics.h" #include "test/field_trial.h" #include "test/gtest.h" +#include "test/test_flags.h" #include "test/testsupport/perf_test.h" #include "test/testsupport/resources_dir_flag.h" @@ -64,22 +65,6 @@ ABSL_FLAG(std::string, "", "Path to output an empty JSON file which Chromium infra requires."); -ABSL_FLAG( - std::string, - isolated_script_test_perf_output, - "", - "Path where the perf results should be stored in proto format described " - "described by histogram.proto in " - "https://chromium.googlesource.com/catapult/."); - -constexpr char kPlotAllMetrics[] = "all"; -ABSL_FLAG(std::vector, - plot, - {}, - "List of metrics that should be exported for plotting (if they are " - "available). Example: psnr,ssim,encode_time. To plot all available " - " metrics pass 'all' as flag value"); - ABSL_FLAG(bool, logs, true, "print logs to stderr"); ABSL_FLAG(bool, verbose, false, "verbose logs to stderr"); @@ -89,17 +74,12 @@ ABSL_FLAG(std::string, "Path to collect trace events (json file) for chrome://tracing. " "If not set, events aren't captured."); -ABSL_FLAG(std::string, - force_fieldtrials, - "", - "Field trials control experimental feature code which can be forced. " - "E.g. running with --force_fieldtrials=WebRTC-FooFeature/Enable/" - " will assign the group Enable to field trial WebRTC-FooFeature."); - namespace webrtc { namespace { +constexpr char kPlotAllMetrics[] = "all"; + class TestMainImpl : public TestMain { public: int Init(int* argc, char* argv[]) override { return Init(); }