summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/rtc_base/event_tracer_unittest.cc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/libwebrtc/rtc_base/event_tracer_unittest.cc
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/rtc_base/event_tracer_unittest.cc')
-rw-r--r--third_party/libwebrtc/rtc_base/event_tracer_unittest.cc75
1 files changed, 75 insertions, 0 deletions
diff --git a/third_party/libwebrtc/rtc_base/event_tracer_unittest.cc b/third_party/libwebrtc/rtc_base/event_tracer_unittest.cc
new file mode 100644
index 0000000000..d0783c3f2d
--- /dev/null
+++ b/third_party/libwebrtc/rtc_base/event_tracer_unittest.cc
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2012 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 "rtc_base/event_tracer.h"
+
+#include "rtc_base/synchronization/mutex.h"
+#include "rtc_base/thread_annotations.h"
+#include "rtc_base/trace_event.h"
+#include "test/gtest.h"
+
+namespace {
+
+class TestStatistics {
+ public:
+ void Reset() {
+ webrtc::MutexLock lock(&mutex_);
+ events_logged_ = 0;
+ }
+
+ void Increment() {
+ webrtc::MutexLock lock(&mutex_);
+ ++events_logged_;
+ }
+
+ int Count() const {
+ webrtc::MutexLock lock(&mutex_);
+ return events_logged_;
+ }
+
+ static TestStatistics* Get() {
+ // google.github.io/styleguide/cppguide.html#Static_and_Global_Variables
+ static auto& test_stats = *new TestStatistics();
+ return &test_stats;
+ }
+
+ private:
+ mutable webrtc::Mutex mutex_;
+ int events_logged_ RTC_GUARDED_BY(mutex_) = 0;
+};
+
+} // namespace
+
+namespace webrtc {
+
+TEST(EventTracerTest, EventTracerDisabled) {
+ { TRACE_EVENT0("test", "EventTracerDisabled"); }
+ EXPECT_FALSE(TestStatistics::Get()->Count());
+ TestStatistics::Get()->Reset();
+}
+
+#if RTC_TRACE_EVENTS_ENABLED
+TEST(EventTracerTest, ScopedTraceEvent) {
+ SetupEventTracer(
+ [](const char* /*name*/) {
+ return reinterpret_cast<const unsigned char*>("test");
+ },
+ [](char /*phase*/, const unsigned char* /*category_enabled*/,
+ const char* /*name*/, unsigned long long /*id*/, int /*num_args*/,
+ const char** /*arg_names*/, const unsigned char* /*arg_types*/,
+ const unsigned long long* /*arg_values*/,
+ unsigned char /*flags*/) { TestStatistics::Get()->Increment(); });
+ { TRACE_EVENT0("test", "ScopedTraceEvent"); }
+ EXPECT_EQ(2, TestStatistics::Get()->Count());
+ TestStatistics::Get()->Reset();
+}
+#endif
+
+} // namespace webrtc