OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/metrics/serialization/serialization_utils.h" | 5 #include "components/metrics/serialization/serialization_utils.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 | 121 |
122 int32_t message_size = message.length() + sizeof(int32_t); | 122 int32_t message_size = message.length() + sizeof(int32_t); |
123 test_file.WriteAtCurrentPos(reinterpret_cast<const char*>(&message_size), | 123 test_file.WriteAtCurrentPos(reinterpret_cast<const char*>(&message_size), |
124 sizeof(message_size)); | 124 sizeof(message_size)); |
125 test_file.WriteAtCurrentPos(message.c_str(), message.length()); | 125 test_file.WriteAtCurrentPos(message.c_str(), message.length()); |
126 test_file.Close(); | 126 test_file.Close(); |
127 | 127 |
128 std::unique_ptr<MetricSample> crash = MetricSample::CrashSample("test"); | 128 std::unique_ptr<MetricSample> crash = MetricSample::CrashSample("test"); |
129 SerializationUtils::WriteMetricToFile(*crash.get(), filename); | 129 SerializationUtils::WriteMetricToFile(*crash.get(), filename); |
130 | 130 |
131 ScopedVector<MetricSample> samples; | 131 std::vector<std::unique_ptr<MetricSample>> samples; |
132 SerializationUtils::ReadAndTruncateMetricsFromFile(filename, &samples); | 132 SerializationUtils::ReadAndTruncateMetricsFromFile(filename, &samples); |
133 ASSERT_EQ(size_t(1), samples.size()); | 133 ASSERT_EQ(size_t(1), samples.size()); |
134 ASSERT_TRUE(samples[0] != NULL); | 134 ASSERT_TRUE(samples[0].get() != nullptr); |
135 EXPECT_TRUE(crash->IsEqual(*samples[0])); | 135 EXPECT_TRUE(crash->IsEqual(*samples[0])); |
136 } | 136 } |
137 | 137 |
138 TEST_F(SerializationUtilsTest, WriteReadTest) { | 138 TEST_F(SerializationUtilsTest, WriteReadTest) { |
139 std::unique_ptr<MetricSample> hist = | 139 std::unique_ptr<MetricSample> hist = |
140 MetricSample::HistogramSample("myhist", 1, 2, 3, 4); | 140 MetricSample::HistogramSample("myhist", 1, 2, 3, 4); |
141 std::unique_ptr<MetricSample> crash = MetricSample::CrashSample("mycrash"); | 141 std::unique_ptr<MetricSample> crash = MetricSample::CrashSample("mycrash"); |
142 std::unique_ptr<MetricSample> lhist = | 142 std::unique_ptr<MetricSample> lhist = |
143 MetricSample::LinearHistogramSample("linear", 1, 10); | 143 MetricSample::LinearHistogramSample("linear", 1, 10); |
144 std::unique_ptr<MetricSample> shist = | 144 std::unique_ptr<MetricSample> shist = |
145 MetricSample::SparseHistogramSample("mysparse", 30); | 145 MetricSample::SparseHistogramSample("mysparse", 30); |
146 std::unique_ptr<MetricSample> action = | 146 std::unique_ptr<MetricSample> action = |
147 MetricSample::UserActionSample("myaction"); | 147 MetricSample::UserActionSample("myaction"); |
148 | 148 |
149 SerializationUtils::WriteMetricToFile(*hist.get(), filename); | 149 SerializationUtils::WriteMetricToFile(*hist.get(), filename); |
150 SerializationUtils::WriteMetricToFile(*crash.get(), filename); | 150 SerializationUtils::WriteMetricToFile(*crash.get(), filename); |
151 SerializationUtils::WriteMetricToFile(*lhist.get(), filename); | 151 SerializationUtils::WriteMetricToFile(*lhist.get(), filename); |
152 SerializationUtils::WriteMetricToFile(*shist.get(), filename); | 152 SerializationUtils::WriteMetricToFile(*shist.get(), filename); |
153 SerializationUtils::WriteMetricToFile(*action.get(), filename); | 153 SerializationUtils::WriteMetricToFile(*action.get(), filename); |
154 ScopedVector<MetricSample> vect; | 154 std::vector<std::unique_ptr<MetricSample>> vect; |
155 SerializationUtils::ReadAndTruncateMetricsFromFile(filename, &vect); | 155 SerializationUtils::ReadAndTruncateMetricsFromFile(filename, &vect); |
156 ASSERT_EQ(vect.size(), size_t(5)); | 156 ASSERT_EQ(vect.size(), size_t(5)); |
157 for (MetricSample* sample : vect) { | 157 for (auto& sample : vect) { |
158 ASSERT_NE(nullptr, sample); | 158 ASSERT_NE(nullptr, sample.get()); |
159 } | 159 } |
160 EXPECT_TRUE(hist->IsEqual(*vect[0])); | 160 EXPECT_TRUE(hist->IsEqual(*vect[0])); |
161 EXPECT_TRUE(crash->IsEqual(*vect[1])); | 161 EXPECT_TRUE(crash->IsEqual(*vect[1])); |
162 EXPECT_TRUE(lhist->IsEqual(*vect[2])); | 162 EXPECT_TRUE(lhist->IsEqual(*vect[2])); |
163 EXPECT_TRUE(shist->IsEqual(*vect[3])); | 163 EXPECT_TRUE(shist->IsEqual(*vect[3])); |
164 EXPECT_TRUE(action->IsEqual(*vect[4])); | 164 EXPECT_TRUE(action->IsEqual(*vect[4])); |
165 | 165 |
166 int64_t size = 0; | 166 int64_t size = 0; |
167 ASSERT_TRUE(base::GetFileSize(filepath, &size)); | 167 ASSERT_TRUE(base::GetFileSize(filepath, &size)); |
168 ASSERT_EQ(0, size); | 168 ASSERT_EQ(0, size); |
169 } | 169 } |
170 | 170 |
171 } // namespace | 171 } // namespace |
172 } // namespace metrics | 172 } // namespace metrics |
OLD | NEW |