From 21a021e800e95d440f19c9b89c01f97c355cab5f Mon Sep 17 00:00:00 2001 From: Alex Dale Date: Wed, 3 Nov 2021 17:24:34 -0700 Subject: [PATCH 1/2] Ran clang-format on the metrics directory. [ Merge of http://go/wvgerrit/137809 ] Bug: 204946540 Test: Metric unit tests Change-Id: Ibd68db73ea9ee64664d33c2cb8e8bb7c56674c27 --- .../cdm/metrics/include/counter_metric.h | 24 +- .../cdm/metrics/include/event_metric.h | 51 ++-- .../cdm/metrics/include/metrics_collections.h | 54 ++-- .../cdm/metrics/include/pow2bucket.h | 4 +- .../cdm/metrics/include/value_metric.h | 12 +- .../cdm/metrics/src/attribute_handler.cpp | 50 ++-- .../cdm/metrics/src/counter_metric.cpp | 2 +- .../cdm/metrics/src/event_metric.cpp | 6 +- .../cdm/metrics/src/metrics_collections.cpp | 61 ++-- .../cdm/metrics/src/timer_metric.cpp | 8 +- .../cdm/metrics/src/value_metric.cpp | 59 ++-- .../metrics/test/counter_metric_unittest.cpp | 11 +- .../metrics/test/distribution_unittest.cpp | 1 - .../metrics/test/event_metric_unittest.cpp | 18 +- .../metrics/test/metrics_collections_test.cpp | 246 ++++++++-------- .../test/metrics_collections_unittest.cpp | 265 +++++++++--------- 16 files changed, 431 insertions(+), 441 deletions(-) diff --git a/libwvdrmengine/cdm/metrics/include/counter_metric.h b/libwvdrmengine/cdm/metrics/include/counter_metric.h index 7540759c..317c35ad 100644 --- a/libwvdrmengine/cdm/metrics/include/counter_metric.h +++ b/libwvdrmengine/cdm/metrics/include/counter_metric.h @@ -37,7 +37,7 @@ class BaseCounterMetric { // Increment will look for an existing instance of the field names and // add the new value to the existing value. If the instance does not exist, // this method will create it. - void Increment(const std::string &counter_key, int64_t value); + void Increment(const std::string& counter_key, int64_t value); private: friend class CounterMetricTest; @@ -99,14 +99,13 @@ class CounterMetric : public BaseCounterMetric { void Increment(int64_t value, F1 field1 = util::Unused(), F2 field2 = util::Unused(), F3 field3 = util::Unused(), F4 field4 = util::Unused()) { - std::string key = - attribute_handler_.GetSerializedAttributes(field1, field2, - field3, field4); + std::string key = attribute_handler_.GetSerializedAttributes( + field1, field2, field3, field4); BaseCounterMetric::Increment(key, value); } - void ToProto(::google::protobuf::RepeatedPtrField - *counters) const; + void ToProto(::google::protobuf::RepeatedPtrField* + counters) const; private: friend class CounterMetricTest; @@ -120,13 +119,12 @@ class CounterMetric : public BaseCounterMetric { template <> inline void CounterMetric<0, util::Unused, 0, util::Unused, 0, util::Unused, 0, util::Unused>:: - ToProto(::google::protobuf::RepeatedPtrField - *counters) const { - + ToProto(::google::protobuf::RepeatedPtrField* + counters) const { const std::map* values = GetValues(); for (std::map::const_iterator it = values->begin(); it != values->end(); it++) { - drm_metrics::CounterMetric *new_counter = counters->Add(); + drm_metrics::CounterMetric* new_counter = counters->Add(); new_counter->set_count(it->second); } } @@ -134,12 +132,12 @@ inline void CounterMetric<0, util::Unused, 0, util::Unused, 0, util::Unused, 0, template inline void CounterMetric::ToProto( - ::google::protobuf::RepeatedPtrField - *counters) const { + ::google::protobuf::RepeatedPtrField* counters) + const { const std::map* values = GetValues(); for (std::map::const_iterator it = values->begin(); it != values->end(); it++) { - drm_metrics::CounterMetric *new_counter = counters->Add(); + drm_metrics::CounterMetric* new_counter = counters->Add(); if (!new_counter->mutable_attributes()->ParseFromString(it->first)) { LOGE("Failed to parse the attributes from a string."); } diff --git a/libwvdrmengine/cdm/metrics/include/event_metric.h b/libwvdrmengine/cdm/metrics/include/event_metric.h index dfa717d8..a87f2541 100644 --- a/libwvdrmengine/cdm/metrics/include/event_metric.h +++ b/libwvdrmengine/cdm/metrics/include/event_metric.h @@ -36,12 +36,12 @@ class BaseEventMetric { // Record will look for an existing instance of the Distribution identified // by the distribution_key string and update it. If the instance does // not exist, this will create it. - void Record(const std::string &distribution_key, double value); + void Record(const std::string& distribution_key, double value); // value_map_ contains a mapping from the string key (attribute name/values) // to the distribution instance which holds the metric information // (min, max, sum, etc.). - std::map value_map_; + std::map value_map_; private: friend class EventMetricTest; @@ -90,34 +90,33 @@ template * GetDistributions() const { + const std::map* GetDistributions() const { return &value_map_; }; void ToProto( - ::google::protobuf::RepeatedPtrField - *distributions_proto) const; + ::google::protobuf::RepeatedPtrField* + distributions_proto) const; private: friend class EventMetricTest; AttributeHandler attribute_handler_; inline void SetDistributionValues( - const Distribution &distribution, - drm_metrics::DistributionMetric *metric_proto) const { + const Distribution& distribution, + drm_metrics::DistributionMetric* metric_proto) const { metric_proto->set_mean(distribution.Mean()); metric_proto->set_operation_count(distribution.Count()); if (distribution.Count() > 1) { @@ -138,13 +137,14 @@ template <> inline void EventMetric<0, util::Unused, 0, util::Unused, 0, util::Unused, 0, util::Unused>:: ToProto( - ::google::protobuf::RepeatedPtrField - *distributions_proto) const { - const std::map* distributions - = GetDistributions(); - for (std::map::const_iterator it = - distributions->begin(); it != distributions->end(); it++) { - drm_metrics::DistributionMetric *new_metric = distributions_proto->Add(); + ::google::protobuf::RepeatedPtrField* + distributions_proto) const { + const std::map* distributions = + GetDistributions(); + for (std::map::const_iterator it = + distributions->begin(); + it != distributions->end(); it++) { + drm_metrics::DistributionMetric* new_metric = distributions_proto->Add(); SetDistributionValues(*it->second, new_metric); } } @@ -152,13 +152,14 @@ inline void EventMetric<0, util::Unused, 0, util::Unused, 0, util::Unused, 0, template inline void EventMetric::ToProto( - ::google::protobuf::RepeatedPtrField - *distributions_proto) const { - const std::map* distributions - = GetDistributions(); - for (std::map::const_iterator it = - distributions->begin(); it != distributions->end(); it++) { - drm_metrics::DistributionMetric *new_metric = distributions_proto->Add(); + ::google::protobuf::RepeatedPtrField* + distributions_proto) const { + const std::map* distributions = + GetDistributions(); + for (std::map::const_iterator it = + distributions->begin(); + it != distributions->end(); it++) { + drm_metrics::DistributionMetric* new_metric = distributions_proto->Add(); if (!new_metric->mutable_attributes()->ParseFromString(it->first)) { LOGE("Failed to parse the attributes from a string."); } diff --git a/libwvdrmengine/cdm/metrics/include/metrics_collections.h b/libwvdrmengine/cdm/metrics/include/metrics_collections.h index 1f556d89..9aaca0b9 100644 --- a/libwvdrmengine/cdm/metrics/include/metrics_collections.h +++ b/libwvdrmengine/cdm/metrics/include/metrics_collections.h @@ -73,8 +73,7 @@ const int kCdmSecurityLevelFieldNumber = ::drm_metrics::Attributes::kCdmSecurityLevelFieldNumber; const int kSecurityLevelFieldNumber = ::drm_metrics::Attributes::kSecurityLevelFieldNumber; -const int kLengthFieldNumber = - ::drm_metrics::Attributes::kLengthFieldNumber; +const int kLengthFieldNumber = ::drm_metrics::Attributes::kLengthFieldNumber; const int kEncryptAlgorithmFieldNumber = ::drm_metrics::Attributes::kEncryptionAlgorithmFieldNumber; const int kSigningAlgorithmFieldNumber = @@ -125,8 +124,8 @@ typedef enum OEMCryptoInitializationMode { // This class contains metrics for Crypto Session and OEM Crypto. class CryptoMetrics { public: - void Serialize(drm_metrics::WvCdmMetrics::CryptoMetrics *crypto_metrics) - const; + void Serialize( + drm_metrics::WvCdmMetrics::CryptoMetrics* crypto_metrics) const; /* CRYPTO SESSION */ // TODO(blueeyes): Convert this to crypto_session_default_security_level_. @@ -304,12 +303,12 @@ class SessionMetrics { // Sets the session id of the metrics group. This allows the session // id to be captured and reported as part of the collection of metrics. - void SetSessionId(const CdmSessionId &session_id) { + void SetSessionId(const CdmSessionId& session_id) { session_id_ = session_id; } // Returns the session id or an empty session id if it has not been set. - const CdmSessionId &GetSessionId() const { return session_id_; } + const CdmSessionId& GetSessionId() const { return session_id_; } // Marks the metrics object as completed and ready for serialization. void SetCompleted() { completed_ = true; } @@ -320,16 +319,16 @@ class SessionMetrics { // Returns a pointer to the crypto metrics belonging to the engine instance. // This instance retains ownership of the object. - CryptoMetrics *GetCryptoMetrics() { return &crypto_metrics_; } + CryptoMetrics* GetCryptoMetrics() { return &crypto_metrics_; } // Metrics collected at the session level. ValueMetric cdm_session_life_span_; // Milliseconds. EventMetric cdm_session_renew_key_; - CounterMetric + CounterMetric cdm_session_restore_offline_session_; - CounterMetric + CounterMetric cdm_session_restore_usage_session_; EventMetric @@ -342,12 +341,12 @@ class SessionMetrics { // Serialize the session metrics to the provided |metric_group|. // |metric_group| is owned by the caller and must not be null. - void Serialize(drm_metrics::WvCdmMetrics::SessionMetrics *session_metrics) - const; + void Serialize( + drm_metrics::WvCdmMetrics::SessionMetrics* session_metrics) const; private: void SerializeSessionMetrics( - drm_metrics::WvCdmMetrics::SessionMetrics *session_metrics) const; + drm_metrics::WvCdmMetrics::SessionMetrics* session_metrics) const; CdmSessionId session_id_; bool completed_; CryptoMetrics crypto_metrics_; @@ -375,8 +374,8 @@ class OemCryptoDynamicAdapterMetrics { // Serialize the session metrics to the provided |metric_group|. // |metric_group| is owned by the caller and must not be null. - void Serialize(drm_metrics::WvCdmMetrics::EngineMetrics *engine_metrics) - const; + void Serialize( + drm_metrics::WvCdmMetrics::EngineMetrics* engine_metrics) const; // Clears the existing metric values. void Clear(); @@ -397,7 +396,7 @@ class OemCryptoDynamicAdapterMetrics { // initialization is guaranteed to be threadsafe. We return the reference to // avoid non-guaranteed destructor order problems. Effectively, the destructor // is never run for the created instance. -OemCryptoDynamicAdapterMetrics &GetDynamicAdapterMetricsInstance(); +OemCryptoDynamicAdapterMetrics& GetDynamicAdapterMetricsInstance(); // This class contains engine-scoped metrics. All properties and // statistics related to operations within the engine, but outside @@ -428,18 +427,19 @@ class EngineMetrics { // Returns a pointer to the crypto metrics belonging to the engine instance. // The CryptoMetrics instance is still owned by this object and will exist // until this object is deleted. - CryptoMetrics *GetCryptoMetrics() { return &crypto_metrics_; } + CryptoMetrics* GetCryptoMetrics() { return &crypto_metrics_; } // Serialize engine and session metrics into a serialized WvCdmMetrics // instance and output that instance to the provided |engine_metrics|. // |engine_metrics| is owned by the caller and must NOT be null. - void Serialize(drm_metrics::WvCdmMetrics *engine_metrics) const; + void Serialize(drm_metrics::WvCdmMetrics* engine_metrics) const; - void SetAppPackageName(const std::string &app_package_name); + void SetAppPackageName(const std::string& app_package_name); // Metrics recorded at the engine level. - EventMetric cdm_engine_add_key_; + EventMetric + cdm_engine_add_key_; ValueMetric cdm_engine_cdm_version_; CounterMetric cdm_engine_close_session_; @@ -449,15 +449,15 @@ class EngineMetrics { cdm_engine_decrypt_; CounterMetric cdm_engine_find_session_for_key_; - EventMetric + EventMetric cdm_engine_generate_key_request_; EventMetric cdm_engine_get_provisioning_request_; CounterMetric cdm_engine_get_secure_stop_ids_; - EventMetric + EventMetric cdm_engine_get_usage_info_; EventMetric cdm_engine_handle_provisioning_response_; @@ -493,7 +493,7 @@ class EngineMetrics { std::string app_package_name_; void SerializeEngineMetrics( - drm_metrics::WvCdmMetrics::EngineMetrics *engine_metrics) const; + drm_metrics::WvCdmMetrics::EngineMetrics* engine_metrics) const; }; } // namespace metrics diff --git a/libwvdrmengine/cdm/metrics/include/pow2bucket.h b/libwvdrmengine/cdm/metrics/include/pow2bucket.h index 7ab06c00..bc5f3b6b 100644 --- a/libwvdrmengine/cdm/metrics/include/pow2bucket.h +++ b/libwvdrmengine/cdm/metrics/include/pow2bucket.h @@ -17,12 +17,12 @@ class Pow2Bucket { public: explicit Pow2Bucket(size_t value) : value_(GetLowerBucket(value)) {} - Pow2Bucket(const Pow2Bucket &value) : value_(value.value_) {} + Pow2Bucket(const Pow2Bucket& value) : value_(value.value_) {} size_t value() const { return value_; } // Support for converting to string. - friend std::ostream &operator<<(std::ostream &os, const Pow2Bucket &log) { + friend std::ostream& operator<<(std::ostream& os, const Pow2Bucket& log) { return os << log.value_; } diff --git a/libwvdrmengine/cdm/metrics/include/value_metric.h b/libwvdrmengine/cdm/metrics/include/value_metric.h index cd0f7048..abaa9056 100644 --- a/libwvdrmengine/cdm/metrics/include/value_metric.h +++ b/libwvdrmengine/cdm/metrics/include/value_metric.h @@ -19,7 +19,7 @@ namespace impl { // Helper function for setting a value in the proto. template -void SetValue(drm_metrics::ValueMetric *value_proto, const T &value); +void SetValue(drm_metrics::ValueMetric* value_proto, const T& value); } // namespace impl @@ -46,7 +46,7 @@ class ValueMetric { : error_code_(0), has_error_(false), has_value_(false) {} // Record the value of the metric. - void Record(const T &value) { + void Record(const T& value) { std::unique_lock lock(internal_lock_); value_ = value; has_value_ = true; @@ -65,7 +65,7 @@ class ValueMetric { std::unique_lock lock(internal_lock_); return has_value_; } - const T &GetValue() const { + const T& GetValue() const { std::unique_lock lock(internal_lock_); return value_; } @@ -88,14 +88,14 @@ class ValueMetric { // Returns a new ValueMetric proto containing the metric value or the // error code. If neither the error or value are set, it returns nullptr. - drm_metrics::ValueMetric *ToProto() const { + drm_metrics::ValueMetric* ToProto() const { std::unique_lock lock(internal_lock_); if (has_error_) { - drm_metrics::ValueMetric *value_proto = new drm_metrics::ValueMetric; + drm_metrics::ValueMetric* value_proto = new drm_metrics::ValueMetric; value_proto->set_error_code(error_code_); return value_proto; } else if (has_value_) { - drm_metrics::ValueMetric *value_proto = new drm_metrics::ValueMetric; + drm_metrics::ValueMetric* value_proto = new drm_metrics::ValueMetric; impl::SetValue(value_proto, value_); return value_proto; } diff --git a/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp b/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp index c7dc0d84..77c84631 100644 --- a/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp +++ b/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp @@ -15,97 +15,95 @@ namespace metrics { // template <> void SetAttributeField(const CdmResponseType &cdm_error, - drm_metrics::Attributes *attributes) { + CdmResponseType>(const CdmResponseType& cdm_error, + drm_metrics::Attributes* attributes) { attributes->set_error_code(cdm_error); } template <> void SetAttributeField( - const CdmSecurityLevel &cdm_security_level, - drm_metrics::Attributes *attributes) { + const CdmSecurityLevel& cdm_security_level, + drm_metrics::Attributes* attributes) { attributes->set_cdm_security_level(cdm_security_level); } template <> void SetAttributeField(const SecurityLevel &security_level, - drm_metrics::Attributes *attributes) { + SecurityLevel>(const SecurityLevel& security_level, + drm_metrics::Attributes* attributes) { attributes->set_security_level(security_level); } template <> void SetAttributeField(const bool &cdm_error, - drm_metrics::Attributes *attributes) { + bool>(const bool& cdm_error, + drm_metrics::Attributes* attributes) { attributes->set_error_code_bool(cdm_error); } template <> void SetAttributeField( - const OEMCryptoResult &oem_crypto_result, - drm_metrics::Attributes *attributes) { + const OEMCryptoResult& oem_crypto_result, + drm_metrics::Attributes* attributes) { attributes->set_oem_crypto_result(oem_crypto_result); } template <> void SetAttributeField( - const Pow2Bucket &pow2, drm_metrics::Attributes *attributes) { + const Pow2Bucket& pow2, drm_metrics::Attributes* attributes) { attributes->set_length(pow2.value()); } template <> void SetAttributeField( - const CdmEncryptionAlgorithm &encryption_algorithm, - drm_metrics::Attributes *attributes) { + const CdmEncryptionAlgorithm& encryption_algorithm, + drm_metrics::Attributes* attributes) { attributes->set_encryption_algorithm(encryption_algorithm); } template <> void SetAttributeField( - const CdmSigningAlgorithm &signing_algorithm, - drm_metrics::Attributes *attributes) { + const CdmSigningAlgorithm& signing_algorithm, + drm_metrics::Attributes* attributes) { attributes->set_signing_algorithm(signing_algorithm); } template <> void SetAttributeField( - const CdmKeyRequestType &key_request_type, - drm_metrics::Attributes *attributes) { + const CdmKeyRequestType& key_request_type, + drm_metrics::Attributes* attributes) { attributes->set_key_request_type(key_request_type); } template <> void SetAttributeField( - const CdmLicenseType &license_type, - drm_metrics::Attributes *attributes) { + CdmLicenseType>(const CdmLicenseType& license_type, + drm_metrics::Attributes* attributes) { attributes->set_license_type(license_type); } template <> void SetAttributeField( - const int32_t &error_detail, - drm_metrics::Attributes *attributes) { + int32_t>(const int32_t& error_detail, + drm_metrics::Attributes* attributes) { attributes->set_error_detail(error_detail); } template <> -void SetAttributeField<0, util::Unused>(const util::Unused &, - drm_metrics::Attributes *) { +void SetAttributeField<0, util::Unused>(const util::Unused&, + drm_metrics::Attributes*) { // Intentionally empty. } // Specializations only used by tests. template <> void SetAttributeField( - const int &cdm_error, drm_metrics::Attributes *attributes) { + const int& cdm_error, drm_metrics::Attributes* attributes) { attributes->set_error_code(cdm_error); } diff --git a/libwvdrmengine/cdm/metrics/src/counter_metric.cpp b/libwvdrmengine/cdm/metrics/src/counter_metric.cpp index 79390961..00fc27fe 100644 --- a/libwvdrmengine/cdm/metrics/src/counter_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/counter_metric.cpp @@ -10,7 +10,7 @@ namespace wvcdm { namespace metrics { -void BaseCounterMetric::Increment(const std::string &counter_key, +void BaseCounterMetric::Increment(const std::string& counter_key, int64_t value) { std::unique_lock lock(internal_lock_); diff --git a/libwvdrmengine/cdm/metrics/src/event_metric.cpp b/libwvdrmengine/cdm/metrics/src/event_metric.cpp index b6090292..d413cc3b 100644 --- a/libwvdrmengine/cdm/metrics/src/event_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/event_metric.cpp @@ -12,16 +12,16 @@ namespace metrics { BaseEventMetric::~BaseEventMetric() { std::unique_lock lock(internal_lock_); - for (std::map::iterator it = value_map_.begin(); + for (std::map::iterator it = value_map_.begin(); it != value_map_.end(); it++) { delete it->second; } } -void BaseEventMetric::Record(const std::string &key, double value) { +void BaseEventMetric::Record(const std::string& key, double value) { std::unique_lock lock(internal_lock_); - Distribution *distribution; + Distribution* distribution; if (value_map_.find(key) == value_map_.end()) { distribution = new Distribution(); diff --git a/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp b/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp index df02ec48..bf35be0f 100644 --- a/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp +++ b/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp @@ -16,12 +16,12 @@ namespace { // Helper struct for comparing session ids. struct CompareSessionIds { - const std::string &target_; + const std::string& target_; - CompareSessionIds(const wvcdm::CdmSessionId &target) : target_(target){}; + CompareSessionIds(const wvcdm::CdmSessionId& target) : target_(target){}; - bool operator()(const std::shared_ptr metrics) - const { + bool operator()( + const std::shared_ptr metrics) const { return metrics->GetSessionId() == target_; } }; @@ -31,8 +31,8 @@ struct CompareSessionIds { namespace wvcdm { namespace metrics { -void CryptoMetrics::Serialize(WvCdmMetrics::CryptoMetrics *crypto_metrics) - const { +void CryptoMetrics::Serialize( + WvCdmMetrics::CryptoMetrics* crypto_metrics) const { /* CRYPTO SESSION */ crypto_metrics->set_allocated_crypto_session_security_level( crypto_session_security_level_.ToProto()); @@ -182,8 +182,7 @@ void CryptoMetrics::Serialize(WvCdmMetrics::CryptoMetrics *crypto_metrics) crypto_metrics->mutable_oemcrypto_create_new_usage_entry()); oemcrypto_load_usage_entry_.ToProto( crypto_metrics->mutable_oemcrypto_load_usage_entry()); - oemcrypto_move_entry_.ToProto( - crypto_metrics->mutable_oemcrypto_move_entry()); + oemcrypto_move_entry_.ToProto(crypto_metrics->mutable_oemcrypto_move_entry()); oemcrypto_create_old_usage_entry_.ToProto( crypto_metrics->mutable_oemcrypto_create_old_usage_entry()); oemcrypto_copy_old_usage_entry_.ToProto( @@ -217,14 +216,14 @@ void CryptoMetrics::Serialize(WvCdmMetrics::CryptoMetrics *crypto_metrics) SessionMetrics::SessionMetrics() : session_id_(""), completed_(false) {} -void SessionMetrics::Serialize(WvCdmMetrics::SessionMetrics *session_metrics) - const { +void SessionMetrics::Serialize( + WvCdmMetrics::SessionMetrics* session_metrics) const { SerializeSessionMetrics(session_metrics); crypto_metrics_.Serialize(session_metrics->mutable_crypto_metrics()); } void SessionMetrics::SerializeSessionMetrics( - WvCdmMetrics::SessionMetrics *session_metrics) const { + WvCdmMetrics::SessionMetrics* session_metrics) const { // If the session id was set, add it to the metrics. It's possible that // it's not set in some circumstances such as when provisioning is needed. if (!session_id_.empty()) { @@ -287,15 +286,15 @@ void OemCryptoDynamicAdapterMetrics::SetL1MinApiVersion(uint32_t version) { } void OemCryptoDynamicAdapterMetrics::Serialize( - WvCdmMetrics::EngineMetrics *engine_metrics) const { + WvCdmMetrics::EngineMetrics* engine_metrics) const { std::unique_lock lock(adapter_lock_); engine_metrics->set_allocated_level3_oemcrypto_initialization_error( - level3_oemcrypto_initialization_error_.ToProto()); + oemcrypto_initialization_mode_.ToProto()); engine_metrics->set_allocated_oemcrypto_initialization_mode( oemcrypto_initialization_mode_.ToProto()); engine_metrics->set_allocated_previous_oemcrypto_initialization_failure( - previous_oemcrypto_initialization_failure_.ToProto()); + oemcrypto_initialization_mode_.ToProto()); engine_metrics->set_allocated_oemcrypto_l1_api_version( oemcrypto_l1_api_version_.ToProto()); engine_metrics->set_allocated_oemcrypto_l1_min_api_version( @@ -314,22 +313,20 @@ void OemCryptoDynamicAdapterMetrics::Clear() { // This method returns a reference. This means that the destructor is never // executed for the returned object. -OemCryptoDynamicAdapterMetrics &GetDynamicAdapterMetricsInstance() { +OemCryptoDynamicAdapterMetrics& GetDynamicAdapterMetricsInstance() { // This is safe in C++ 11 since the initialization is guaranteed to run // only once regardless of multi-threaded access. - static OemCryptoDynamicAdapterMetrics *adapter_metrics = + static OemCryptoDynamicAdapterMetrics* adapter_metrics = new OemCryptoDynamicAdapterMetrics(); return *adapter_metrics; } -EngineMetrics::EngineMetrics() { - life_span_internal_.Start(); -} +EngineMetrics::EngineMetrics() { life_span_internal_.Start(); } EngineMetrics::~EngineMetrics() { std::unique_lock lock(session_metrics_lock_); - if (!active_session_metrics_list_.empty() - || !completed_session_metrics_list_.empty()) { + if (!active_session_metrics_list_.empty() || + !completed_session_metrics_list_.empty()) { LOGV("Session counts: active = %zu, completed = %zu.", active_session_metrics_list_.size(), completed_session_metrics_list_.size()); @@ -358,19 +355,17 @@ void EngineMetrics::RemoveSession(wvcdm::CdmSessionId session_id) { void EngineMetrics::ConsolidateSessions() { auto completed_filter = - [] (const std::shared_ptr& session_metrics) { + [](const std::shared_ptr& session_metrics) { return session_metrics->IsCompleted(); }; std::unique_lock lock(session_metrics_lock_); - std::copy_if(active_session_metrics_list_.begin(), - active_session_metrics_list_.end(), - std::back_inserter(completed_session_metrics_list_), - completed_filter); + std::copy_if( + active_session_metrics_list_.begin(), active_session_metrics_list_.end(), + std::back_inserter(completed_session_metrics_list_), completed_filter); active_session_metrics_list_.erase( std::remove_if(active_session_metrics_list_.begin(), - active_session_metrics_list_.end(), - completed_filter), + active_session_metrics_list_.end(), completed_filter), active_session_metrics_list_.end()); // TODO(b/118664842): Add support to merge older metrics into one @@ -384,12 +379,12 @@ void EngineMetrics::ConsolidateSessions() { } } -void EngineMetrics::Serialize(WvCdmMetrics *wv_metrics) const { +void EngineMetrics::Serialize(WvCdmMetrics* wv_metrics) const { std::unique_lock lock(session_metrics_lock_); - WvCdmMetrics::EngineMetrics *engine_metrics = + WvCdmMetrics::EngineMetrics* engine_metrics = wv_metrics->mutable_engine_metrics(); // Serialize the most recent metrics from the OemCyrpto dynamic adapter. - OemCryptoDynamicAdapterMetrics &adapter_metrics = + OemCryptoDynamicAdapterMetrics& adapter_metrics = GetDynamicAdapterMetricsInstance(); adapter_metrics.Serialize(engine_metrics); if (!app_package_name_.empty()) { @@ -408,12 +403,12 @@ void EngineMetrics::Serialize(WvCdmMetrics *wv_metrics) const { } } -void EngineMetrics::SetAppPackageName(const std::string &app_package_name) { +void EngineMetrics::SetAppPackageName(const std::string& app_package_name) { app_package_name_ = app_package_name; } void EngineMetrics::SerializeEngineMetrics( - WvCdmMetrics::EngineMetrics *engine_metrics) const { + WvCdmMetrics::EngineMetrics* engine_metrics) const { // Set the engine lifespan at the time of serialization. engine_metrics->mutable_cdm_engine_life_span_ms()->set_int_value( life_span_internal_.AsMs()); diff --git a/libwvdrmengine/cdm/metrics/src/timer_metric.cpp b/libwvdrmengine/cdm/metrics/src/timer_metric.cpp index c87c20b7..f7aeb117 100644 --- a/libwvdrmengine/cdm/metrics/src/timer_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/timer_metric.cpp @@ -8,16 +8,14 @@ void TimerMetric::Start() { is_started_ = true; } -void TimerMetric::Clear() { - is_started_ = false; -} +void TimerMetric::Clear() { is_started_ = false; } double TimerMetric::AsMs() const { - return (clock_.now() - start_) / std::chrono::milliseconds(1); + return (clock_.now() - start_) / std::chrono::milliseconds(1); } double TimerMetric::AsUs() const { - return (clock_.now() - start_) / std::chrono::microseconds(1); + return (clock_.now() - start_) / std::chrono::microseconds(1); } } // namespace metrics diff --git a/libwvdrmengine/cdm/metrics/src/value_metric.cpp b/libwvdrmengine/cdm/metrics/src/value_metric.cpp index fe8be02e..97160e72 100644 --- a/libwvdrmengine/cdm/metrics/src/value_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/value_metric.cpp @@ -15,98 +15,95 @@ namespace wvcdm { namespace metrics { -namespace impl{ +namespace impl { template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const int &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, const int& value) { value_proto->set_int_value(value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const long &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, const long& value) { value_proto->set_int_value(value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const long long &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const long long& value) { value_proto->set_int_value(value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const unsigned int &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const unsigned int& value) { value_proto->set_int_value((int64_t)value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const unsigned short &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const unsigned short& value) { value_proto->set_int_value((int64_t)value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const unsigned long &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const unsigned long& value) { value_proto->set_int_value((int64_t)value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const unsigned long long &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const unsigned long long& value) { value_proto->set_int_value((int64_t)value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const bool &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, const bool& value) { value_proto->set_int_value(value); } template <> void SetValue( - drm_metrics::ValueMetric *value_proto, - const OEMCrypto_HDCP_Capability &value) { + drm_metrics::ValueMetric* value_proto, + const OEMCrypto_HDCP_Capability& value) { value_proto->set_int_value(value); } template <> void SetValue( - drm_metrics::ValueMetric *value_proto, - const OEMCrypto_ProvisioningMethod &value) { + drm_metrics::ValueMetric* value_proto, + const OEMCrypto_ProvisioningMethod& value) { value_proto->set_int_value(value); } template <> void SetValue( - drm_metrics::ValueMetric *value_proto, - const OEMCryptoInitializationMode &value) { + drm_metrics::ValueMetric* value_proto, + const OEMCryptoInitializationMode& value) { value_proto->set_int_value(value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const CdmSecurityLevel &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const CdmSecurityLevel& value) { value_proto->set_int_value(value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const CdmUsageSupportType &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const CdmUsageSupportType& value) { value_proto->set_int_value(value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const double &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const double& value) { value_proto->set_double_value(value); } template <> -void SetValue(drm_metrics::ValueMetric *value_proto, - const std::string &value) { +void SetValue(drm_metrics::ValueMetric* value_proto, + const std::string& value) { value_proto->set_string_value(value); } diff --git a/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp b/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp index ea760eb1..a8831ffe 100644 --- a/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp @@ -43,7 +43,8 @@ TEST(CounterMetricTest, NoFieldsSuccess) { TEST(CounterMetricTest, OneFieldSuccess) { wvcdm::metrics::CounterMetric metric; + int> + metric; metric.Increment(7); metric.Increment(10, 7); metric.Increment(13); @@ -61,7 +62,8 @@ TEST(CounterMetricTest, OneFieldSuccess) { TEST(CounterMetricTest, TwoFieldsSuccess) { CounterMetric metric; + drm_metrics::Attributes::kLengthFieldNumber, Pow2Bucket> + metric; metric.Increment(7, Pow2Bucket(23)); // Increment by one. metric.Increment(2, 7, Pow2Bucket(33)); @@ -93,7 +95,7 @@ TEST(CounterMetricTest, ThreeFieldsSuccess) { CounterMetric - metric; + metric; metric.Increment(7, Pow2Bucket(13), true); TestMetrics metric_proto; @@ -110,7 +112,8 @@ TEST(CounterMetricTest, FourFieldsSuccess) { drm_metrics::Attributes::kLengthFieldNumber, Pow2Bucket, drm_metrics::Attributes::kErrorCodeBoolFieldNumber, bool, drm_metrics::Attributes::kSecurityLevelFieldNumber, - SecurityLevel> metric; + SecurityLevel> + metric; metric.Increment(10LL, 7, Pow2Bucket(13), true, kLevel3); TestMetrics metric_proto; diff --git a/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp b/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp index 9a9ea92f..4b900dad 100644 --- a/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp @@ -44,4 +44,3 @@ TEST(DistributionTest, MultipleValuesRecorded) { } // namespace metrics } // namespace wvcdm - diff --git a/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp b/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp index 8441e4c3..5dbf5416 100644 --- a/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp @@ -71,7 +71,8 @@ TEST_F(EventMetricTest, OneFieldSuccess) { TEST_F(EventMetricTest, TwoFieldsSuccess) { EventMetric metric; + drm_metrics::Attributes::kLengthFieldNumber, Pow2Bucket> + metric; metric.Record(1, 7, Pow2Bucket(23)); metric.Record(2, 7, Pow2Bucket(33)); @@ -114,7 +115,8 @@ TEST_F(EventMetricTest, TwoFieldsSuccess) { TEST_F(EventMetricTest, ThreeFieldsSuccess) { EventMetric metric; + drm_metrics::Attributes::kErrorCodeBoolFieldNumber, bool> + metric; metric.Record(10LL, 7, Pow2Bucket(13), false); metric.Record(11LL, 8, Pow2Bucket(17), true); @@ -127,14 +129,16 @@ TEST_F(EventMetricTest, ThreeFieldsSuccess) { EXPECT_FALSE(metric_proto.test_distributions(0).has_variance()); EXPECT_EQ(7, metric_proto.test_distributions(0).attributes().error_code()); EXPECT_EQ(8u, metric_proto.test_distributions(0).attributes().length()); - EXPECT_FALSE(metric_proto.test_distributions(0).attributes().error_code_bool()); + EXPECT_FALSE( + metric_proto.test_distributions(0).attributes().error_code_bool()); EXPECT_EQ(1u, metric_proto.test_distributions(1).operation_count()); EXPECT_EQ(11LL, metric_proto.test_distributions(1).mean()); EXPECT_FALSE(metric_proto.test_distributions(1).has_variance()); EXPECT_EQ(8, metric_proto.test_distributions(1).attributes().error_code()); EXPECT_EQ(16u, metric_proto.test_distributions(1).attributes().length()); - EXPECT_TRUE(metric_proto.test_distributions(1).attributes().error_code_bool()); + EXPECT_TRUE( + metric_proto.test_distributions(1).attributes().error_code_bool()); } TEST_F(EventMetricTest, FourFieldsSuccess) { @@ -142,7 +146,8 @@ TEST_F(EventMetricTest, FourFieldsSuccess) { drm_metrics::Attributes::kLengthFieldNumber, Pow2Bucket, drm_metrics::Attributes::kErrorCodeBoolFieldNumber, bool, drm_metrics::Attributes::kCdmSecurityLevelFieldNumber, - CdmSecurityLevel> metric; + CdmSecurityLevel> + metric; metric.Record(10LL, 7, Pow2Bucket(13), true, kSecurityLevelL3); @@ -155,7 +160,8 @@ TEST_F(EventMetricTest, FourFieldsSuccess) { EXPECT_FALSE(metric_proto.test_distributions(0).has_variance()); EXPECT_EQ(7, metric_proto.test_distributions(0).attributes().error_code()); EXPECT_EQ(8u, metric_proto.test_distributions(0).attributes().length()); - EXPECT_TRUE(metric_proto.test_distributions(0).attributes().error_code_bool()); + EXPECT_TRUE( + metric_proto.test_distributions(0).attributes().error_code_bool()); EXPECT_EQ( 3u, metric_proto.test_distributions(0).attributes().cdm_security_level()); } diff --git a/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp b/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp index b0e00521..7cdd173e 100644 --- a/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp +++ b/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp @@ -22,8 +22,7 @@ namespace metrics { // TODO(blueeyes): Improve this implementation by supporting full message // API In CDM. That allows us to use MessageDifferencer. -class EngineMetricsTest : public ::testing::Test { -}; +class EngineMetricsTest : public ::testing::Test {}; TEST_F(EngineMetricsTest, AllEngineMetrics) { EngineMetrics engine_metrics; @@ -45,7 +44,8 @@ TEST_F(EngineMetricsTest, AllEngineMetrics) { engine_metrics.cdm_engine_release_usage_info_.Record(1.0, NO_ERROR); engine_metrics.cdm_engine_remove_keys_.Record(1.0, NO_ERROR); engine_metrics.cdm_engine_restore_key_.Record(1.0, NO_ERROR); - engine_metrics.cdm_engine_unprovision_.Record(1.0, NO_ERROR, kSecurityLevelL1); + engine_metrics.cdm_engine_unprovision_.Record(1.0, NO_ERROR, + kSecurityLevelL1); drm_metrics::MetricsGroup actual_metrics; engine_metrics.Serialize(&actual_metrics, true, false); @@ -73,10 +73,9 @@ TEST_F(EngineMetricsTest, EngineAndCryptoMetrics) { engine_metrics.cdm_engine_close_session_.Record(1.0, NO_ERROR); CryptoMetrics* crypto_metrics = engine_metrics.GetCryptoMetrics(); - crypto_metrics->crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); - crypto_metrics->crypto_session_get_device_unique_id_ - .Record(4.0, false); + crypto_metrics->crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + crypto_metrics->crypto_session_get_device_unique_id_.Record(4.0, false); drm_metrics::MetricsGroup actual_metrics; engine_metrics.Serialize(&actual_metrics, true, false); @@ -124,8 +123,8 @@ TEST_F(EngineMetricsTest, EngineMetricsWithCompletedSessions) { SessionMetrics* session_metrics_2 = engine_metrics.AddSession(); session_metrics_2->SetSessionId("session_id_2"); // Record a CryptoMetrics metric in the session. - session_metrics_2->GetCryptoMetrics()->crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + session_metrics_2->GetCryptoMetrics()->crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); session_metrics_2->SetSessionId("session_id_2"); // Mark only session 2 as completed. session_metrics_2->SetCompleted(); @@ -144,9 +143,10 @@ TEST_F(EngineMetricsTest, EngineMetricsWithCompletedSessions) { // Spot check some metrics. EXPECT_EQ("/drm/widevine/cdm_engine/add_key/time/count{error:2}", actual_metrics.metric(0).name()); - EXPECT_EQ("/drm/widevine/crypto_session/load_certificate_private_key" - "/time/count{success:1}", - actual_metrics.metric(2).name()); + EXPECT_EQ( + "/drm/widevine/crypto_session/load_certificate_private_key" + "/time/count{success:1}", + actual_metrics.metric(2).name()); EXPECT_EQ("/drm/widevine/cdm_session/session_id", actual_metrics.metric_sub_group(0).metric(0).name()); EXPECT_EQ( @@ -241,8 +241,7 @@ TEST_F(EngineMetricsTest, EngineMetricsRemoveSessions) { ASSERT_EQ(0, actual_metrics.metric_sub_group_size()); } -class SessionMetricsTest : public ::testing::Test { -}; +class SessionMetricsTest : public ::testing::Test {}; TEST_F(SessionMetricsTest, AllSessionMetrics) { SessionMetrics session_metrics; @@ -254,8 +253,8 @@ TEST_F(SessionMetricsTest, AllSessionMetrics) { session_metrics.cdm_session_restore_usage_session_.Record(1.0, NO_ERROR); // Record a CryptoMetrics metric in the session. - session_metrics.GetCryptoMetrics()->crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + session_metrics.GetCryptoMetrics()->crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); MetricsGroup actual_metrics; session_metrics.Serialize(&actual_metrics); @@ -271,9 +270,10 @@ TEST_F(SessionMetricsTest, AllSessionMetrics) { EXPECT_EQ("/drm/widevine/cdm_session/renew_key/time/mean{error:0}", actual_metrics.metric(4).name()); EXPECT_EQ(1.0, actual_metrics.metric(4).value().double_value()); - EXPECT_EQ("/drm/widevine/crypto_session/generic_decrypt/time/count" - "{error:0&length:1024&encryption_algorithm:1}", - actual_metrics.metric(9).name()); + EXPECT_EQ( + "/drm/widevine/crypto_session/generic_decrypt/time/count" + "{error:0&length:1024&encryption_algorithm:1}", + actual_metrics.metric(9).name()); } TEST_F(SessionMetricsTest, EmptySessionMetrics) { @@ -290,134 +290,126 @@ TEST_F(SessionMetricsTest, EmptySessionMetrics) { EXPECT_EQ(0, actual_metrics.metric_sub_group_size()); } -class CryptoMetricsTest : public ::testing::Test { -}; +class CryptoMetricsTest : public ::testing::Test {}; TEST_F(CryptoMetricsTest, AllCryptoMetrics) { CryptoMetrics crypto_metrics; // Crypto session metrics. - crypto_metrics.crypto_session_delete_all_usage_reports_ - .Record(1.0, NO_ERROR); - crypto_metrics.crypto_session_delete_multiple_usage_information_ - .Record(1.0, NO_ERROR); - crypto_metrics.crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); - crypto_metrics.crypto_session_generic_encrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); - crypto_metrics.crypto_session_generic_sign_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); - crypto_metrics.crypto_session_generic_verify_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); + crypto_metrics.crypto_session_delete_all_usage_reports_.Record(1.0, NO_ERROR); + crypto_metrics.crypto_session_delete_multiple_usage_information_.Record( + 1.0, NO_ERROR); + crypto_metrics.crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + crypto_metrics.crypto_session_generic_encrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + crypto_metrics.crypto_session_generic_sign_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); + crypto_metrics.crypto_session_generic_verify_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); crypto_metrics.crypto_session_get_device_unique_id_.Record(1.0, true); - crypto_metrics.crypto_session_get_security_level_ - .Record(1.0, kSecurityLevelL1); + crypto_metrics.crypto_session_get_security_level_.Record(1.0, + kSecurityLevelL1); crypto_metrics.crypto_session_get_system_id_.Record(1.0, true, 1234); crypto_metrics.crypto_session_get_token_.Record(1.0, true); crypto_metrics.crypto_session_life_span_.Record(1.0); - crypto_metrics.crypto_session_load_certificate_private_key_ - .Record(1.0, true); + crypto_metrics.crypto_session_load_certificate_private_key_.Record(1.0, true); crypto_metrics.crypto_session_open_.Record(1.0, NO_ERROR, kLevelDefault); - crypto_metrics.crypto_session_update_usage_information_ - .Record(1.0, NO_ERROR); + crypto_metrics.crypto_session_update_usage_information_.Record(1.0, NO_ERROR); crypto_metrics.crypto_session_usage_information_support_.Record(1.0, true); // Oem crypto metrics. crypto_metrics.oemcrypto_api_version_.Record(1.0, 123, kLevelDefault); - crypto_metrics.oemcrypto_close_session_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_copy_buffer_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, - kLevelDefault, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_deactivate_usage_entry_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_decrypt_cenc_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_delete_usage_entry_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_delete_usage_table_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_derive_keys_from_session_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_force_delete_usage_entry_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_generate_derived_keys_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_generate_nonce_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_generate_rsa_signature_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generate_signature_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_decrypt_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_encrypt_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_sign_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_verify_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_get_device_id_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_get_hdcp_capability_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_get_key_data_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, - Pow2Bucket(1025), kLevelDefault); - crypto_metrics.oemcrypto_get_max_number_of_sessions_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_get_number_of_open_sessions_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_get_oem_public_certificate_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_close_session_.Record(1.0, + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_copy_buffer_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED, + kLevelDefault, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_deactivate_usage_entry_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_decrypt_cenc_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_delete_usage_entry_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_delete_usage_table_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_derive_keys_from_session_key_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_force_delete_usage_entry_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_generate_derived_keys_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_generate_nonce_.Record(1.0, + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_generate_rsa_signature_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generate_signature_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_decrypt_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_encrypt_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_sign_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_verify_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_get_device_id_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_get_hdcp_capability_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_get_key_data_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025), kLevelDefault); + crypto_metrics.oemcrypto_get_max_number_of_sessions_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_get_number_of_open_sessions_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_get_oem_public_certificate_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_get_provisioning_method_ - .Record(1.0, OEMCrypto_Keybox, kLevelDefault); + crypto_metrics.oemcrypto_get_provisioning_method_.Record( + 1.0, OEMCrypto_Keybox, kLevelDefault); - crypto_metrics.oemcrypto_get_random_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_initialize_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_install_keybox_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_is_anti_rollback_hw_present_ - .Record(1.0, true, kLevelDefault); + crypto_metrics.oemcrypto_get_random_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED, + Pow2Bucket(1025)); + crypto_metrics.oemcrypto_initialize_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_install_keybox_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_is_anti_rollback_hw_present_.Record(1.0, true, + kLevelDefault); - crypto_metrics.oemcrypto_is_keybox_valid_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_load_device_rsa_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_is_keybox_valid_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_load_device_rsa_key_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_load_keys_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_load_test_keybox_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_load_test_rsa_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_open_session_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_refresh_keys_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_report_usage_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_rewrap_device_rsa_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_rewrap_device_rsa_key_30_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_security_level_ - .Record(1.0, kSecurityLevelL2, kLevelDefault); - crypto_metrics.oemcrypto_security_patch_level_ - .Record(1.0, 123, kLevelDefault); - crypto_metrics.oemcrypto_select_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_supports_usage_table_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); - crypto_metrics.oemcrypto_update_usage_table_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_wrap_keybox_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_load_test_keybox_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_load_test_rsa_key_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_open_session_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_refresh_keys_.Record(1.0, + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_report_usage_.Record(1.0, + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_rewrap_device_rsa_key_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_rewrap_device_rsa_key_30_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_security_level_.Record(1.0, kSecurityLevelL2, + kLevelDefault); + crypto_metrics.oemcrypto_security_patch_level_.Record(1.0, 123, + kLevelDefault); + crypto_metrics.oemcrypto_select_key_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_supports_usage_table_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, kLevelDefault); + crypto_metrics.oemcrypto_update_usage_table_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_wrap_keybox_.Record(1.0, + OEMCrypto_ERROR_INIT_FAILED); // Internal OEMCrypto Metrics - crypto_metrics.oemcrypto_initialization_mode_ - .Record(1.0, OEMCrypto_INITIALIZED_FORCING_L3); + crypto_metrics.oemcrypto_initialization_mode_.Record( + 1.0, OEMCrypto_INITIALIZED_FORCING_L3); crypto_metrics.oemcrypto_l1_api_version_.Record(1.0, 12, 123); MetricsGroup actual_metrics; diff --git a/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp b/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp index 069c2109..f2b9082b 100644 --- a/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp @@ -28,8 +28,7 @@ namespace metrics { // TODO(blueeyes): Improve this implementation by supporting full message // API In CDM. That allows us to use MessageDifferencer. -class EngineMetricsTest : public ::testing::Test { -}; +class EngineMetricsTest : public ::testing::Test {}; TEST_F(EngineMetricsTest, AllEngineMetrics) { EngineMetrics engine_metrics; @@ -78,16 +77,16 @@ TEST_F(EngineMetricsTest, AllEngineMetrics) { EXPECT_GT(actual.engine_metrics().cdm_engine_decrypt_time_us_size(), 0); EXPECT_GT(actual.engine_metrics().cdm_engine_find_session_for_key_size(), 0); EXPECT_GT( - actual.engine_metrics() - .cdm_engine_generate_key_request_time_us_size(), 0); - EXPECT_GT( - actual.engine_metrics() - .cdm_engine_get_provisioning_request_time_us_size(), 0); + actual.engine_metrics().cdm_engine_generate_key_request_time_us_size(), + 0); + EXPECT_GT(actual.engine_metrics() + .cdm_engine_get_provisioning_request_time_us_size(), + 0); EXPECT_GT(actual.engine_metrics().cdm_engine_get_usage_info_time_us_size(), 0); - EXPECT_GT( - actual.engine_metrics() - .cdm_engine_handle_provisioning_response_time_us_size(), 0); + EXPECT_GT(actual.engine_metrics() + .cdm_engine_handle_provisioning_response_time_us_size(), + 0); EXPECT_GT(actual.engine_metrics().cdm_engine_open_key_set_session_size(), 0); EXPECT_GT(actual.engine_metrics().cdm_engine_open_session_size(), 0); EXPECT_GT(actual.engine_metrics().cdm_engine_query_key_status_time_us_size(), @@ -105,9 +104,9 @@ TEST_F(EngineMetricsTest, AllEngineMetrics) { actual.engine_metrics().app_package_name().string_value()); EXPECT_EQ("test cdm version", actual.engine_metrics().cdm_engine_cdm_version().string_value()); - EXPECT_EQ(100, - actual.engine_metrics() - .cdm_engine_creation_time_millis().int_value()); + EXPECT_EQ( + 100, + actual.engine_metrics().cdm_engine_creation_time_millis().int_value()); } TEST_F(EngineMetricsTest, EngineAndCryptoMetrics) { @@ -120,8 +119,8 @@ TEST_F(EngineMetricsTest, EngineAndCryptoMetrics) { CryptoMetrics* crypto_metrics = engine_metrics.GetCryptoMetrics(); crypto_metrics->crypto_session_get_device_unique_id_.Increment(NO_ERROR); - crypto_metrics->crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + crypto_metrics->crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); WvCdmMetrics actual_metrics; engine_metrics.Serialize(&actual_metrics); @@ -133,29 +132,38 @@ TEST_F(EngineMetricsTest, EngineAndCryptoMetrics) { ASSERT_EQ(1, actual_metrics.engine_metrics().cdm_engine_add_key_time_us_size()); EXPECT_EQ(2, actual_metrics.engine_metrics() - .cdm_engine_add_key_time_us(0) - .attributes().error_code()); - ASSERT_EQ(1, - actual_metrics.engine_metrics().cdm_engine_close_session_size()); + .cdm_engine_add_key_time_us(0) + .attributes() + .error_code()); + ASSERT_EQ(1, actual_metrics.engine_metrics().cdm_engine_close_session_size()); EXPECT_EQ(UNKNOWN_ERROR, actual_metrics.engine_metrics() - .cdm_engine_close_session(0) - .attributes().error_code()); - ASSERT_EQ(1, actual_metrics.engine_metrics().crypto_metrics() - .crypto_session_get_device_unique_id_size()); - EXPECT_EQ(1, actual_metrics.engine_metrics().crypto_metrics() - .crypto_session_get_device_unique_id(0) - .count()); - EXPECT_EQ(NO_ERROR, actual_metrics.engine_metrics().crypto_metrics() - .crypto_session_get_device_unique_id(0) - .attributes().error_code()); - ASSERT_EQ(1, actual_metrics.engine_metrics().crypto_metrics() - .crypto_session_generic_decrypt_time_us_size()); - EXPECT_EQ(2.0, actual_metrics.engine_metrics().crypto_metrics() - .crypto_session_generic_decrypt_time_us(0) - .mean()); - EXPECT_EQ(NO_ERROR, actual_metrics.engine_metrics().crypto_metrics() - .crypto_session_generic_decrypt_time_us(0) - .attributes().error_code()); + .cdm_engine_close_session(0) + .attributes() + .error_code()); + ASSERT_EQ(1, actual_metrics.engine_metrics() + .crypto_metrics() + .crypto_session_get_device_unique_id_size()); + EXPECT_EQ(1, actual_metrics.engine_metrics() + .crypto_metrics() + .crypto_session_get_device_unique_id(0) + .count()); + EXPECT_EQ(NO_ERROR, actual_metrics.engine_metrics() + .crypto_metrics() + .crypto_session_get_device_unique_id(0) + .attributes() + .error_code()); + ASSERT_EQ(1, actual_metrics.engine_metrics() + .crypto_metrics() + .crypto_session_generic_decrypt_time_us_size()); + EXPECT_EQ(2.0, actual_metrics.engine_metrics() + .crypto_metrics() + .crypto_session_generic_decrypt_time_us(0) + .mean()); + EXPECT_EQ(NO_ERROR, actual_metrics.engine_metrics() + .crypto_metrics() + .crypto_session_generic_decrypt_time_us(0) + .attributes() + .error_code()); } TEST_F(EngineMetricsTest, EmptyEngineMetrics) { @@ -186,8 +194,8 @@ TEST_F(EngineMetricsTest, EngineMetricsWithSessions) { engine_metrics.AddSession(); session_metrics_2->SetSessionId(kSessionId2); // Record a CryptoMetrics metric in the session. - session_metrics_2->GetCryptoMetrics()->crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + session_metrics_2->GetCryptoMetrics()->crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); WvCdmMetrics actual_metrics; engine_metrics.Serialize(&actual_metrics); @@ -201,7 +209,8 @@ TEST_F(EngineMetricsTest, EngineMetricsWithSessions) { actual_metrics.session_metrics(0).session_id().string_value()); EXPECT_EQ(kSessionId2, actual_metrics.session_metrics(1).session_id().string_value()); - EXPECT_EQ(1, actual_metrics.session_metrics(1).crypto_metrics() + EXPECT_EQ(1, actual_metrics.session_metrics(1) + .crypto_metrics() .crypto_session_generic_decrypt_time_us_size()); } @@ -259,8 +268,7 @@ TEST_F(EngineMetricsTest, EngineMetricsConsolidateSessionsNoSessions) { ASSERT_EQ(0, actual_metrics.session_metrics_size()); } -class SessionMetricsTest : public ::testing::Test { -}; +class SessionMetricsTest : public ::testing::Test {}; TEST_F(SessionMetricsTest, AllSessionMetrics) { SessionMetrics session_metrics; @@ -275,12 +283,13 @@ TEST_F(SessionMetricsTest, AllSessionMetrics) { 2.0, kKeyRequestTypeInitial); session_metrics.oemcrypto_build_info_.Record("test build info"); session_metrics.license_sdk_version_.Record("test license sdk version"); - session_metrics.license_service_version_.Record("test license service version"); + session_metrics.license_service_version_.Record( + "test license service version"); session_metrics.drm_certificate_key_type_.Record(1); // Record a CryptoMetrics metric in the session. - session_metrics.GetCryptoMetrics()->crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + session_metrics.GetCryptoMetrics()->crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); WvCdmMetrics::SessionMetrics actual; session_metrics.Serialize(&actual); @@ -315,32 +324,30 @@ TEST_F(SessionMetricsTest, EmptySessionMetrics) { EXPECT_EQ(0, actual_metrics.cdm_session_restore_usage_session_size()); } -class CryptoMetricsTest : public ::testing::Test { -}; +class CryptoMetricsTest : public ::testing::Test {}; TEST_F(CryptoMetricsTest, AllCryptoMetrics) { CryptoMetrics crypto_metrics; // Crypto session metrics. crypto_metrics.crypto_session_delete_all_usage_reports_.Increment(NO_ERROR); - crypto_metrics.crypto_session_delete_multiple_usage_information_ - .Increment(NO_ERROR); - crypto_metrics.crypto_session_generic_decrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); - crypto_metrics.crypto_session_generic_encrypt_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); - crypto_metrics.crypto_session_generic_sign_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); - crypto_metrics.crypto_session_generic_verify_ - .Record(2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); + crypto_metrics.crypto_session_delete_multiple_usage_information_.Increment( + NO_ERROR); + crypto_metrics.crypto_session_generic_decrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + crypto_metrics.crypto_session_generic_encrypt_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128); + crypto_metrics.crypto_session_generic_sign_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); + crypto_metrics.crypto_session_generic_verify_.Record( + 2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256); crypto_metrics.crypto_session_get_device_unique_id_.Increment(NO_ERROR); crypto_metrics.crypto_session_get_token_.Increment(NO_ERROR); crypto_metrics.crypto_session_life_span_.Record(1.0); - crypto_metrics.crypto_session_load_certificate_private_key_ - .Record(1.0, NO_ERROR); + crypto_metrics.crypto_session_load_certificate_private_key_.Record(1.0, + NO_ERROR); crypto_metrics.crypto_session_open_.Record(1.0, NO_ERROR, kLevelDefault); - crypto_metrics.crypto_session_update_usage_information_ - .Record(1.0, NO_ERROR); + crypto_metrics.crypto_session_update_usage_information_.Record(1.0, NO_ERROR); crypto_metrics.crypto_session_usage_information_support_.Record(true); crypto_metrics.crypto_session_security_level_.Record(kSecurityLevelL2); @@ -359,87 +366,83 @@ TEST_F(CryptoMetricsTest, AllCryptoMetrics) { // Oem crypto metrics. crypto_metrics.oemcrypto_api_version_.Record(123); - crypto_metrics.oemcrypto_close_session_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_copy_buffer_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_deactivate_usage_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_decrypt_cenc_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_delete_usage_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_delete_usage_table_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_derive_keys_from_session_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_force_delete_usage_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_generate_derived_keys_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_generate_nonce_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_generate_rsa_signature_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generate_signature_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_decrypt_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_encrypt_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_sign_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_generic_verify_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); - crypto_metrics.oemcrypto_get_device_id_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_get_key_data_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_close_session_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_copy_buffer_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED, + Pow2Bucket(1025)); + crypto_metrics.oemcrypto_deactivate_usage_entry_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_decrypt_cenc_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_delete_usage_entry_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_delete_usage_table_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_derive_keys_from_session_key_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_force_delete_usage_entry_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_generate_derived_keys_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_generate_nonce_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_generate_rsa_signature_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generate_signature_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_decrypt_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_encrypt_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_sign_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_generic_verify_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); + crypto_metrics.oemcrypto_get_device_id_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_get_key_data_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED, Pow2Bucket(1025)); crypto_metrics.oemcrypto_max_number_of_sessions_.Record(7); crypto_metrics.oemcrypto_number_of_open_sessions_.Record(5); - crypto_metrics.oemcrypto_get_oem_public_certificate_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_get_oem_public_certificate_.Increment( + OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_provisioning_method_.Record(OEMCrypto_Keybox); - crypto_metrics.oemcrypto_get_random_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_initialize_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_get_random_.Increment(OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_initialize_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_is_anti_rollback_hw_present_.Record(true); crypto_metrics.oemcrypto_is_keybox_valid_.Record(true); crypto_metrics.oemcrypto_load_device_drm_key_.Record( 1.0, OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_load_keys_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_refresh_keys_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_refresh_keys_.Record(1.0, + OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_report_usage_.Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_rewrap_device_rsa_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_rewrap_device_rsa_key_30_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_rewrap_device_rsa_key_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_rewrap_device_rsa_key_30_.Record( + 1.0, OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_security_patch_level_.Record(123); - crypto_metrics.oemcrypto_select_key_ - .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_update_usage_table_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_create_usage_table_header_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_load_usage_table_header_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_shrink_usage_table_header_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_create_new_usage_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_load_usage_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_move_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_create_old_usage_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_copy_old_usage_entry_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_select_key_.Record(1.0, OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_update_usage_table_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_create_usage_table_header_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_load_usage_table_header_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_shrink_usage_table_header_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_create_new_usage_entry_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_load_usage_entry_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_move_entry_.Increment(OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_create_old_usage_entry_.Increment( + OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_copy_old_usage_entry_.Increment( + OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_set_sandbox_.Record("sandbox"); - crypto_metrics.oemcrypto_set_decrypt_hash_ - .Increment(OEMCrypto_ERROR_INIT_FAILED); + crypto_metrics.oemcrypto_set_decrypt_hash_.Increment( + OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_resource_rating_tier_.Record(123); crypto_metrics.oemcrypto_minor_api_version_.Record(234); crypto_metrics.oemcrypto_maximum_usage_table_header_size_.Record(321); From 1b95db51f1b43305f3cc092fef065b94c1cb5e29 Mon Sep 17 00:00:00 2001 From: Alex Dale Date: Wed, 3 Nov 2021 17:28:00 -0700 Subject: [PATCH 2/2] Updated copyright notice and cleaned up includes. [ Merge of http://go/wvgerrit/137810 ] Bug: 204946540 Test: Metric unit tests Change-Id: I78f839fafd27604a2bb78c04d587c40919c5372d --- .../cdm/metrics/include/attribute_handler.h | 12 +++----- .../cdm/metrics/include/counter_metric.h | 10 +++---- .../cdm/metrics/include/distribution.h | 7 ++--- .../cdm/metrics/include/event_metric.h | 12 +++----- .../cdm/metrics/include/field_tuples.h | 9 ++---- .../cdm/metrics/include/metrics_collections.h | 30 +++++++++---------- .../cdm/metrics/include/pow2bucket.h | 8 ++--- .../cdm/metrics/include/timer_metric.h | 8 ++--- .../cdm/metrics/include/value_metric.h | 13 ++++---- .../cdm/metrics/src/attribute_handler.cpp | 8 +++-- .../cdm/metrics/src/counter_metric.cpp | 8 ++--- .../cdm/metrics/src/distribution.cpp | 6 ++-- .../cdm/metrics/src/event_metric.cpp | 12 ++------ .../cdm/metrics/src/metrics_collections.cpp | 16 ++++------ .../cdm/metrics/src/timer_metric.cpp | 5 ++-- .../cdm/metrics/src/value_metric.cpp | 11 ++----- .../cdm/metrics/src/wv_metrics.proto | 9 +++--- .../metrics/test/counter_metric_unittest.cpp | 17 +++++------ .../metrics/test/distribution_unittest.cpp | 12 ++++---- .../metrics/test/event_metric_unittest.cpp | 16 +++++----- .../metrics/test/metrics_collections_test.cpp | 15 ++++------ .../test/metrics_collections_unittest.cpp | 18 +++++------ .../metrics/test/value_metric_unittest.cpp | 13 ++++---- 23 files changed, 112 insertions(+), 163 deletions(-) diff --git a/libwvdrmengine/cdm/metrics/include/attribute_handler.h b/libwvdrmengine/cdm/metrics/include/attribute_handler.h index 52468076..35ae8716 100644 --- a/libwvdrmengine/cdm/metrics/include/attribute_handler.h +++ b/libwvdrmengine/cdm/metrics/include/attribute_handler.h @@ -1,21 +1,18 @@ -// Copyright 2018 Google Inc. All Rights Reserved. +// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the declarations for the EventMetric class and related // types. #ifndef WVCDM_METRICS_ATTRIBUTE_HANDLER_H_ #define WVCDM_METRICS_ATTRIBUTE_HANDLER_H_ +#include -#include "OEMCryptoCENC.h" -#include "field_tuples.h" #include "log.h" -#include "pow2bucket.h" -#include "value_metric.h" -#include "wv_cdm_types.h" #include "wv_metrics.pb.h" namespace wvcdm { namespace metrics { - // This method is used to set the value of a single proto field. // Specializations handle setting each value. template @@ -47,7 +44,6 @@ class AttributeHandler { return serialized_attributes; } }; - } // namespace metrics } // namespace wvcdm #endif // WVCDM_METRICS_ATTRIBUTE_HANDLER_H_ diff --git a/libwvdrmengine/cdm/metrics/include/counter_metric.h b/libwvdrmengine/cdm/metrics/include/counter_metric.h index 317c35ad..f07de2c9 100644 --- a/libwvdrmengine/cdm/metrics/include/counter_metric.h +++ b/libwvdrmengine/cdm/metrics/include/counter_metric.h @@ -1,23 +1,23 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the declarations for the Metric class and related // types. #ifndef WVCDM_METRICS_COUNTER_METRIC_H_ #define WVCDM_METRICS_COUNTER_METRIC_H_ -#include #include #include #include #include -#include #include "attribute_handler.h" #include "field_tuples.h" +#include "wv_metrics.pb.h" namespace wvcdm { namespace metrics { - class CounterMetricTest; // This base class provides the common defintion used by all templated @@ -144,8 +144,6 @@ inline void CounterMetric::ToProto( new_counter->set_count(it->second); } } - } // namespace metrics } // namespace wvcdm - #endif // WVCDM_METRICS_COUNTER_METRIC_H_ diff --git a/libwvdrmengine/cdm/metrics/include/distribution.h b/libwvdrmengine/cdm/metrics/include/distribution.h index 50ac97d4..85aae776 100644 --- a/libwvdrmengine/cdm/metrics/include/distribution.h +++ b/libwvdrmengine/cdm/metrics/include/distribution.h @@ -1,4 +1,6 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the definition of a Distribution class which computes // the distribution values of a series of samples. @@ -10,7 +12,6 @@ namespace wvcdm { namespace metrics { - // The Distribution class holds statistics about a series of values that the // client provides via the Record method. A caller will call Record once for // each of the values in a series. The Distribution instance will calculate the @@ -46,8 +47,6 @@ class Distribution { float mean_; double sum_squared_deviation_; }; - } // namespace metrics } // namespace wvcdm - #endif // WVCDM_METRICS_DISTRIBUTION_H_ diff --git a/libwvdrmengine/cdm/metrics/include/event_metric.h b/libwvdrmengine/cdm/metrics/include/event_metric.h index a87f2541..3f63207f 100644 --- a/libwvdrmengine/cdm/metrics/include/event_metric.h +++ b/libwvdrmengine/cdm/metrics/include/event_metric.h @@ -1,26 +1,24 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the declarations for the EventMetric class and related // types. #ifndef WVCDM_METRICS_EVENT_METRIC_H_ #define WVCDM_METRICS_EVENT_METRIC_H_ - -#include #include #include #include -#include -#include "OEMCryptoCENC.h" #include "attribute_handler.h" #include "distribution.h" +#include "field_tuples.h" #include "log.h" #include "pow2bucket.h" #include "wv_metrics.pb.h" namespace wvcdm { namespace metrics { - class EventMetricTest; // This base class provides the common defintion used by all templated @@ -166,8 +164,6 @@ inline void EventMetric::ToProto( SetDistributionValues(*it->second, new_metric); } } - } // namespace metrics } // namespace wvcdm - #endif // WVCDM_METRICS_EVENT_METRIC_H_ diff --git a/libwvdrmengine/cdm/metrics/include/field_tuples.h b/libwvdrmengine/cdm/metrics/include/field_tuples.h index 1031806b..bd5c8df6 100644 --- a/libwvdrmengine/cdm/metrics/include/field_tuples.h +++ b/libwvdrmengine/cdm/metrics/include/field_tuples.h @@ -1,17 +1,16 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the helper classes and methods for using field tuples // used by metrics classes to record variations of a single metric. #ifndef WVCDM_METRICS_FIELD_TUPLES_H_ #define WVCDM_METRICS_FIELD_TUPLES_H_ - #include -#include namespace wvcdm { namespace metrics { namespace util { - // TODO(blueeyes): Change to use C++ 11 support for variadic template args. // The C++ 03 pattern is no longer needed since we require C++11. b/68766426. @@ -23,9 +22,7 @@ struct Unused { return out; } }; - } // namespace util } // namespace metrics } // namespace wvcdm - #endif // WVCDM_METRICS_FIELD_TUPLES_H_ diff --git a/libwvdrmengine/cdm/metrics/include/metrics_collections.h b/libwvdrmengine/cdm/metrics/include/metrics_collections.h index 9aaca0b9..5598d5a6 100644 --- a/libwvdrmengine/cdm/metrics/include/metrics_collections.h +++ b/libwvdrmengine/cdm/metrics/include/metrics_collections.h @@ -1,15 +1,18 @@ -// Copyright 2016 Google Inc. All Rights Reserved. +// Copyright 2016 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains definitions for metrics being collected throughout the // CDM. - -#ifndef WVCDM_METRICS_METRICS_GROUP_H_ -#define WVCDM_METRICS_METRICS_GROUP_H_ - +#ifndef WVCDM_METRICS_METRICS_COLLECTIONS_H_ +#define WVCDM_METRICS_METRICS_COLLECTIONS_H_ #include #include + #include #include +#include +#include #include "OEMCryptoCENC.h" #include "counter_metric.h" @@ -58,9 +61,7 @@ namespace wvcdm { namespace metrics { - namespace { - // Short name definitions to ease AttributeHandler definitions. // Internal namespace to help simplify declarations. const int kErrorCodeFieldNumber = @@ -88,8 +89,7 @@ const int kKeyRequestTypeFieldNumber = ::drm_metrics::Attributes::kKeyRequestTypeFieldNumber; const int kLicenseTypeFieldNumber = ::drm_metrics::Attributes::kLicenseTypeFieldNumber; - -} // anonymous namespace +} // namespace // The maximum number of completed sessions that can be stored. More than this // will cause some metrics to be discarded. @@ -292,7 +292,7 @@ class CryptoMetrics { oemcrypto_load_provisioning_; ValueMetric oemcrypto_minor_api_version_; ValueMetric oemcrypto_maximum_usage_table_header_size_; -}; +}; // class CryptoMetrics // This class contains session-scoped metrics. All properties and // statistics related to operations within a single session are @@ -350,7 +350,7 @@ class SessionMetrics { CdmSessionId session_id_; bool completed_; CryptoMetrics crypto_metrics_; -}; +}; // class SessionMetrics // This class contains metrics for the OEMCrypto Dynamic Adapter. They are // separated from other metrics because they need to be encapsulated in a @@ -389,7 +389,7 @@ class OemCryptoDynamicAdapterMetrics { previous_oemcrypto_initialization_failure_; ValueMetric oemcrypto_l1_api_version_; ValueMetric oemcrypto_l1_min_api_version_; -}; +}; // class OemCryptoDynamicAdapterMetrics // This will fetch the singleton instance for dynamic adapter metrics. // This method is safe only if we use C++ 11. In C++ 11, static function-local @@ -494,9 +494,7 @@ class EngineMetrics { void SerializeEngineMetrics( drm_metrics::WvCdmMetrics::EngineMetrics* engine_metrics) const; -}; - +}; // class EngineMetrics } // namespace metrics } // namespace wvcdm - -#endif // WVCDM_METRICS_METRICS_GROUP_H_ +#endif // WVCDM_METRICS_METRICS_COLLECTIONS_H_ diff --git a/libwvdrmengine/cdm/metrics/include/pow2bucket.h b/libwvdrmengine/cdm/metrics/include/pow2bucket.h index bc5f3b6b..79552b3a 100644 --- a/libwvdrmengine/cdm/metrics/include/pow2bucket.h +++ b/libwvdrmengine/cdm/metrics/include/pow2bucket.h @@ -1,13 +1,13 @@ -// Copyright 2018 Google Inc. All Rights Reserved. +// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the declaration of the Pow2Bucket class which // is a convenient way to bucketize sampled values into powers of 2. #ifndef WVCDM_METRICS_POW2BUCKET_H_ #define WVCDM_METRICS_POW2BUCKET_H_ - namespace wvcdm { namespace metrics { - // This class converts the size_t value into the highest power of two // below the value. E.g. for 7, the value is 4. For 11, the value is 8. // This class is intended to simplify the use of EventMetric Fields that may @@ -43,8 +43,6 @@ class Pow2Bucket { size_t value_; }; - } // namespace metrics } // namespace wvcdm - #endif // WVCDM_METRICS_POW2BUCKET_H_ diff --git a/libwvdrmengine/cdm/metrics/include/timer_metric.h b/libwvdrmengine/cdm/metrics/include/timer_metric.h index cc5dbe10..01b9777d 100644 --- a/libwvdrmengine/cdm/metrics/include/timer_metric.h +++ b/libwvdrmengine/cdm/metrics/include/timer_metric.h @@ -1,11 +1,12 @@ +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. #ifndef WVCDM_METRICS_TIMER_METRIC_H_ #define WVCDM_METRICS_TIMER_METRIC_H_ - #include namespace wvcdm { namespace metrics { - class TimerMetric { public: // Constructs a new TimerMetric. @@ -28,7 +29,6 @@ class TimerMetric { std::chrono::time_point start_; bool is_started_; }; - } // namespace metrics } // namespace wvcdm -#endif +#endif // WVCDM_METRICS_TIMER_METRIC_H_ diff --git a/libwvdrmengine/cdm/metrics/include/value_metric.h b/libwvdrmengine/cdm/metrics/include/value_metric.h index abaa9056..5f943106 100644 --- a/libwvdrmengine/cdm/metrics/include/value_metric.h +++ b/libwvdrmengine/cdm/metrics/include/value_metric.h @@ -1,11 +1,13 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the declarations for the Metric class and related // types. #ifndef WVCDM_METRICS_VALUE_METRIC_H_ #define WVCDM_METRICS_VALUE_METRIC_H_ - #include + #include #include @@ -13,14 +15,11 @@ namespace wvcdm { namespace metrics { - // Internal namespace for helper methods. namespace impl { - // Helper function for setting a value in the proto. template void SetValue(drm_metrics::ValueMetric* value_proto, const T& value); - } // namespace impl // The ValueMetric class supports storing a single, overwritable value or an @@ -118,9 +117,7 @@ class ValueMetric { * in const methods. */ mutable std::mutex internal_lock_; -}; - +}; // class ValueMetric } // namespace metrics } // namespace wvcdm - #endif // WVCDM_METRICS_VALUE_METRIC_H_ diff --git a/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp b/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp index 77c84631..f1d3b842 100644 --- a/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp +++ b/libwvdrmengine/cdm/metrics/src/attribute_handler.cpp @@ -1,15 +1,18 @@ -// Copyright 2018 Google Inc. All Rights Reserved. +// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains implementations for the AttributeHandler. #include "attribute_handler.h" + #include "OEMCryptoCENC.h" +#include "field_tuples.h" #include "pow2bucket.h" #include "wv_cdm_types.h" namespace wvcdm { namespace metrics { - // // Specializations for setting attribute fields. // @@ -106,6 +109,5 @@ void SetAttributeField( const int& cdm_error, drm_metrics::Attributes* attributes) { attributes->set_error_code(cdm_error); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/src/counter_metric.cpp b/libwvdrmengine/cdm/metrics/src/counter_metric.cpp index 00fc27fe..0641f4cd 100644 --- a/libwvdrmengine/cdm/metrics/src/counter_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/counter_metric.cpp @@ -1,15 +1,14 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains implementations for the BaseCounterMetric, the base class // for CounterMetric. #include "counter_metric.h" -#include "wv_metrics.pb.h" - namespace wvcdm { namespace metrics { - void BaseCounterMetric::Increment(const std::string& counter_key, int64_t value) { std::unique_lock lock(internal_lock_); @@ -20,6 +19,5 @@ void BaseCounterMetric::Increment(const std::string& counter_key, value_map_[counter_key] = value_map_[counter_key] + value; } } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/src/distribution.cpp b/libwvdrmengine/cdm/metrics/src/distribution.cpp index 0a4cb882..b55bac67 100644 --- a/libwvdrmengine/cdm/metrics/src/distribution.cpp +++ b/libwvdrmengine/cdm/metrics/src/distribution.cpp @@ -1,4 +1,6 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the definitions for the Distribution class members. @@ -8,7 +10,6 @@ namespace wvcdm { namespace metrics { - Distribution::Distribution() : count_(0ULL), min_(FLT_MAX), @@ -26,6 +27,5 @@ void Distribution::Record(float value) { min_ = min_ < value ? min_ : value; max_ = max_ > value ? max_ : value; } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/src/event_metric.cpp b/libwvdrmengine/cdm/metrics/src/event_metric.cpp index d413cc3b..85b2f752 100644 --- a/libwvdrmengine/cdm/metrics/src/event_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/event_metric.cpp @@ -1,17 +1,14 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains implementations for the BaseEventMetric. - #include "event_metric.h" -using ::google::protobuf::RepeatedPtrField; - namespace wvcdm { namespace metrics { - BaseEventMetric::~BaseEventMetric() { std::unique_lock lock(internal_lock_); - for (std::map::iterator it = value_map_.begin(); it != value_map_.end(); it++) { delete it->second; @@ -20,9 +17,7 @@ BaseEventMetric::~BaseEventMetric() { void BaseEventMetric::Record(const std::string& key, double value) { std::unique_lock lock(internal_lock_); - Distribution* distribution; - if (value_map_.find(key) == value_map_.end()) { distribution = new Distribution(); value_map_[key] = distribution; @@ -32,6 +27,5 @@ void BaseEventMetric::Record(const std::string& key, double value) { distribution->Record(value); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp b/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp index bf35be0f..6ea4f32e 100644 --- a/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp +++ b/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp @@ -1,5 +1,6 @@ -// Copyright 2016 Google Inc. All Rights Reserved. - +// Copyright 2016 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. #include "metrics_collections.h" #include @@ -7,13 +8,13 @@ #include "log.h" #include "wv_metrics.pb.h" +namespace wvcdm { +namespace metrics { using ::drm_metrics::Attributes; using ::drm_metrics::WvCdmMetrics; using ::google::protobuf::RepeatedPtrField; using ::wvcdm::metrics::EventMetric; - namespace { - // Helper struct for comparing session ids. struct CompareSessionIds { const std::string& target_; @@ -25,11 +26,7 @@ struct CompareSessionIds { return metrics->GetSessionId() == target_; } }; - -} // anonymous namespace - -namespace wvcdm { -namespace metrics { +} // namespace void CryptoMetrics::Serialize( WvCdmMetrics::CryptoMetrics* crypto_metrics) const { @@ -458,6 +455,5 @@ void EngineMetrics::SerializeEngineMetrics( crypto_metrics_.Serialize(engine_metrics->mutable_crypto_metrics()); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/src/timer_metric.cpp b/libwvdrmengine/cdm/metrics/src/timer_metric.cpp index f7aeb117..6c0a2541 100644 --- a/libwvdrmengine/cdm/metrics/src/timer_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/timer_metric.cpp @@ -1,8 +1,10 @@ +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. #include "timer_metric.h" namespace wvcdm { namespace metrics { - void TimerMetric::Start() { start_ = clock_.now(); is_started_ = true; @@ -17,6 +19,5 @@ double TimerMetric::AsMs() const { double TimerMetric::AsUs() const { return (clock_.now() - start_) / std::chrono::microseconds(1); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/src/value_metric.cpp b/libwvdrmengine/cdm/metrics/src/value_metric.cpp index 97160e72..81a2e654 100644 --- a/libwvdrmengine/cdm/metrics/src/value_metric.cpp +++ b/libwvdrmengine/cdm/metrics/src/value_metric.cpp @@ -1,11 +1,9 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains the specializations for helper methods for the // ValueMetric class. - -#include -#include - #include "value_metric.h" #include "OEMCryptoCENC.h" @@ -14,9 +12,7 @@ namespace wvcdm { namespace metrics { - namespace impl { - template <> void SetValue(drm_metrics::ValueMetric* value_proto, const int& value) { value_proto->set_int_value(value); @@ -106,7 +102,6 @@ void SetValue(drm_metrics::ValueMetric* value_proto, const std::string& value) { value_proto->set_string_value(value); } - } // namespace impl } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/src/wv_metrics.proto b/libwvdrmengine/cdm/metrics/src/wv_metrics.proto index 5fc59717..ab92d222 100644 --- a/libwvdrmengine/cdm/metrics/src/wv_metrics.proto +++ b/libwvdrmengine/cdm/metrics/src/wv_metrics.proto @@ -1,4 +1,6 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // This file contains a proto definition for serialization of metrics data. // @@ -15,10 +17,7 @@ option optimize_for = LITE_RUNTIME; // want to count all of the operations with a give error code. message Attributes { // Reserved for compatibility with logging proto. - // TODO(blueeyes): The reserved keyword is not supported in the older version - // of protoc in the CE CDM third_party directory. Uncomment the reserved - // line when we upgrade. b/67016366. - // reserved 8, 10 to 13; + reserved 8, 10 to 13; // The error code. See CdmResponseType in wv_cdm_types.h optional int32 error_code = 1; diff --git a/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp b/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp index a8831ffe..63d91fd7 100644 --- a/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/counter_metric_unittest.cpp @@ -1,19 +1,19 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // Unit tests for CounterMetric - #include "counter_metric.h" -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "string_conversions.h" +#include -using drm_metrics::TestMetrics; -using testing::IsNull; -using testing::NotNull; +#include "pow2bucket.h" +#include "string_conversions.h" +#include "wv_cdm_types.h" namespace wvcdm { namespace metrics { +using drm_metrics::TestMetrics; TEST(CounterMetricTest, NoFieldsEmpty) { wvcdm::metrics::CounterMetric<> metric; @@ -126,6 +126,5 @@ TEST(CounterMetricTest, FourFieldsSuccess) { EXPECT_EQ(kLevel3, metric_proto.test_counters(0).attributes().security_level()); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp b/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp index 4b900dad..dd2483ba 100644 --- a/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/distribution_unittest.cpp @@ -1,16 +1,17 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // Unit tests for Distribution. -#include - #include "distribution.h" -#include "gtest/gtest.h" +#include + +#include namespace wvcdm { namespace metrics { - TEST(DistributionTest, NoValuesRecorded) { Distribution distribution; EXPECT_EQ(FLT_MAX, distribution.Min()); @@ -41,6 +42,5 @@ TEST(DistributionTest, MultipleValuesRecorded) { EXPECT_EQ(3u, distribution.Count()); EXPECT_NEAR(16.6667, distribution.Variance(), 0.0001); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp b/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp index 5dbf5416..7e2b978f 100644 --- a/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/event_metric_unittest.cpp @@ -1,19 +1,18 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // Unit tests for EventMetric - #include "event_metric.h" -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "string_conversions.h" +#include -using drm_metrics::TestMetrics; -using testing::IsNull; -using testing::NotNull; +#include "string_conversions.h" +#include "wv_cdm_types.h" namespace wvcdm { namespace metrics { +using drm_metrics::TestMetrics; class EventMetricTest : public ::testing::Test { public: @@ -191,6 +190,5 @@ TEST_F(EventMetricTest, Pow2BucketTest) { value << Pow2Bucket(0x7FFFFFFF); EXPECT_EQ("1073741824", value.str()); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp b/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp index 7cdd173e..f5c5e646 100644 --- a/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp +++ b/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp @@ -1,24 +1,20 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // Unit tests for the metrics collections, // EngineMetrics, SessionMetrics and CrytpoMetrics. - #include "metrics_collections.h" -#include +#include -#include "gmock/gmock.h" -#include "google/protobuf/text_format.h" -#include "gtest/gtest.h" #include "log.h" #include "wv_cdm_types.h" #include "wv_metrics.pb.h" -using drm_metrics::MetricsGroup; -using google::protobuf::TextFormat; - namespace wvcdm { namespace metrics { +using drm_metrics::MetricsGroup; // TODO(blueeyes): Improve this implementation by supporting full message // API In CDM. That allows us to use MessageDifferencer. @@ -432,6 +428,5 @@ TEST_F(CryptoMetricsTest, AllCryptoMetrics) { // No subgroups should exist. EXPECT_EQ(0, actual_metrics.metric_sub_group_size()); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp b/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp index f2b9082b..494347cf 100644 --- a/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/metrics_collections_unittest.cpp @@ -1,30 +1,27 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // Unit tests for the metrics collections, // EngineMetrics, SessionMetrics and CryptoMetrics. - #include "metrics_collections.h" -#include +#include #include "device_files.h" -#include "gmock/gmock.h" -#include "google/protobuf/text_format.h" -#include "gtest/gtest.h" #include "log.h" #include "string_conversions.h" #include "wv_cdm_types.h" #include "wv_metrics.pb.h" +namespace wvcdm { +namespace metrics { using drm_metrics::WvCdmMetrics; namespace { const char kSessionId1[] = "session_id_1"; const char kSessionId2[] = "session_id_2"; -} // anonymous namespace - -namespace wvcdm { -namespace metrics { +} // namespace // TODO(blueeyes): Improve this implementation by supporting full message // API In CDM. That allows us to use MessageDifferencer. @@ -538,6 +535,5 @@ TEST_F(CryptoMetricsTest, AllCryptoMetrics) { EXPECT_EQ(321, actual.oemcrypto_maximum_usage_table_header_size().int_value()); } - } // namespace metrics } // namespace wvcdm diff --git a/libwvdrmengine/cdm/metrics/test/value_metric_unittest.cpp b/libwvdrmengine/cdm/metrics/test/value_metric_unittest.cpp index b593f2b4..6e86f0cc 100644 --- a/libwvdrmengine/cdm/metrics/test/value_metric_unittest.cpp +++ b/libwvdrmengine/cdm/metrics/test/value_metric_unittest.cpp @@ -1,19 +1,17 @@ -// Copyright 2017 Google Inc. All Rights Reserved. +// Copyright 2017 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine License +// Agreement. // // Unit tests for ValueMetric. +#include "value_metric.h" #include #include -#include "value_metric.h" - -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "wv_metrics.pb.h" +#include namespace wvcdm { namespace metrics { - TEST(ValueMetricTest, StringValue) { ValueMetric metric; metric.Record("foo"); @@ -59,6 +57,5 @@ TEST(ValueMetricTest, SetError) { ASSERT_EQ(7, metric_proto->error_code()); ASSERT_FALSE(metric_proto->has_int_value()); } - } // namespace metrics } // namespace wvcdm