| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/test/trace_event_analyzer.h" | 6 #include "base/test/trace_event_analyzer.h" |
| 7 #include "testing/gmock/include/gmock/gmock.h" | 7 #include "testing/gmock/include/gmock/gmock.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 namespace trace_analyzer { | 10 namespace trace_analyzer { |
| (...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 | 637 |
| 638 // Test GetRateStats. | 638 // Test GetRateStats. |
| 639 TEST_F(TraceEventAnalyzerTest, RateStats) { | 639 TEST_F(TraceEventAnalyzerTest, RateStats) { |
| 640 std::vector<TraceEvent> events; | 640 std::vector<TraceEvent> events; |
| 641 events.reserve(100); | 641 events.reserve(100); |
| 642 TraceEventVector event_ptrs; | 642 TraceEventVector event_ptrs; |
| 643 TraceEvent event; | 643 TraceEvent event; |
| 644 event.timestamp = 0.0; | 644 event.timestamp = 0.0; |
| 645 double little_delta = 1.0; | 645 double little_delta = 1.0; |
| 646 double big_delta = 10.0; | 646 double big_delta = 10.0; |
| 647 double tiny_delta = 0.1; |
| 647 RateStats stats; | 648 RateStats stats; |
| 649 RateStatsOptions options; |
| 648 | 650 |
| 651 // Insert 10 events, each apart by little_delta. |
| 649 for (int i = 0; i < 10; ++i) { | 652 for (int i = 0; i < 10; ++i) { |
| 650 event.timestamp += little_delta; | 653 event.timestamp += little_delta; |
| 651 events.push_back(event); | 654 events.push_back(event); |
| 652 event_ptrs.push_back(&events.back()); | 655 event_ptrs.push_back(&events.back()); |
| 653 } | 656 } |
| 654 | 657 |
| 655 ASSERT_TRUE(GetRateStats(event_ptrs, &stats)); | 658 ASSERT_TRUE(GetRateStats(event_ptrs, &stats, NULL)); |
| 656 EXPECT_EQ(little_delta, stats.mean_us); | 659 EXPECT_EQ(little_delta, stats.mean_us); |
| 657 EXPECT_EQ(little_delta, stats.min_us); | 660 EXPECT_EQ(little_delta, stats.min_us); |
| 658 EXPECT_EQ(little_delta, stats.max_us); | 661 EXPECT_EQ(little_delta, stats.max_us); |
| 659 EXPECT_EQ(0.0, stats.standard_deviation_us); | 662 EXPECT_EQ(0.0, stats.standard_deviation_us); |
| 660 | 663 |
| 664 // Add an event apart by big_delta. |
| 661 event.timestamp += big_delta; | 665 event.timestamp += big_delta; |
| 662 events.push_back(event); | 666 events.push_back(event); |
| 663 event_ptrs.push_back(&events.back()); | 667 event_ptrs.push_back(&events.back()); |
| 664 | 668 |
| 665 ASSERT_TRUE(GetRateStats(event_ptrs, &stats)); | 669 ASSERT_TRUE(GetRateStats(event_ptrs, &stats, NULL)); |
| 666 EXPECT_LT(little_delta, stats.mean_us); | 670 EXPECT_LT(little_delta, stats.mean_us); |
| 667 EXPECT_EQ(little_delta, stats.min_us); | 671 EXPECT_EQ(little_delta, stats.min_us); |
| 668 EXPECT_EQ(big_delta, stats.max_us); | 672 EXPECT_EQ(big_delta, stats.max_us); |
| 669 EXPECT_LT(0.0, stats.standard_deviation_us); | 673 EXPECT_LT(0.0, stats.standard_deviation_us); |
| 670 | 674 |
| 675 // Trim off the biggest delta and verify stats. |
| 676 options.trim_min = 0; |
| 677 options.trim_max = 1; |
| 678 ASSERT_TRUE(GetRateStats(event_ptrs, &stats, &options)); |
| 679 EXPECT_EQ(little_delta, stats.mean_us); |
| 680 EXPECT_EQ(little_delta, stats.min_us); |
| 681 EXPECT_EQ(little_delta, stats.max_us); |
| 682 EXPECT_EQ(0.0, stats.standard_deviation_us); |
| 683 |
| 684 // Add an event apart by tiny_delta. |
| 685 event.timestamp += tiny_delta; |
| 686 events.push_back(event); |
| 687 event_ptrs.push_back(&events.back()); |
| 688 |
| 689 // Trim off both the biggest and tiniest delta and verify stats. |
| 690 options.trim_min = 1; |
| 691 options.trim_max = 1; |
| 692 ASSERT_TRUE(GetRateStats(event_ptrs, &stats, &options)); |
| 693 EXPECT_EQ(little_delta, stats.mean_us); |
| 694 EXPECT_EQ(little_delta, stats.min_us); |
| 695 EXPECT_EQ(little_delta, stats.max_us); |
| 696 EXPECT_EQ(0.0, stats.standard_deviation_us); |
| 697 |
| 698 // Verify smallest allowed number of events. |
| 671 TraceEventVector few_event_ptrs; | 699 TraceEventVector few_event_ptrs; |
| 672 few_event_ptrs.push_back(&event); | 700 few_event_ptrs.push_back(&event); |
| 673 few_event_ptrs.push_back(&event); | 701 few_event_ptrs.push_back(&event); |
| 674 ASSERT_FALSE(GetRateStats(few_event_ptrs, &stats)); | 702 ASSERT_FALSE(GetRateStats(few_event_ptrs, &stats, NULL)); |
| 675 few_event_ptrs.push_back(&event); | 703 few_event_ptrs.push_back(&event); |
| 676 ASSERT_TRUE(GetRateStats(few_event_ptrs, &stats)); | 704 ASSERT_TRUE(GetRateStats(few_event_ptrs, &stats, NULL)); |
| 705 |
| 706 // Trim off more than allowed and verify failure. |
| 707 options.trim_min = 0; |
| 708 options.trim_max = 1; |
| 709 ASSERT_FALSE(GetRateStats(few_event_ptrs, &stats, &options)); |
| 677 } | 710 } |
| 678 | 711 |
| 679 // Test FindFirstOf and FindLastOf. | 712 // Test FindFirstOf and FindLastOf. |
| 680 TEST_F(TraceEventAnalyzerTest, FindOf) { | 713 TEST_F(TraceEventAnalyzerTest, FindOf) { |
| 681 size_t num_events = 100; | 714 size_t num_events = 100; |
| 682 size_t index = 0; | 715 size_t index = 0; |
| 683 TraceEventVector event_ptrs; | 716 TraceEventVector event_ptrs; |
| 684 EXPECT_FALSE(FindFirstOf(event_ptrs, Query::Bool(true), 0, &index)); | 717 EXPECT_FALSE(FindFirstOf(event_ptrs, Query::Bool(true), 0, &index)); |
| 685 EXPECT_FALSE(FindFirstOf(event_ptrs, Query::Bool(true), 10, &index)); | 718 EXPECT_FALSE(FindFirstOf(event_ptrs, Query::Bool(true), 10, &index)); |
| 686 EXPECT_FALSE(FindLastOf(event_ptrs, Query::Bool(true), 0, &index)); | 719 EXPECT_FALSE(FindLastOf(event_ptrs, Query::Bool(true), 0, &index)); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 785 EXPECT_EQ(num_events, CountMatches(event_ptrs, Query::Bool(true))); | 818 EXPECT_EQ(num_events, CountMatches(event_ptrs, Query::Bool(true))); |
| 786 EXPECT_EQ(num_events - 1, CountMatches(event_ptrs, Query::Bool(true), | 819 EXPECT_EQ(num_events - 1, CountMatches(event_ptrs, Query::Bool(true), |
| 787 1, num_events)); | 820 1, num_events)); |
| 788 EXPECT_EQ(1u, CountMatches(event_ptrs, query_one)); | 821 EXPECT_EQ(1u, CountMatches(event_ptrs, query_one)); |
| 789 EXPECT_EQ(num_events - 1, CountMatches(event_ptrs, !query_one)); | 822 EXPECT_EQ(num_events - 1, CountMatches(event_ptrs, !query_one)); |
| 790 EXPECT_EQ(num_named, CountMatches(event_ptrs, query_named)); | 823 EXPECT_EQ(num_named, CountMatches(event_ptrs, query_named)); |
| 791 } | 824 } |
| 792 | 825 |
| 793 | 826 |
| 794 } // namespace trace_analyzer | 827 } // namespace trace_analyzer |
| OLD | NEW |