| 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 |