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

Side by Side Diff: test/unittests/counters-unittest.cc

Issue 1125683004: Add aggregated memory histograms. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add comments Created 5 years, 7 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <vector>
6
7 #include "src/counters.h"
8 #include "src/handles-inl.h"
9 #include "src/objects-inl.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace v8 {
13 namespace internal {
14
15 namespace {
16
17 class MockHistogram : public Histogram {
18 public:
19 void AddSample(int value) { samples_.push_back(value); }
20 std::vector<int>* samples() { return &samples_; }
21
22 private:
23 std::vector<int> samples_;
24 };
25
26
27 class AggregatedMemoryHistogramTest : public ::testing::Test {
28 public:
29 AggregatedMemoryHistogramTest() {
30 aggregated_ = AggregatedMemoryHistogram<MockHistogram>(&mock_);
31 }
32 virtual ~AggregatedMemoryHistogramTest() {}
33
34 void AddSample(double current_ms, double current_value) {
35 aggregated_.AddSample(current_ms, current_value);
36 }
37
38 std::vector<int>* samples() { return mock_.samples(); }
39
40 private:
41 AggregatedMemoryHistogram<MockHistogram> aggregated_;
42 MockHistogram mock_;
43 };
44
45 } // namespace
46
47
48 TEST_F(AggregatedMemoryHistogramTest, OneSample1) {
49 FLAG_histogram_interval = 10;
50 AddSample(10, 1000);
51 AddSample(20, 1000);
52 EXPECT_EQ(1, samples()->size());
53 EXPECT_EQ(1000, (*samples())[0]);
54 }
55
56
57 TEST_F(AggregatedMemoryHistogramTest, OneSample2) {
58 FLAG_histogram_interval = 10;
59 AddSample(10, 500);
60 AddSample(20, 1000);
61 EXPECT_EQ(1, samples()->size());
62 EXPECT_EQ(750, (*samples())[0]);
63 }
64
65
66 TEST_F(AggregatedMemoryHistogramTest, OneSample3) {
67 FLAG_histogram_interval = 10;
68 AddSample(10, 500);
69 AddSample(15, 500);
70 AddSample(15, 1000);
71 AddSample(20, 1000);
72 EXPECT_EQ(1, samples()->size());
73 EXPECT_EQ(750, (*samples())[0]);
74 }
75
76
77 TEST_F(AggregatedMemoryHistogramTest, OneSample4) {
78 FLAG_histogram_interval = 10;
79 AddSample(10, 500);
80 AddSample(15, 750);
81 AddSample(20, 1000);
82 EXPECT_EQ(1, samples()->size());
83 EXPECT_EQ(750, (*samples())[0]);
84 }
85
86
87 TEST_F(AggregatedMemoryHistogramTest, TwoSamples1) {
88 FLAG_histogram_interval = 10;
89 AddSample(10, 1000);
90 AddSample(30, 1000);
91 EXPECT_EQ(2, samples()->size());
92 EXPECT_EQ(1000, (*samples())[0]);
93 EXPECT_EQ(1000, (*samples())[1]);
94 }
95
96
97 TEST_F(AggregatedMemoryHistogramTest, TwoSamples2) {
98 FLAG_histogram_interval = 10;
99 AddSample(10, 1000);
100 AddSample(20, 1000);
101 AddSample(30, 1000);
102 EXPECT_EQ(2, samples()->size());
103 EXPECT_EQ(1000, (*samples())[0]);
104 EXPECT_EQ(1000, (*samples())[1]);
105 }
106
107
108 TEST_F(AggregatedMemoryHistogramTest, TwoSamples3) {
109 FLAG_histogram_interval = 10;
110 AddSample(10, 1000);
111 AddSample(20, 1000);
112 AddSample(20, 500);
113 AddSample(30, 500);
114 EXPECT_EQ(2, samples()->size());
115 EXPECT_EQ(1000, (*samples())[0]);
116 EXPECT_EQ(500, (*samples())[1]);
117 }
118
119
120 TEST_F(AggregatedMemoryHistogramTest, TwoSamples4) {
121 FLAG_histogram_interval = 10;
122 AddSample(10, 1000);
123 AddSample(30, 0);
124 EXPECT_EQ(2, samples()->size());
125 EXPECT_EQ(750, (*samples())[0]);
126 EXPECT_EQ(250, (*samples())[1]);
127 }
128
129
130 TEST_F(AggregatedMemoryHistogramTest, TwoSamples5) {
131 FLAG_histogram_interval = 10;
132 AddSample(10, 0);
133 AddSample(30, 1000);
134 EXPECT_EQ(2, samples()->size());
135 EXPECT_EQ(250, (*samples())[0]);
136 EXPECT_EQ(750, (*samples())[1]);
137 }
138
139
140 TEST_F(AggregatedMemoryHistogramTest, TwoSamples6) {
141 FLAG_histogram_interval = 10;
142 AddSample(10, 0);
143 AddSample(15, 1000);
144 AddSample(30, 1000);
145 EXPECT_EQ(2, samples()->size());
146 EXPECT_EQ((500 + 1000) / 2, (*samples())[0]);
147 EXPECT_EQ(1000, (*samples())[1]);
148 }
149
150
151 TEST_F(AggregatedMemoryHistogramTest, TwoSamples7) {
152 FLAG_histogram_interval = 10;
153 AddSample(10, 0);
154 AddSample(15, 1000);
155 AddSample(25, 0);
156 AddSample(30, 1000);
157 EXPECT_EQ(2, samples()->size());
158 EXPECT_EQ((500 + 750) / 2, (*samples())[0]);
159 EXPECT_EQ((250 + 500) / 2, (*samples())[1]);
160 }
161
162
163 TEST_F(AggregatedMemoryHistogramTest, TwoSamples8) {
164 FLAG_histogram_interval = 10;
165 AddSample(10, 1000);
166 AddSample(15, 0);
167 AddSample(25, 1000);
168 AddSample(30, 0);
169 EXPECT_EQ(2, samples()->size());
170 EXPECT_EQ((500 + 250) / 2, (*samples())[0]);
171 EXPECT_EQ((750 + 500) / 2, (*samples())[1]);
172 }
173
174
175 TEST_F(AggregatedMemoryHistogramTest, ManySamples1) {
176 FLAG_histogram_interval = 10;
177 const int kMaxSamples = 1000;
178 AddSample(0, 0);
179 AddSample(10 * kMaxSamples, 10 * kMaxSamples);
180 EXPECT_EQ(kMaxSamples, samples()->size());
181 for (int i = 0; i < kMaxSamples; i++) {
182 EXPECT_EQ(i * 10 + 5, (*samples())[i]);
183 }
184 }
185
186
187 TEST_F(AggregatedMemoryHistogramTest, ManySamples2) {
188 FLAG_histogram_interval = 10;
189 const int kMaxSamples = 1000;
190 AddSample(0, 0);
191 AddSample(10 * (2 * kMaxSamples), 10 * (2 * kMaxSamples));
192 EXPECT_EQ(kMaxSamples, samples()->size());
193 for (int i = 0; i < kMaxSamples; i++) {
194 EXPECT_EQ(i * 10 + 5, (*samples())[i]);
195 }
196 }
197
198
199 } // namespace internal
200 } // namespace v8
OLDNEW
« src/counters.h ('K') | « src/heap/heap.cc ('k') | test/unittests/unittests.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698