| 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/metrics_log_base.h" | 5 #include "components/metrics/metrics_log_base.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/metrics/bucket_ranges.h" | 10 #include "base/metrics/bucket_ranges.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 MetricsLogBase log1("id", 0, MetricsLogBase::ONGOING_LOG, "1.2.3"); | 35 MetricsLogBase log1("id", 0, MetricsLogBase::ONGOING_LOG, "1.2.3"); |
| 36 EXPECT_EQ(MetricsLogBase::ONGOING_LOG, log1.log_type()); | 36 EXPECT_EQ(MetricsLogBase::ONGOING_LOG, log1.log_type()); |
| 37 | 37 |
| 38 MetricsLogBase log2("id", 0, MetricsLogBase::INITIAL_STABILITY_LOG, "1.2.3"); | 38 MetricsLogBase log2("id", 0, MetricsLogBase::INITIAL_STABILITY_LOG, "1.2.3"); |
| 39 EXPECT_EQ(MetricsLogBase::INITIAL_STABILITY_LOG, log2.log_type()); | 39 EXPECT_EQ(MetricsLogBase::INITIAL_STABILITY_LOG, log2.log_type()); |
| 40 } | 40 } |
| 41 | 41 |
| 42 TEST(MetricsLogBaseTest, EmptyRecord) { | 42 TEST(MetricsLogBaseTest, EmptyRecord) { |
| 43 MetricsLogBase log("totally bogus client ID", 137, | 43 MetricsLogBase log("totally bogus client ID", 137, |
| 44 MetricsLogBase::ONGOING_LOG, "bogus version"); | 44 MetricsLogBase::ONGOING_LOG, "bogus version"); |
| 45 log.set_hardware_class("sample-class"); | |
| 46 log.CloseLog(); | 45 log.CloseLog(); |
| 47 | 46 |
| 48 std::string encoded; | 47 std::string encoded; |
| 49 log.GetEncodedLog(&encoded); | 48 log.GetEncodedLog(&encoded); |
| 50 | 49 |
| 51 // A couple of fields are hard to mock, so these will be copied over directly | 50 // A couple of fields are hard to mock, so these will be copied over directly |
| 52 // for the expected output. | 51 // for the expected output. |
| 53 metrics::ChromeUserMetricsExtension parsed; | 52 metrics::ChromeUserMetricsExtension parsed; |
| 54 ASSERT_TRUE(parsed.ParseFromString(encoded)); | 53 ASSERT_TRUE(parsed.ParseFromString(encoded)); |
| 55 | 54 |
| 56 metrics::ChromeUserMetricsExtension expected; | 55 metrics::ChromeUserMetricsExtension expected; |
| 57 expected.set_client_id(5217101509553811875); // Hashed bogus client ID | 56 expected.set_client_id(5217101509553811875); // Hashed bogus client ID |
| 58 expected.set_session_id(137); | 57 expected.set_session_id(137); |
| 59 expected.mutable_system_profile()->set_build_timestamp( | 58 expected.mutable_system_profile()->set_build_timestamp( |
| 60 parsed.system_profile().build_timestamp()); | 59 parsed.system_profile().build_timestamp()); |
| 61 expected.mutable_system_profile()->set_app_version("bogus version"); | 60 expected.mutable_system_profile()->set_app_version("bogus version"); |
| 62 expected.mutable_system_profile()->mutable_hardware()->set_hardware_class( | |
| 63 "sample-class"); | |
| 64 | 61 |
| 65 EXPECT_EQ(expected.SerializeAsString(), encoded); | 62 EXPECT_EQ(expected.SerializeAsString(), encoded); |
| 66 } | 63 } |
| 67 | 64 |
| 68 TEST(MetricsLogBaseTest, HistogramBucketFields) { | 65 TEST(MetricsLogBaseTest, HistogramBucketFields) { |
| 69 // Create buckets: 1-5, 5-7, 7-8, 8-9, 9-10, 10-11, 11-12. | 66 // Create buckets: 1-5, 5-7, 7-8, 8-9, 9-10, 10-11, 11-12. |
| 70 base::BucketRanges ranges(8); | 67 base::BucketRanges ranges(8); |
| 71 ranges.set_range(0, 1); | 68 ranges.set_range(0, 1); |
| 72 ranges.set_range(1, 5); | 69 ranges.set_range(1, 5); |
| 73 ranges.set_range(2, 7); | 70 ranges.set_range(2, 7); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 EXPECT_FALSE(histogram_proto.bucket(3).has_max()); | 113 EXPECT_FALSE(histogram_proto.bucket(3).has_max()); |
| 117 EXPECT_EQ(10, histogram_proto.bucket(3).min()); | 114 EXPECT_EQ(10, histogram_proto.bucket(3).min()); |
| 118 | 115 |
| 119 // 11-12 becomes /-12 (last record must keep max, min is same as max - 1). | 116 // 11-12 becomes /-12 (last record must keep max, min is same as max - 1). |
| 120 EXPECT_FALSE(histogram_proto.bucket(4).has_min()); | 117 EXPECT_FALSE(histogram_proto.bucket(4).has_min()); |
| 121 EXPECT_TRUE(histogram_proto.bucket(4).has_max()); | 118 EXPECT_TRUE(histogram_proto.bucket(4).has_max()); |
| 122 EXPECT_EQ(12, histogram_proto.bucket(4).max()); | 119 EXPECT_EQ(12, histogram_proto.bucket(4).max()); |
| 123 } | 120 } |
| 124 | 121 |
| 125 } // namespace metrics | 122 } // namespace metrics |
| OLD | NEW |