Index: base/debug/trace_event_unittest.cc |
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc |
index d71b242e13ac8adddfb2d502b8f48000ad848c89..1753b24949a4e88a9ad97a034595e18edee12a30 100644 |
--- a/base/debug/trace_event_unittest.cc |
+++ b/base/debug/trace_event_unittest.cc |
@@ -9,6 +9,7 @@ |
#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/debug/trace_event.h" |
+#include "base/debug/trace_event_synthetic_delay.h" |
#include "base/json/json_reader.h" |
#include "base/json/json_writer.h" |
#include "base/memory/ref_counted_memory.h" |
@@ -2634,5 +2635,48 @@ TEST_F(TraceEventTestFixture, TimeOffset) { |
} |
} |
+TEST_F(TraceEventTestFixture, ConfigureSyntheticDelays) { |
+ BeginSpecificTrace("DELAY(test.Delay;0.05)"); |
+ |
+ base::TimeTicks start = base::TimeTicks::Now(); |
+ { |
+ TRACE_EVENT_SYNTHETIC_DELAY("test.Delay"); |
+ } |
+ base::TimeDelta duration = base::TimeTicks::Now() - start; |
+ EXPECT_GE(duration.InMilliseconds(), 50); |
+ |
+ EndTraceAndFlush(); |
+} |
+ |
+TEST_F(TraceEventTestFixture, BadSyntheticDelayConfigurations) { |
+ const char* configs[] = { |
+ "", |
+ "DELAY(", |
+ "DELAY(;", |
+ "DELAY(;)", |
+ "DELAY(test.Delay)", |
+ "DELAY(test.Delay;)" |
+ }; |
+ for (size_t i = 0; i < arraysize(configs); i++) { |
+ BeginSpecificTrace(configs[i]); |
+ EndTraceAndFlush(); |
+ CategoryFilter filter = TraceLog::GetInstance()->GetCurrentCategoryFilter(); |
+ EXPECT_EQ(0u, filter.GetSyntheticDelayValues().size()); |
+ } |
+} |
+ |
+TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationMerging) { |
+ CategoryFilter filter1("DELAY(test.Delay1;16)"); |
+ CategoryFilter filter2("DELAY(test.Delay2;32)"); |
+ filter1.Merge(filter2); |
+ EXPECT_EQ(2u, filter1.GetSyntheticDelayValues().size()); |
+} |
+ |
+TEST_F(TraceEventTestFixture, SyntheticDelayConfigurationToString) { |
+ const char config[] = "DELAY(test.Delay;16;oneshot)"; |
+ CategoryFilter filter(config); |
+ EXPECT_EQ(config, filter.ToString()); |
+} |
+ |
} // namespace debug |
} // namespace base |