aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xaudio/test/low_bandwidth_audio_test.py1
-rw-r--r--test/BUILD.gn2
-rw-r--r--test/test_main_lib.cc6
-rw-r--r--test/testsupport/perf_test.cc38
-rw-r--r--test/testsupport/perf_test.h12
-rw-r--r--test/testsupport/perf_test_graphjson_writer.cc144
-rw-r--r--test/testsupport/perf_test_graphjson_writer.h32
-rw-r--r--test/testsupport/perf_test_unittest.cc66
8 files changed, 23 insertions, 278 deletions
diff --git a/audio/test/low_bandwidth_audio_test.py b/audio/test/low_bandwidth_audio_test.py
index 6a95903373..51273f7486 100755
--- a/audio/test/low_bandwidth_audio_test.py
+++ b/audio/test/low_bandwidth_audio_test.py
@@ -286,7 +286,6 @@ def main():
_LogCommand(test_command + [
'--sample_rate_hz=%d' % analyzer.sample_rate_hz,
'--test_case_prefix=%s' % analyzer.name,
- '--write_histogram_proto_json'
] + args.extra_test_args),
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
perf_results_file = None
diff --git a/test/BUILD.gn b/test/BUILD.gn
index d84a78b15c..29d5d6d883 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -226,8 +226,6 @@ rtc_library("perf_test") {
"testsupport/perf_result_reporter.h",
"testsupport/perf_test.cc",
"testsupport/perf_test.h",
- "testsupport/perf_test_graphjson_writer.cc",
- "testsupport/perf_test_graphjson_writer.h",
"testsupport/perf_test_histogram_writer.h",
"testsupport/perf_test_result_writer.h",
]
diff --git a/test/test_main_lib.cc b/test/test_main_lib.cc
index f954a5eee5..15318b49e1 100644
--- a/test/test_main_lib.cc
+++ b/test/test_main_lib.cc
@@ -175,10 +175,10 @@ class TestMainImpl : public TestMain {
#else
int exit_code = RUN_ALL_TESTS();
- std::string chartjson_result_file =
+ std::string perf_output_file =
absl::GetFlag(FLAGS_isolated_script_test_perf_output);
- if (!chartjson_result_file.empty()) {
- if (!webrtc::test::WritePerfResults(chartjson_result_file)) {
+ if (!perf_output_file.empty()) {
+ if (!webrtc::test::WritePerfResults(perf_output_file)) {
return 1;
}
}
diff --git a/test/testsupport/perf_test.cc b/test/testsupport/perf_test.cc
index 5b2f7a0479..310c7e36a5 100644
--- a/test/testsupport/perf_test.cc
+++ b/test/testsupport/perf_test.cc
@@ -19,22 +19,26 @@
#include "rtc_base/checks.h"
#include "rtc_base/critical_section.h"
-#include "test/testsupport/perf_test_graphjson_writer.h"
#include "test/testsupport/perf_test_histogram_writer.h"
-ABSL_FLAG(bool,
- write_histogram_proto_json,
- true,
- "Use the histogram C++ API, which will write Histogram protos "
- "instead of Chart JSON. See histogram.proto in third_party/catapult. "
- "This flag only has effect if --isolated_script_test_perf_output is "
- "specified");
-
namespace webrtc {
namespace test {
namespace {
+std::string UnitWithDirection(
+ const std::string& units,
+ webrtc::test::ImproveDirection improve_direction) {
+ switch (improve_direction) {
+ case webrtc::test::ImproveDirection::kNone:
+ return units;
+ case webrtc::test::ImproveDirection::kSmallerIsBetter:
+ return units + "_smallerIsBetter";
+ case webrtc::test::ImproveDirection::kBiggerIsBetter:
+ return units + "_biggerIsBetter";
+ }
+}
+
template <typename Container>
void OutputListToStream(std::ostream* ostream, const Container& values) {
const char* sep = "";
@@ -192,13 +196,8 @@ ResultsLinePrinter& GetResultsLinePrinter() {
}
PerfTestResultWriter& GetPerfWriter() {
- if (absl::GetFlag(FLAGS_write_histogram_proto_json)) {
- static PerfTestResultWriter* writer = CreateHistogramWriter();
- return *writer;
- } else {
- static PerfTestResultWriter* writer = CreateGraphJsonWriter();
- return *writer;
- }
+ static PerfTestResultWriter* writer = CreateHistogramWriter();
+ return *writer;
}
} // namespace
@@ -222,12 +221,7 @@ void PrintPlottableResults(const std::vector<std::string>& desired_graphs) {
bool WritePerfResults(const std::string& output_path) {
std::string results = GetPerfResults();
- FILE* output;
- if (absl::GetFlag(FLAGS_write_histogram_proto_json)) {
- output = fopen(output_path.c_str(), "wb");
- } else {
- output = fopen(output_path.c_str(), "w");
- }
+ FILE* output = fopen(output_path.c_str(), "wb");
if (output == NULL) {
printf("Failed to write to %s.\n", output_path.c_str());
return false;
diff --git a/test/testsupport/perf_test.h b/test/testsupport/perf_test.h
index 338a14480d..b0a5607d20 100644
--- a/test/testsupport/perf_test.h
+++ b/test/testsupport/perf_test.h
@@ -91,12 +91,11 @@ void PrintResult(const std::string& measurement,
const bool important,
ImproveDirection improve_direction = ImproveDirection::kNone);
-// If --write_histogram_proto_json=false, this returns all perf results to date
-// in a JSON string formatted as described in dashboard/docs/data-format.md
-// in https://github.com/catapult-project/catapult/blob/master/. If
-// --write_histogram_proto_json=true, returns a string-encoded proto as
-// described in tracing/tracing/proto/histogram.proto in
+// Returns a string-encoded proto as described in
+// tracing/tracing/proto/histogram.proto in
// https://github.com/catapult-project/catapult/blob/master/.
+// If you want to print the proto in human readable format, use
+// tracing/bin/proto2json from third_party/catapult in your WebRTC checkout.
std::string GetPerfResults();
// Print into stdout plottable metrics for further post processing.
@@ -122,7 +121,4 @@ void ClearPerfResults();
} // namespace test
} // namespace webrtc
-// Only for use by tests.
-ABSL_DECLARE_FLAG(bool, write_histogram_proto_json);
-
#endif // TEST_TESTSUPPORT_PERF_TEST_H_
diff --git a/test/testsupport/perf_test_graphjson_writer.cc b/test/testsupport/perf_test_graphjson_writer.cc
deleted file mode 100644
index cf49b29320..0000000000
--- a/test/testsupport/perf_test_graphjson_writer.cc
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2020 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/testsupport/perf_test_graphjson_writer.h"
-
-#include <fstream>
-#include <map>
-#include <sstream>
-#include <string>
-#include <vector>
-
-#include "rtc_base/checks.h"
-#include "rtc_base/critical_section.h"
-
-namespace webrtc {
-namespace test {
-
-std::string UnitWithDirection(
- const std::string& units,
- webrtc::test::ImproveDirection improve_direction) {
- switch (improve_direction) {
- case webrtc::test::ImproveDirection::kNone:
- return units;
- case webrtc::test::ImproveDirection::kSmallerIsBetter:
- return units + "_smallerIsBetter";
- case webrtc::test::ImproveDirection::kBiggerIsBetter:
- return units + "_biggerIsBetter";
- }
-}
-
-template <typename Container>
-void OutputListToStream(std::ostream* ostream, const Container& values) {
- const char* sep = "";
- for (const auto& v : values) {
- (*ostream) << sep << v;
- sep = ",";
- }
-}
-
-namespace {
-
-class PerfTestGraphJsonWriter : public PerfTestResultWriter {
- public:
- PerfTestGraphJsonWriter() : crit_(), graphs_() {}
- void ClearResults() {
- rtc::CritScope lock(&crit_);
- graphs_.clear();
- }
-
- void LogResult(const std::string& graph_name,
- const std::string& trace_name,
- const double value,
- const std::string& units,
- const bool important,
- webrtc::test::ImproveDirection improve_direction) {
- std::ostringstream json_stream;
- json_stream << '"' << trace_name << R"(":{)";
- json_stream << R"("type":"scalar",)";
- json_stream << R"("value":)" << value << ',';
- json_stream << R"("units":")" << UnitWithDirection(units, improve_direction)
- << R"("})";
- rtc::CritScope lock(&crit_);
- graphs_[graph_name].push_back(json_stream.str());
- }
-
- void LogResultMeanAndError(const std::string& graph_name,
- const std::string& trace_name,
- const double mean,
- const double error,
- const std::string& units,
- const bool important,
- webrtc::test::ImproveDirection improve_direction) {
- std::ostringstream json_stream;
- json_stream << '"' << trace_name << R"(":{)";
- json_stream << R"("type":"list_of_scalar_values",)";
- json_stream << R"("values":[)" << mean << "],";
- json_stream << R"("std":)" << error << ',';
- json_stream << R"("units":")" << UnitWithDirection(units, improve_direction)
- << R"("})";
- rtc::CritScope lock(&crit_);
- graphs_[graph_name].push_back(json_stream.str());
- }
-
- void LogResultList(const std::string& graph_name,
- const std::string& trace_name,
- const rtc::ArrayView<const double> values,
- const std::string& units,
- const bool important,
- webrtc::test::ImproveDirection improve_direction) {
- std::ostringstream value_stream;
- value_stream.precision(8);
- value_stream << '[';
- OutputListToStream(&value_stream, values);
- value_stream << ']';
-
- std::ostringstream json_stream;
- json_stream << '"' << trace_name << R"(":{)";
- json_stream << R"("type":"list_of_scalar_values",)";
- json_stream << R"("values":)" << value_stream.str() << ',';
- json_stream << R"("units":")" << UnitWithDirection(units, improve_direction)
- << R"("})";
- rtc::CritScope lock(&crit_);
- graphs_[graph_name].push_back(json_stream.str());
- }
-
- std::string Serialize() const {
- std::ostringstream json_stream;
- json_stream << R"({"format_version":"1.0",)";
- json_stream << R"("charts":{)";
- rtc::CritScope lock(&crit_);
- for (auto graphs_it = graphs_.begin(); graphs_it != graphs_.end();
- ++graphs_it) {
- if (graphs_it != graphs_.begin())
- json_stream << ',';
- json_stream << '"' << graphs_it->first << "\":";
- json_stream << '{';
- OutputListToStream(&json_stream, graphs_it->second);
- json_stream << '}';
- }
- json_stream << "}}";
- return json_stream.str();
- }
-
- private:
- rtc::CriticalSection crit_;
- std::map<std::string, std::vector<std::string>> graphs_
- RTC_GUARDED_BY(&crit_);
-};
-
-} // namespace
-
-PerfTestResultWriter* CreateGraphJsonWriter() {
- return new PerfTestGraphJsonWriter();
-}
-
-} // namespace test
-} // namespace webrtc
diff --git a/test/testsupport/perf_test_graphjson_writer.h b/test/testsupport/perf_test_graphjson_writer.h
deleted file mode 100644
index ae32cfa9e0..0000000000
--- a/test/testsupport/perf_test_graphjson_writer.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2020 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_TESTSUPPORT_PERF_TEST_GRAPHJSON_WRITER_H_
-#define TEST_TESTSUPPORT_PERF_TEST_GRAPHJSON_WRITER_H_
-
-#include <string>
-
-#include "test/testsupport/perf_test.h"
-#include "test/testsupport/perf_test_result_writer.h"
-
-namespace webrtc {
-namespace test {
-
-PerfTestResultWriter* CreateGraphJsonWriter();
-
-// Utilities that happen to be useful to perf_test.cc. Just move these back
-// to perf_test.cc when this file goes away.
-std::string UnitWithDirection(const std::string& units,
- webrtc::test::ImproveDirection improve_direction);
-
-} // namespace test
-} // namespace webrtc
-
-#endif // TEST_TESTSUPPORT_PERF_TEST_GRAPHJSON_WRITER_H_
diff --git a/test/testsupport/perf_test_unittest.cc b/test/testsupport/perf_test_unittest.cc
index d99014bf80..b779f4c6ec 100644
--- a/test/testsupport/perf_test_unittest.cc
+++ b/test/testsupport/perf_test_unittest.cc
@@ -22,47 +22,6 @@
namespace proto = catapult::tracing::tracing::proto;
#endif
-namespace {
-
-const char* kJsonExpected = R"({
- "format_version":"1.0",
- "charts":{
- "foobar":{
- "baz_v":{
- "type":"scalar",
- "value":7,
- "units":"widgets"
- },
- "baz_me":{
- "type":"list_of_scalar_values",
- "values":[1],
- "std":2,
- "units":"lemurs"
- },
- "baz_vl":{
- "type":"list_of_scalar_values",
- "values":[1,2,3],
- "units":"units"
- }
- },
- "measurementmodifier":{
- "trace":{
- "type":"scalar",
- "value":42,
- "units":"units"
- }
- }
- }
-})";
-
-std::string RemoveSpaces(std::string s) {
- s.erase(std::remove(s.begin(), s.end(), ' '), s.end());
- s.erase(std::remove(s.begin(), s.end(), '\n'), s.end());
- return s;
-}
-
-} // namespace
-
namespace webrtc {
namespace test {
@@ -96,21 +55,6 @@ TEST_F(PerfTest, MAYBE_TestPrintResult) {
EXPECT_EQ(expected, ::testing::internal::GetCapturedStdout());
}
-TEST_F(PerfTest, TestGetPerfResultsJSON) {
- bool original_flag = absl::GetFlag(FLAGS_write_histogram_proto_json);
- absl::SetFlag(&FLAGS_write_histogram_proto_json, false);
-
- PrintResult("measurement", "modifier", "trace", 42, "units", false);
- PrintResult("foo", "bar", "baz_v", 7, "widgets", true);
- PrintResultMeanAndError("foo", "bar", "baz_me", 1, 2, "lemurs", false);
- const double kListOfScalars[] = {1, 2, 3};
- PrintResultList("foo", "bar", "baz_vl", kListOfScalars, "units", false);
-
- EXPECT_EQ(RemoveSpaces(kJsonExpected), GetPerfResults());
-
- absl::SetFlag(&FLAGS_write_histogram_proto_json, original_flag);
-}
-
TEST_F(PerfTest, TestClearPerfResults) {
PrintResult("measurement", "modifier", "trace", 42, "units", false);
ClearPerfResults();
@@ -158,16 +102,6 @@ TEST_F(PerfTest, TestGetPerfResultsHistograms) {
EXPECT_EQ(hist2.unit().unit(), proto::MS_BEST_FIT_FORMAT);
}
-TEST_F(PerfTest, TestClearPerfResultsHistograms) {
- bool original_flag = absl::GetFlag(FLAGS_write_histogram_proto_json);
- absl::SetFlag(&FLAGS_write_histogram_proto_json, true);
- PrintResult("measurement", "modifier", "trace", 42, "ms", false);
- ClearPerfResults();
- EXPECT_EQ("", GetPerfResults());
-
- absl::SetFlag(&FLAGS_write_histogram_proto_json, original_flag);
-}
-
#endif // WEBRTC_ENABLE_PROTOBUF
#if GTEST_HAS_DEATH_TEST