webrtc/test/testsupport
Patrik Höglund 414da244f0 Add PerfResultsReporter.
This is the WebRTC equivalent of testing/perf/perf_result_reporter.h
in Chromium. That class was introduced because the PrintResult
functions are quite hard to use right. It was easy to mix up
metrics, modifiers and stories, for instance.

I choose to introduce this new class because I need to create a new
API for PrintResult anyway. For instance, the important bool isn't
really supported by histograms. Also I would like to restrict units
to an enum because you cannot make up your own units anymore.
We could also have had a strictly checked string type, but that's
bad API design. An enum is better because the compiler will check
that the unit is valid rather than at runtime.

Furthermore, down the line we can probably make each reporter write
protos directly to /tmp and merge them later, instead of having a
singleton which writes results at the end and keeps all test results
in memory. This abstraction makes it easy to make a clean and simple
implementation of just that.

Steps:
1) land this
2) start rewriting perf tests to use this class
3) nuke PrintResult functions
4) don't convert units to string, convert directly from Unit
   to proto::Unit
5) write protos directly from this class (either through
   a singleton or directly) and nuke the perf results writer
   abstraction.

Bug: chromium:1029452
Change-Id: Ia919c371a69309130c797fdf01ae5bd64345ab2e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168770
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30599}
2020-02-25 08:05:53 +00:00
..
mock Format almost everything. 2019-07-08 13:45:15 +00:00
copy_to_file_audio_capturer_unittest.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
copy_to_file_audio_capturer.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
copy_to_file_audio_capturer.h Introduce CopyToFileAudioCapturer. 2019-01-15 15:06:55 +00:00
DEPS Implement histogram perf results writer. 2020-01-31 11:38:56 +00:00
file_utils_override.cc Remove the fileutils hack for good. 2019-10-16 13:40:39 +00:00
file_utils_override.h Remove the fileutils hack for good. 2019-10-16 13:40:39 +00:00
file_utils_unittest.cc Concatenate string literals at compile time. 2020-01-14 14:47:48 +00:00
file_utils.cc Format almost everything. 2019-07-08 13:45:15 +00:00
file_utils.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
frame_reader.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
frame_writer.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
ios_file_utils.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
ios_file_utils.mm (3) Rename files to snake_case: move the files 2019-01-11 17:05:20 +00:00
ivf_video_frame_generator_unittest.cc Migrate WebRTC on FrameGeneratorInterface and remove FrameGenerator class 2019-12-07 00:54:26 +00:00
ivf_video_frame_generator.cc Add ability to resize buffers pool in decoder and use it in IVF generator 2019-12-16 14:51:16 +00:00
ivf_video_frame_generator.h Replace sequence checker with lock in IvfFrameGemerator. 2019-12-13 14:06:30 +00:00
jpeg_frame_writer_ios.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
jpeg_frame_writer.cc Delete unneeded includes of common_types.h and gn deps on webrtc_common. 2018-11-20 16:28:39 +00:00
mac_file_utils.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
mac_file_utils.mm (3) Rename files to snake_case: move the files 2019-01-11 17:05:20 +00:00
perf_result_reporter.cc Add PerfResultsReporter. 2020-02-25 08:05:53 +00:00
perf_result_reporter.h Add PerfResultsReporter. 2020-02-25 08:05:53 +00:00
perf_test_graphjson_writer.cc Implement histogram perf results writer. 2020-01-31 11:38:56 +00:00
perf_test_graphjson_writer.h Extract an interface from the perf results logger. 2020-01-14 06:05:02 +00:00
perf_test_histogram_writer_no_protobuf.cc Implement histogram perf results writer. 2020-01-31 11:38:56 +00:00
perf_test_histogram_writer_unittest.cc Implement histogram perf results writer. 2020-01-31 11:38:56 +00:00
perf_test_histogram_writer.cc Implement histogram perf results writer. 2020-01-31 11:38:56 +00:00
perf_test_histogram_writer.h Extract an interface from the perf results logger. 2020-01-14 06:05:02 +00:00
perf_test_result_writer.h Implement histogram perf results writer. 2020-01-31 11:38:56 +00:00
perf_test_unittest.cc Implement histogram perf results writer. 2020-01-31 11:38:56 +00:00
perf_test.cc Add PerfResultsReporter. 2020-02-25 08:05:53 +00:00
perf_test.h Improve comment in perf_test.h. 2020-02-24 11:47:28 +00:00
resources_dir_flag.cc Put the resources_dir flag into its own target. 2019-10-15 11:45:20 +00:00
resources_dir_flag.h Put the resources_dir flag into its own target. 2019-10-15 11:45:20 +00:00
rtc_expect_death.h Add ability to disable detailed error message in RTC_CHECKs 2019-11-28 17:51:00 +00:00
test_artifacts_unittest.cc Migrate WebRTC test infra to ABSL_FLAG. 2019-07-19 06:54:04 +00:00
test_artifacts.cc Migrate WebRTC test infra to ABSL_FLAG. 2019-07-19 06:54:04 +00:00
test_artifacts.h Format almost everything. 2019-07-08 13:45:15 +00:00
video_frame_writer_unittest.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
video_frame_writer.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
video_frame_writer.h Split VideoFrameWriter into yuv and y4m writers 2019-08-07 04:06:46 +00:00
y4m_frame_reader_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
y4m_frame_reader.cc Format almost everything. 2019-07-08 13:45:15 +00:00
y4m_frame_writer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
y4m_frame_writer.cc Format almost everything. 2019-07-08 13:45:15 +00:00
yuv_frame_reader_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
yuv_frame_reader.cc Format almost everything. 2019-07-08 13:45:15 +00:00
yuv_frame_writer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
yuv_frame_writer.cc Format almost everything. 2019-07-08 13:45:15 +00:00