Squashed merge 3 CLs.
1. "Change CdmResponseType from enum into a struct" Merged from http://go/wvgerrit/163199 Bug: 253271674 2. "Log request information when server returns 401" Bug: 260760387 Bug: 186031735 Merged from http://go/wvgerrit/162798 3. "Specify server version on the command line" Bug: 251599048 Merged from http://go/wvgerrit/158897 Test: build android.hardware.drm-service.widevine Test: Netflix and Play Movies & TV Test: build_and_run_all_unit_tests.sh Bug: 253271674 Change-Id: I70c950acce070609ee0343920ec68e66b058bc23
This commit is contained in:
@@ -20,6 +20,13 @@ template <>
|
||||
void SetAttributeField<drm_metrics::Attributes::kErrorCodeFieldNumber,
|
||||
CdmResponseType>(const CdmResponseType& cdm_error,
|
||||
drm_metrics::Attributes* attributes) {
|
||||
attributes->set_error_code(cdm_error.Enum());
|
||||
}
|
||||
|
||||
template <>
|
||||
void SetAttributeField<drm_metrics::Attributes::kErrorCodeFieldNumber,
|
||||
CdmResponseEnum>(const CdmResponseEnum& cdm_error,
|
||||
drm_metrics::Attributes* attributes) {
|
||||
attributes->set_error_code(cdm_error);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,32 +31,42 @@ TEST_F(EngineMetricsTest, AllEngineMetrics) {
|
||||
EngineMetrics engine_metrics;
|
||||
|
||||
// Set some values in all of the engine metrics.
|
||||
engine_metrics.cdm_engine_add_key_.Record(1.0, KEY_ADDED,
|
||||
engine_metrics.cdm_engine_add_key_.Record(1.0, CdmResponseType(KEY_ADDED),
|
||||
kLicenseTypeRelease);
|
||||
engine_metrics.cdm_engine_close_session_.Increment(NO_ERROR);
|
||||
engine_metrics.cdm_engine_decrypt_.Record(1.0, NO_ERROR,
|
||||
engine_metrics.cdm_engine_close_session_.Increment(CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_decrypt_.Record(1.0, CdmResponseType(NO_ERROR),
|
||||
metrics::Pow2Bucket(8));
|
||||
engine_metrics.cdm_engine_find_session_for_key_.Increment(false);
|
||||
engine_metrics.cdm_engine_generate_key_request_.Record(1.0, NO_ERROR,
|
||||
kLicenseTypeRelease);
|
||||
engine_metrics.cdm_engine_get_provisioning_request_.Record(1.0, NO_ERROR);
|
||||
engine_metrics.cdm_engine_get_usage_info_.Record(1.0, NO_ERROR,
|
||||
UNKNOWN_ERROR);
|
||||
engine_metrics.cdm_engine_handle_provisioning_response_.Record(1.0, NO_ERROR);
|
||||
engine_metrics.cdm_engine_open_key_set_session_.Increment(NO_ERROR);
|
||||
engine_metrics.cdm_engine_open_session_.Increment(NO_ERROR);
|
||||
engine_metrics.cdm_engine_query_key_status_.Record(1.0, NO_ERROR);
|
||||
engine_metrics.cdm_engine_release_all_usage_info_.Increment(NO_ERROR);
|
||||
engine_metrics.cdm_engine_release_usage_info_.Increment(NO_ERROR);
|
||||
engine_metrics.cdm_engine_remove_keys_.Increment(NO_ERROR);
|
||||
engine_metrics.cdm_engine_restore_key_.Record(1.0, NO_ERROR);
|
||||
engine_metrics.cdm_engine_unprovision_.Increment(NO_ERROR, kSecurityLevelL1);
|
||||
engine_metrics.cdm_engine_generate_key_request_.Record(
|
||||
1.0, CdmResponseType(NO_ERROR), kLicenseTypeRelease);
|
||||
engine_metrics.cdm_engine_get_provisioning_request_.Record(
|
||||
1.0, CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_get_usage_info_.Record(
|
||||
1.0, CdmResponseType(NO_ERROR), UNKNOWN_ERROR);
|
||||
engine_metrics.cdm_engine_handle_provisioning_response_.Record(
|
||||
1.0, CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_open_key_set_session_.Increment(
|
||||
CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_open_session_.Increment(CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_query_key_status_.Record(1.0,
|
||||
CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_release_all_usage_info_.Increment(
|
||||
CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_release_usage_info_.Increment(
|
||||
CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_remove_keys_.Increment(CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_restore_key_.Record(1.0, CdmResponseType(NO_ERROR));
|
||||
engine_metrics.cdm_engine_unprovision_.Increment(CdmResponseType(NO_ERROR),
|
||||
kSecurityLevelL1);
|
||||
engine_metrics.SetAppPackageName("test package name");
|
||||
engine_metrics.cdm_engine_cdm_version_.Record("test cdm version");
|
||||
engine_metrics.cdm_engine_creation_time_millis_.Record(100);
|
||||
engine_metrics.cdm_engine_get_secure_stop_ids_.Increment(UNKNOWN_ERROR);
|
||||
engine_metrics.cdm_engine_remove_all_usage_info_.Increment(UNKNOWN_ERROR);
|
||||
engine_metrics.cdm_engine_remove_usage_info_.Increment(UNKNOWN_ERROR);
|
||||
engine_metrics.cdm_engine_get_secure_stop_ids_.Increment(
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
engine_metrics.cdm_engine_remove_all_usage_info_.Increment(
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
engine_metrics.cdm_engine_remove_usage_info_.Increment(
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
|
||||
// Also set and serialize the oemcrypto dynamic adapter metrics.
|
||||
OemCryptoDynamicAdapterMetrics adapter_metrics;
|
||||
@@ -110,14 +120,17 @@ TEST_F(EngineMetricsTest, EngineAndCryptoMetrics) {
|
||||
EngineMetrics engine_metrics;
|
||||
|
||||
// Set some values in some of the engine metrics and some crypto metrics.
|
||||
engine_metrics.cdm_engine_add_key_.Record(1.0, KEY_ADDED,
|
||||
engine_metrics.cdm_engine_add_key_.Record(1.0, CdmResponseType(KEY_ADDED),
|
||||
kLicenseTypeRelease);
|
||||
engine_metrics.cdm_engine_close_session_.Increment(UNKNOWN_ERROR);
|
||||
engine_metrics.cdm_engine_close_session_.Increment(
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
CryptoMetrics* crypto_metrics = engine_metrics.GetCryptoMetrics();
|
||||
|
||||
crypto_metrics->crypto_session_get_device_unique_id_.Increment(NO_ERROR);
|
||||
crypto_metrics->crypto_session_get_device_unique_id_.Increment(
|
||||
CdmResponseType(NO_ERROR));
|
||||
crypto_metrics->crypto_session_generic_decrypt_.Record(
|
||||
2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128);
|
||||
2.0, CdmResponseType(NO_ERROR), Pow2Bucket(1025),
|
||||
kEncryptionAlgorithmAesCbc128);
|
||||
|
||||
WvCdmMetrics actual_metrics;
|
||||
engine_metrics.Serialize(&actual_metrics);
|
||||
@@ -178,10 +191,11 @@ TEST_F(EngineMetricsTest, EngineMetricsWithSessions) {
|
||||
EngineMetrics engine_metrics;
|
||||
|
||||
// Set a values in an engine metric and in a crypto metric.
|
||||
engine_metrics.cdm_engine_add_key_.Record(1.0, KEY_ADDED,
|
||||
engine_metrics.cdm_engine_add_key_.Record(1.0, CdmResponseType(KEY_ADDED),
|
||||
kLicenseTypeRelease);
|
||||
engine_metrics.GetCryptoMetrics()
|
||||
->crypto_session_load_certificate_private_key_.Record(2.0, NO_ERROR);
|
||||
->crypto_session_load_certificate_private_key_.Record(
|
||||
2.0, CdmResponseType(NO_ERROR));
|
||||
|
||||
// Create two sessions and record some metrics.
|
||||
std::shared_ptr<SessionMetrics> session_metrics_1 =
|
||||
@@ -192,7 +206,8 @@ TEST_F(EngineMetricsTest, EngineMetricsWithSessions) {
|
||||
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);
|
||||
2.0, CdmResponseType(NO_ERROR), Pow2Bucket(1025),
|
||||
kEncryptionAlgorithmAesCbc128);
|
||||
|
||||
WvCdmMetrics actual_metrics;
|
||||
engine_metrics.Serialize(&actual_metrics);
|
||||
@@ -271,11 +286,13 @@ TEST_F(SessionMetricsTest, AllSessionMetrics) {
|
||||
SessionMetrics session_metrics;
|
||||
session_metrics.SetSessionId(kSessionId1);
|
||||
session_metrics.cdm_session_life_span_.Record(1.0);
|
||||
session_metrics.cdm_session_renew_key_.Record(1.0, NO_ERROR);
|
||||
session_metrics.cdm_session_renew_key_.Record(1.0, CdmResponseType(NO_ERROR));
|
||||
session_metrics.cdm_session_restore_offline_session_.Increment(
|
||||
NO_ERROR, DeviceFiles::ResponseType::kObjectNotInitialized);
|
||||
CdmResponseType(NO_ERROR),
|
||||
DeviceFiles::ResponseType::kObjectNotInitialized);
|
||||
session_metrics.cdm_session_restore_usage_session_.Increment(
|
||||
NO_ERROR, DeviceFiles::ResponseType::kObjectNotInitialized);
|
||||
CdmResponseType(NO_ERROR),
|
||||
DeviceFiles::ResponseType::kObjectNotInitialized);
|
||||
session_metrics.cdm_session_license_request_latency_ms_.Record(
|
||||
2.0, kKeyRequestTypeInitial);
|
||||
session_metrics.oemcrypto_build_info_.Record("test build info");
|
||||
@@ -286,7 +303,8 @@ TEST_F(SessionMetricsTest, AllSessionMetrics) {
|
||||
|
||||
// Record a CryptoMetrics metric in the session.
|
||||
session_metrics.GetCryptoMetrics()->crypto_session_generic_decrypt_.Record(
|
||||
2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128);
|
||||
2.0, CdmResponseType(NO_ERROR), Pow2Bucket(1025),
|
||||
kEncryptionAlgorithmAesCbc128);
|
||||
|
||||
WvCdmMetrics::SessionMetrics actual;
|
||||
session_metrics.Serialize(&actual);
|
||||
@@ -327,33 +345,45 @@ 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_all_usage_reports_.Increment(
|
||||
CdmResponseType(NO_ERROR));
|
||||
crypto_metrics.crypto_session_delete_multiple_usage_information_.Increment(
|
||||
NO_ERROR);
|
||||
CdmResponseType(NO_ERROR));
|
||||
crypto_metrics.crypto_session_generic_decrypt_.Record(
|
||||
2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128);
|
||||
2.0, CdmResponseType(NO_ERROR), Pow2Bucket(1025),
|
||||
kEncryptionAlgorithmAesCbc128);
|
||||
crypto_metrics.crypto_session_generic_encrypt_.Record(
|
||||
2.0, NO_ERROR, Pow2Bucket(1025), kEncryptionAlgorithmAesCbc128);
|
||||
2.0, CdmResponseType(NO_ERROR), Pow2Bucket(1025),
|
||||
kEncryptionAlgorithmAesCbc128);
|
||||
crypto_metrics.crypto_session_generic_sign_.Record(
|
||||
2.0, NO_ERROR, Pow2Bucket(1025), kSigningAlgorithmHmacSha256);
|
||||
2.0, CdmResponseType(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);
|
||||
2.0, CdmResponseType(NO_ERROR), Pow2Bucket(1025),
|
||||
kSigningAlgorithmHmacSha256);
|
||||
crypto_metrics.crypto_session_get_device_unique_id_.Increment(
|
||||
CdmResponseType(NO_ERROR));
|
||||
crypto_metrics.crypto_session_get_token_.Increment(CdmResponseType(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_open_.Record(1.0, NO_ERROR, kLevelDefault);
|
||||
crypto_metrics.crypto_session_update_usage_information_.Record(1.0, NO_ERROR);
|
||||
crypto_metrics.crypto_session_load_certificate_private_key_.Record(
|
||||
1.0, CdmResponseType(NO_ERROR));
|
||||
crypto_metrics.crypto_session_open_.Record(1.0, CdmResponseType(NO_ERROR),
|
||||
kLevelDefault);
|
||||
crypto_metrics.crypto_session_update_usage_information_.Record(
|
||||
1.0, CdmResponseType(NO_ERROR));
|
||||
crypto_metrics.crypto_session_usage_information_support_.Record(true);
|
||||
crypto_metrics.crypto_session_security_level_.Record(kSecurityLevelL2);
|
||||
|
||||
// Usage table header metrics.
|
||||
crypto_metrics.usage_table_header_initial_size_.Record(200);
|
||||
crypto_metrics.usage_table_header_add_entry_.Increment(UNKNOWN_ERROR);
|
||||
crypto_metrics.usage_table_header_delete_entry_.Increment(UNKNOWN_ERROR);
|
||||
crypto_metrics.usage_table_header_update_entry_.Record(2.0, UNKNOWN_ERROR);
|
||||
crypto_metrics.usage_table_header_load_entry_.Increment(UNKNOWN_ERROR);
|
||||
crypto_metrics.usage_table_header_add_entry_.Increment(
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
crypto_metrics.usage_table_header_delete_entry_.Increment(
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
crypto_metrics.usage_table_header_update_entry_.Record(
|
||||
2.0, CdmResponseType(UNKNOWN_ERROR));
|
||||
crypto_metrics.usage_table_header_load_entry_.Increment(
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
// Usage table LRU metrics.
|
||||
crypto_metrics.usage_table_header_lru_usage_info_count_.Record(150);
|
||||
crypto_metrics.usage_table_header_lru_offline_license_count_.Record(50);
|
||||
|
||||
Reference in New Issue
Block a user