diff options
| author | Robert Shih <robertshih@google.com> | 2019-03-07 11:22:11 -0800 |
|---|---|---|
| committer | Robert Shih <robertshih@google.com> | 2019-03-07 11:31:53 -0800 |
| commit | c6b74cbf65ed602395119c1eb5886c7b1e444727 (patch) | |
| tree | 4a4a590ae21ee7d4ab372e5cd747774cc844592d /drm | |
| parent | 9821dd321dafba4a35b8f672b2e247b0bfe2e9f7 (diff) | |
| download | frameworks_av-c6b74cbf65ed602395119c1eb5886c7b1e444727.tar.gz frameworks_av-c6b74cbf65ed602395119c1eb5886c7b1e444727.tar.bz2 frameworks_av-c6b74cbf65ed602395119c1eb5886c7b1e444727.zip | |
clearkey hidl: expand mock error handling
* handle mock error for offline license APIs
* add mock INVALID_STATE and UNKNOWN errors
Bug: 118402843
Test: VtsHalDrmV1_2TargetTest
Change-Id: Id59610d44f5786b2bb030c46e41aaae3d6c5b954
Diffstat (limited to 'drm')
| -rw-r--r-- | drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp | 15 | ||||
| -rw-r--r-- | drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h | 1 |
2 files changed, 15 insertions, 1 deletions
diff --git a/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp b/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp index badb99e402..d7dacb8a68 100644 --- a/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp +++ b/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp @@ -527,6 +527,10 @@ Return<Status> DrmPlugin::setPropertyString( mMockError = Status_V1_2::ERROR_DRM_SESSION_LOST_STATE; } else if (value == kFrameTooLargeValue) { mMockError = Status_V1_2::ERROR_DRM_FRAME_TOO_LARGE; + } else if (value == kInvalidStateValue) { + mMockError = Status_V1_2::ERROR_DRM_INVALID_STATE; + } else { + mMockError = Status_V1_2::ERROR_DRM_UNKNOWN; } } @@ -683,6 +687,10 @@ Return<void> DrmPlugin::getMetrics(getMetrics_cb _hidl_cb) { Return<void> DrmPlugin::getOfflineLicenseKeySetIds(getOfflineLicenseKeySetIds_cb _hidl_cb) { std::vector<std::string> licenseNames = mFileHandle.ListLicenses(); std::vector<KeySetId> keySetIds; + if (mMockError != Status_V1_2::OK) { + _hidl_cb(toStatus_1_0(mMockError), keySetIds); + return Void(); + } for (const auto& name : licenseNames) { std::vector<uint8_t> keySetId(name.begin(), name.end()); keySetIds.push_back(keySetId); @@ -693,6 +701,9 @@ Return<void> DrmPlugin::getOfflineLicenseKeySetIds(getOfflineLicenseKeySetIds_cb Return<Status> DrmPlugin::removeOfflineLicense(const KeySetId& keySetId) { + if (mMockError != Status_V1_2::OK) { + return toStatus_1_0(mMockError); + } std::string licenseName(keySetId.begin(), keySetId.end()); if (mFileHandle.DeleteLicense(licenseName)) { return Status::OK; @@ -706,7 +717,9 @@ Return<void> DrmPlugin::getOfflineLicenseState(const KeySetId& keySetId, DeviceFiles::LicenseState state; std::string license; OfflineLicenseState hLicenseState; - if (mFileHandle.RetrieveLicense(licenseName, &state, &license)) { + if (mMockError != Status_V1_2::OK) { + _hidl_cb(toStatus_1_0(mMockError), OfflineLicenseState::UNKNOWN); + } else if (mFileHandle.RetrieveLicense(licenseName, &state, &license)) { switch (state) { case DeviceFiles::kLicenseStateActive: hLicenseState = OfflineLicenseState::USABLE; diff --git a/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h b/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h index 1bbc822fbf..b83ce69d4e 100644 --- a/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h +++ b/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h @@ -40,6 +40,7 @@ static const std::string kDrmErrorTestValue(""); static const std::string kResourceContentionValue("resourceContention"); static const std::string kLostStateValue("lostState"); static const std::string kFrameTooLargeValue("frameTooLarge"); +static const std::string kInvalidStateValue("invalidState"); static const std::string kDeviceIdKey("deviceId"); static const uint8_t kTestDeviceIdData[] = |
