Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(260)

Unified Diff: content/browser/tracing/background_tracing_manager_browsertest.cc

Issue 1427873003: Background tracing: Added trace_chance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review fixes Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/tracing/background_tracing_manager_browsertest.cc
diff --git a/content/browser/tracing/background_tracing_manager_browsertest.cc b/content/browser/tracing/background_tracing_manager_browsertest.cc
index b52850d2fdb93294ceeb470f5c50a0441d58c95a..63aceff555524f4d99e1c1074a8f4ac4e9388a20 100644
--- a/content/browser/tracing/background_tracing_manager_browsertest.cc
+++ b/content/browser/tracing/background_tracing_manager_browsertest.cc
@@ -668,6 +668,110 @@ IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
}
}
+// This tests that no preemptive trace is triggered with 0 chance set.
+IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
+ PreemptiveNotTriggerWithZeroChance) {
+ {
+ SetupBackgroundTracingManager();
+
+ base::RunLoop run_loop;
+ BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
+ (base::Closure()));
+
+ base::DictionaryValue dict;
+
+ dict.SetString("mode", "PREEMPTIVE_TRACING_MODE");
+ dict.SetString("category", "BENCHMARK");
+
+ scoped_ptr<base::ListValue> rules_list(new base::ListValue());
+ {
+ scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue());
+ rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED");
+ rules_dict->SetString("trigger_name", "preemptive_test");
+ rules_dict->SetDouble("trigger_chance", 0.0);
+ rules_list->Append(rules_dict.Pass());
+ }
+ dict.Set("configs", rules_list.Pass());
+
+ scoped_ptr<BackgroundTracingConfig> config(
+ BackgroundTracingConfigImpl::FromDict(&dict));
+
+ EXPECT_TRUE(config);
+
+ content::BackgroundTracingManager::TriggerHandle handle =
+ content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
+ "preemptive_test");
+
+ BackgroundTracingManager::GetInstance()->SetActiveScenario(
+ config.Pass(), upload_config_wrapper.get_receive_callback(),
+ BackgroundTracingManager::NO_DATA_FILTERING);
+
+ BackgroundTracingManager::GetInstance()->WhenIdle(
+ base::Bind(&DisableScenarioWhenIdle));
+
+ BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
+ handle,
+ base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false));
+
+ run_loop.Run();
+
+ EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0);
+ }
+}
+
+// This tests that no reactive trace is triggered with 0 chance set.
+IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
+ ReactiveNotTriggerWithZeroChance) {
+ {
+ SetupBackgroundTracingManager();
+
+ base::RunLoop run_loop;
+ BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
+ (base::Closure()));
+
+ base::DictionaryValue dict;
+
+ dict.SetString("mode", "REACTIVE_TRACING_MODE");
+
+ scoped_ptr<base::ListValue> rules_list(new base::ListValue());
+ {
+ scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue());
+ rules_dict->SetString("rule",
+ "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL");
+ rules_dict->SetString("trigger_name", "reactive_test1");
+ rules_dict->SetString("category", "BENCHMARK");
+ rules_dict->SetDouble("trigger_chance", 0.0);
+
+ rules_list->Append(rules_dict.Pass());
+ }
+ dict.Set("configs", rules_list.Pass());
+
+ scoped_ptr<BackgroundTracingConfig> config(
+ BackgroundTracingConfigImpl::FromDict(&dict));
+
+ EXPECT_TRUE(config);
+
+ content::BackgroundTracingManager::TriggerHandle handle =
+ content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
+ "preemptive_test");
+
+ BackgroundTracingManager::GetInstance()->SetActiveScenario(
+ config.Pass(), upload_config_wrapper.get_receive_callback(),
+ BackgroundTracingManager::NO_DATA_FILTERING);
+
+ BackgroundTracingManager::GetInstance()->WhenIdle(
+ base::Bind(&DisableScenarioWhenIdle));
+
+ BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
+ handle,
+ base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false));
+
+ run_loop.Run();
+
+ EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0);
+ }
+}
+
// This tests that histogram triggers for preemptive mode configs.
IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
ReceiveTraceSucceedsOnHigherHistogramSample) {

Powered by Google App Engine
This is Rietveld 408576698