Chromium Code Reviews| 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 "apps/benchmark/measurements.h" | 5 #include "apps/benchmark/measurements.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 namespace benchmark { | 11 namespace benchmark { |
| 12 namespace { | 12 namespace { |
| 13 | 13 |
| 14 base::TimeTicks Ticks(int64 value) { | 14 base::TimeTicks Ticks(int64 value) { |
| 15 return base::TimeTicks::FromInternalValue(value); | 15 return base::TimeTicks::FromInternalValue(value); |
| 16 } | 16 } |
| 17 | 17 |
| 18 base::TimeDelta Delta(int64 value) { | 18 base::TimeDelta Delta(int64 value) { |
| 19 return base::TimeDelta::FromInternalValue(value); | 19 return base::TimeDelta::FromInternalValue(value); |
| 20 } | 20 } |
| 21 | 21 |
| 22 class MeasurementsTest : public ::testing::Test { | 22 class MeasurementsTest : public ::testing::Test { |
| 23 protected: | 23 protected: |
| 24 void SetUp() override { | 24 void SetUp() override { |
| 25 events_.resize(8); | 25 events_.resize(11); |
| 26 events_[0] = Event(EventType::COMPLETE, "a", "some", Ticks(10), Delta(2)); | 26 events_[0] = Event(EventType::COMPLETE, "a", "some", Ticks(10), Delta(2)); |
| 27 events_[1] = Event(EventType::COMPLETE, "a", "some", Ticks(11), Delta(4)); | 27 events_[1] = Event(EventType::COMPLETE, "a", "some", Ticks(11), Delta(4)); |
| 28 events_[2] = Event(EventType::COMPLETE, "a", "other", Ticks(12), Delta(8)); | 28 events_[2] = Event(EventType::COMPLETE, "a", "other", Ticks(12), Delta(8)); |
| 29 events_[3] = Event(EventType::COMPLETE, "b", "some", Ticks(3), Delta(16)); | 29 events_[3] = Event(EventType::COMPLETE, "b", "some", Ticks(3), Delta(16)); |
| 30 events_[4] = Event(EventType::COMPLETE, "b", "some", Ticks(13), Delta(32)); | 30 events_[4] = Event(EventType::COMPLETE, "b", "some", Ticks(13), Delta(32)); |
| 31 events_[5] = | 31 |
| 32 events_[5] = Event(EventType::COMPLETE, "c", "some", Ticks(14), Delta(10)); | |
| 33 events_[6] = Event(EventType::COMPLETE, "c", "some", Ticks(16), Delta(11)); | |
| 34 events_[7] = Event(EventType::COMPLETE, "c", "some", Ticks(18), Delta(12)); | |
| 35 | |
| 36 events_[8] = | |
| 32 Event(EventType::INSTANT, "instant", "another", Ticks(20), Delta(0)); | 37 Event(EventType::INSTANT, "instant", "another", Ticks(20), Delta(0)); |
| 33 events_[6] = Event(EventType::INSTANT, "multi_occurence", "another", | 38 events_[9] = Event(EventType::INSTANT, "multi_occurence", "another", |
| 34 Ticks(30), Delta(0)); | 39 Ticks(30), Delta(0)); |
| 35 events_[7] = Event(EventType::INSTANT, "multi_occurence", "another", | 40 events_[10] = Event(EventType::INSTANT, "multi_occurence", "another", |
| 36 Ticks(40), Delta(0)); | 41 Ticks(40), Delta(0)); |
| 37 | 42 |
| 38 reversed_ = events_; | 43 reversed_ = events_; |
| 39 reverse(reversed_.begin(), reversed_.end()); | 44 reverse(reversed_.begin(), reversed_.end()); |
| 40 } | 45 } |
| 41 | 46 |
| 42 std::vector<Event> events_; | 47 std::vector<Event> events_; |
| 43 std::vector<Event> reversed_; | 48 std::vector<Event> reversed_; |
| 44 }; | 49 }; |
| 45 | 50 |
| 46 TEST_F(MeasurementsTest, MeasureTimeUntil) { | 51 TEST_F(MeasurementsTest, MeasureTimeUntil) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 130 EventSpec("a", "other")))); | 135 EventSpec("a", "other")))); |
| 131 | 136 |
| 132 EXPECT_DOUBLE_EQ(0.024, | 137 EXPECT_DOUBLE_EQ(0.024, |
| 133 regular.Measure(Measurement(MeasurementType::AVG_DURATION, | 138 regular.Measure(Measurement(MeasurementType::AVG_DURATION, |
| 134 EventSpec("b", "some")))); | 139 EventSpec("b", "some")))); |
| 135 EXPECT_DOUBLE_EQ(0.024, | 140 EXPECT_DOUBLE_EQ(0.024, |
| 136 reversed.Measure(Measurement(MeasurementType::AVG_DURATION, | 141 reversed.Measure(Measurement(MeasurementType::AVG_DURATION, |
| 137 EventSpec("b", "some")))); | 142 EventSpec("b", "some")))); |
| 138 } | 143 } |
| 139 | 144 |
| 145 TEST_F(MeasurementsTest, MeasurePercentileDuration) { | |
| 146 // The results should be the same regardless of the order of events. | |
| 147 Measurements regular(events_, base::TimeTicks::FromInternalValue(2)); | |
| 148 Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(2)); | |
| 149 | |
| 150 Measurement measurement(MeasurementType::PERCENTILE_DURATION, | |
| 151 EventSpec("c", "some")); | |
| 152 measurement.param = 0.10; | |
| 153 EXPECT_DOUBLE_EQ(0.010, regular.Measure(measurement)); | |
| 154 measurement.param = 0.50; | |
| 155 EXPECT_DOUBLE_EQ(0.011, regular.Measure(measurement)); | |
| 156 measurement.param = 0.90; | |
| 157 EXPECT_DOUBLE_EQ(0.012, regular.Measure(measurement)); | |
| 158 | |
| 159 measurement.param = 0.10; | |
| 160 EXPECT_DOUBLE_EQ(0.010, reversed.Measure(measurement)); | |
| 161 measurement.param = 0.50; | |
| 162 EXPECT_DOUBLE_EQ(0.011, reversed.Measure(measurement)); | |
| 163 measurement.param = 0.90; | |
| 164 EXPECT_DOUBLE_EQ(0.012, reversed.Measure(measurement)); | |
| 165 | |
| 166 measurement.param = 1.0; | |
| 167 EXPECT_DOUBLE_EQ(0.012, regular.Measure(measurement)); | |
|
ppi
2015/10/12 23:15:20
Please make the measurements on the reversed list
zra
2015/10/13 03:35:39
Done.
| |
| 168 measurement.param = 0.0; | |
| 169 EXPECT_DOUBLE_EQ(0.010, regular.Measure(measurement)); | |
| 170 } | |
| 171 | |
| 140 TEST_F(MeasurementsTest, NoMatchingEvent) { | 172 TEST_F(MeasurementsTest, NoMatchingEvent) { |
| 141 // The results should be the same regardless of the order of events. | 173 // The results should be the same regardless of the order of events. |
| 142 Measurements empty(std::vector<Event>(), | 174 Measurements empty(std::vector<Event>(), |
| 143 base::TimeTicks::FromInternalValue(0)); | 175 base::TimeTicks::FromInternalValue(0)); |
| 144 Measurements regular(events_, base::TimeTicks::FromInternalValue(0)); | 176 Measurements regular(events_, base::TimeTicks::FromInternalValue(0)); |
| 145 Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(0)); | 177 Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(0)); |
| 146 | 178 |
| 147 EXPECT_DOUBLE_EQ(-1.0, | 179 EXPECT_DOUBLE_EQ(-1.0, |
| 148 empty.Measure(Measurement(MeasurementType::AVG_DURATION, | 180 empty.Measure(Measurement(MeasurementType::AVG_DURATION, |
| 149 EventSpec("miss", "cat")))); | 181 EventSpec("miss", "cat")))); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 160 regular.Measure(Measurement(MeasurementType::TIME_UNTIL, | 192 regular.Measure(Measurement(MeasurementType::TIME_UNTIL, |
| 161 EventSpec("miss", "cat")))); | 193 EventSpec("miss", "cat")))); |
| 162 EXPECT_DOUBLE_EQ(-1.0, | 194 EXPECT_DOUBLE_EQ(-1.0, |
| 163 reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, | 195 reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, |
| 164 EventSpec("miss", "cat")))); | 196 EventSpec("miss", "cat")))); |
| 165 } | 197 } |
| 166 | 198 |
| 167 } // namespace | 199 } // namespace |
| 168 | 200 |
| 169 } // namespace benchmark | 201 } // namespace benchmark |
| OLD | NEW |