OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/metrics/histogram_macros.h" | 6 #include "base/metrics/histogram_macros.h" |
7 #include "base/strings/pattern.h" | 7 #include "base/strings/pattern.h" |
8 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
9 #include "content/browser/tracing/background_tracing_manager_impl.h" | 9 #include "content/browser/tracing/background_tracing_manager_impl.h" |
10 #include "content/browser/tracing/background_tracing_rule.h" | 10 #include "content/browser/tracing/background_tracing_rule.h" |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
569 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 569 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
570 handle, | 570 handle, |
571 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); | 571 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
572 | 572 |
573 run_loop.Run(); | 573 run_loop.Run(); |
574 | 574 |
575 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); | 575 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); |
576 } | 576 } |
577 } | 577 } |
578 | 578 |
579 // This tests that no preemptive trace is triggered with 0 chance set. | |
580 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, | |
581 PreemptiveNotTriggerWithZeroChance) { | |
582 { | |
583 SetupBackgroundTracingManager(); | |
584 | |
585 base::RunLoop run_loop; | |
586 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | |
587 (base::Closure())); | |
588 | |
589 base::DictionaryValue dict; | |
590 | |
591 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | |
592 dict.SetString("category", "BENCHMARK"); | |
593 | |
594 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | |
595 { | |
596 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | |
597 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); | |
598 rules_dict->SetString("trigger_name", "preemptive_test"); | |
599 rules_dict->SetDouble("trigger_chance", 0.0); | |
600 rules_list->Append(rules_dict.Pass()); | |
601 } | |
602 dict.Set("configs", rules_list.Pass()); | |
603 | |
604 scoped_ptr<BackgroundTracingConfig> config( | |
605 BackgroundTracingConfigImpl::FromDict(&dict)); | |
606 | |
607 EXPECT_TRUE(config); | |
608 | |
609 content::BackgroundTracingManager::TriggerHandle handle = | |
610 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | |
611 "preemptive_test"); | |
612 | |
613 BackgroundTracingManager::GetInstance()->SetActiveScenario( | |
614 config.Pass(), upload_config_wrapper.get_receive_callback(), | |
615 BackgroundTracingManager::NO_DATA_FILTERING); | |
616 | |
617 BackgroundTracingManager::GetInstance()->WhenIdle( | |
618 base::Bind(&DisableScenarioWhenIdle)); | |
619 | |
620 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | |
621 handle, | |
622 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); | |
623 | |
624 run_loop.Run(); | |
625 | |
626 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); | |
627 } | |
628 } | |
629 | |
630 // This tests that no preemptive trace is triggered with 0 chance set. | |
shatch
2015/10/30 15:50:28
nit: reactive
oystein (OOO til 10th of July)
2015/10/30 19:11:43
Done.
| |
631 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, | |
632 ReactiveNotTriggerWithZeroChance) { | |
633 { | |
634 SetupBackgroundTracingManager(); | |
635 | |
636 base::RunLoop run_loop; | |
637 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | |
638 (base::Closure())); | |
639 | |
640 base::DictionaryValue dict; | |
641 | |
642 dict.SetString("mode", "REACTIVE_TRACING_MODE"); | |
643 | |
644 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | |
645 { | |
646 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | |
647 rules_dict->SetString("rule", | |
648 "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); | |
649 rules_dict->SetString("trigger_name", "reactive_test1"); | |
650 rules_dict->SetString("category", "BENCHMARK"); | |
651 rules_dict->SetDouble("trigger_chance", 0.0); | |
652 | |
653 rules_list->Append(rules_dict.Pass()); | |
654 } | |
655 dict.Set("configs", rules_list.Pass()); | |
656 | |
657 scoped_ptr<BackgroundTracingConfig> config( | |
658 BackgroundTracingConfigImpl::FromDict(&dict)); | |
659 | |
660 EXPECT_TRUE(config); | |
661 | |
662 content::BackgroundTracingManager::TriggerHandle handle = | |
663 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | |
664 "preemptive_test"); | |
665 | |
666 BackgroundTracingManager::GetInstance()->SetActiveScenario( | |
667 config.Pass(), upload_config_wrapper.get_receive_callback(), | |
668 BackgroundTracingManager::NO_DATA_FILTERING); | |
669 | |
670 BackgroundTracingManager::GetInstance()->WhenIdle( | |
671 base::Bind(&DisableScenarioWhenIdle)); | |
672 | |
673 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | |
674 handle, | |
675 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); | |
676 | |
677 run_loop.Run(); | |
678 | |
679 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); | |
680 } | |
681 } | |
682 | |
579 // This tests that histogram triggers for preemptive mode configs. | 683 // This tests that histogram triggers for preemptive mode configs. |
580 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, | 684 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
581 ReceiveTraceSucceedsOnHigherHistogramSample) { | 685 ReceiveTraceSucceedsOnHigherHistogramSample) { |
582 { | 686 { |
583 SetupBackgroundTracingManager(); | 687 SetupBackgroundTracingManager(); |
584 | 688 |
585 base::RunLoop run_loop; | 689 base::RunLoop run_loop; |
586 | 690 |
587 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 691 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
588 run_loop.QuitClosure()); | 692 run_loop.QuitClosure()); |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
908 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1012 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
909 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); | 1013 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); |
910 | 1014 |
911 run_loop.Run(); | 1015 run_loop.Run(); |
912 | 1016 |
913 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); | 1017 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); |
914 } | 1018 } |
915 } | 1019 } |
916 | 1020 |
917 } // namespace content | 1021 } // namespace content |
OLD | NEW |