Move common test flags to a separate library.

This enables the possibility to use these flags from other main
functions.

Bug: b/217701950, b/238157120
Change-Id: I6e9f09c4be39b2ac690c8e6b6da380ef3c81f460
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269140
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37582}
This commit is contained in:
Mirko Bonadei 2022-07-21 09:52:32 +02:00 committed by WebRTC LUCI CQ
parent 507e3bc406
commit 054ea47379
4 changed files with 74 additions and 23 deletions

View File

@ -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",

38
test/test_flags.cc Normal file
View File

@ -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 <string>
#include <vector>
#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<std::string>,
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/.");

22
test/test_flags.h Normal file
View File

@ -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 <string>
#include <vector>
#include "absl/flags/declare.h"
ABSL_DECLARE_FLAG(std::string, force_fieldtrials);
ABSL_DECLARE_FLAG(std::vector<std::string>, plot);
ABSL_DECLARE_FLAG(std::string, isolated_script_test_perf_output);
#endif // TEST_TEST_FLAGS_H_

View File

@ -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<std::string>,
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(); }