Added metrics for production readiness.

[ Merge of http://go/wvgerrit/151749 ]

Extended CryptoSession for recording the result of
OEMCrypto_ProductionReady().

Only OEMCrypto_SUCCESS is considered "production ready".  With the
exception of OEMCrypto_ERROR_NOT_IMPLEMENTED, any other result is
vendor-specific and indicates not being production ready.

Bug: 231655151
Test: metrics_collections_unittest
Change-Id: Ia0e5603d7ee1290238cce63d0194ae1aced424c1
This commit is contained in:
Alex Dale
2022-05-10 17:59:25 -07:00
parent f8146ee716
commit 88a7ff7685
5 changed files with 12 additions and 1 deletions

View File

@@ -298,6 +298,7 @@ class CryptoMetrics {
EventMetric<kOemCryptoResultFieldNumber, OEMCryptoResult>
oemcrypto_install_oem_private_key_;
ValueMetric<int> oemcrypto_watermarking_support_;
ValueMetric<int> oemcrypto_production_readiness_;
}; // class CryptoMetrics
// This class contains session-scoped metrics. All properties and

View File

@@ -211,6 +211,8 @@ void CryptoMetrics::Serialize(
oemcrypto_maximum_usage_table_header_size_.ToProto());
crypto_metrics->set_allocated_oemcrypto_watermarking_support(
oemcrypto_watermarking_support_.ToProto());
crypto_metrics->set_allocated_oemcrypto_production_readiness(
oemcrypto_production_readiness_.ToProto());
}
SessionMetrics::SessionMetrics() : session_id_(""), completed_(false) {}

View File

@@ -92,7 +92,7 @@ message WvCdmMetrics {
// This contains metrics that were captured at the CryptoSession level. These
// include CryptoSession metrics and most OEMCrypto metrics.
// next id: 86
// next id: 87
message CryptoMetrics {
// Crypto Session Metrics.
optional ValueMetric crypto_session_security_level = 1;
@@ -193,6 +193,7 @@ message WvCdmMetrics {
optional ValueMetric oemcrypto_minor_api_version = 83;
optional ValueMetric oemcrypto_maximum_usage_table_header_size = 84;
optional ValueMetric oemcrypto_watermarking_support = 85;
optional ValueMetric oemcrypto_production_readiness = 86;
}
// This contains metrics that were captured within a CdmSession. This contains

View File

@@ -445,6 +445,7 @@ TEST_F(CryptoMetricsTest, AllCryptoMetrics) {
crypto_metrics.oemcrypto_maximum_usage_table_header_size_.Record(321);
crypto_metrics.oemcrypto_watermarking_support_.Record(
OEMCrypto_WatermarkingAlwaysOn);
crypto_metrics.oemcrypto_production_readiness_.Record(OEMCrypto_SUCCESS);
WvCdmMetrics::CryptoMetrics actual;
crypto_metrics.Serialize(&actual);
@@ -538,6 +539,8 @@ TEST_F(CryptoMetricsTest, AllCryptoMetrics) {
actual.oemcrypto_maximum_usage_table_header_size().int_value());
EXPECT_EQ(static_cast<int>(OEMCrypto_WatermarkingAlwaysOn),
actual.oemcrypto_watermarking_support().int_value());
EXPECT_EQ(static_cast<int>(OEMCrypto_SUCCESS),
actual.oemcrypto_production_readiness().int_value());
}
} // namespace metrics
} // namespace wvcdm