Add multiple provision attempts in vts openSession test

Bug: 233085112
Test: VtsAidlHalDrmTargetTest
Change-Id: I4dd42b3c7155b6476f51a8cc4cca185bea7d565f
This commit is contained in:
Kyle Zhang
2022-05-23 23:43:38 +00:00
parent 412f907bd3
commit f782f6431c

View File

@@ -73,6 +73,7 @@ std::string HalBaseName(const std::string& fullname) {
}
const char* kDrmIface = "android.hardware.drm.IDrmFactory";
const int MAX_OPEN_SESSION_ATTEMPTS = 3;
std::string HalFullName(const std::string& iface, const std::string& basename) {
return iface + '/' + basename;
@@ -328,9 +329,19 @@ SessionId DrmHalTest::openSession(SecurityLevel level, Status* err) {
*/
SessionId DrmHalTest::openSession() {
SessionId sessionId;
auto ret = drmPlugin->openSession(SecurityLevel::DEFAULT, &sessionId);
EXPECT_OK(ret);
EXPECT_NE(0u, sessionId.size());
int attmpt = 0;
while (attmpt++ < MAX_OPEN_SESSION_ATTEMPTS) {
auto ret = drmPlugin->openSession(SecurityLevel::DEFAULT, &sessionId);
if(DrmErr(ret) == Status::ERROR_DRM_NOT_PROVISIONED) {
provision();
} else {
EXPECT_OK(ret);
EXPECT_NE(0u, sessionId.size());
break;
}
}
return sessionId;
}