diff --git a/libwvdrmengine/cdm/core/test/keybox_ota_test.cpp b/libwvdrmengine/cdm/core/test/keybox_ota_test.cpp index d7c965e6..ca393fa6 100644 --- a/libwvdrmengine/cdm/core/test/keybox_ota_test.cpp +++ b/libwvdrmengine/cdm/core/test/keybox_ota_test.cpp @@ -45,11 +45,20 @@ class CdmOtaKeyboxTest : public ::testing::Test { std::string cert_authority; CdmProvisioningRequest prov_request; std::string provisioning_server_url; - CdmResponseType result = cdm_engine->GetProvisioningRequest( - cert_type, cert_authority, config.provisioning_service_certificate(), - kLevelDefault, &prov_request, &provisioning_server_url); + CdmResponseType result = CERT_PROVISIONING_NONCE_GENERATION_ERROR; + // Get a provisioning request. We might need one retry if there is a nonce + // flood failure. + for (int i = 0; i < 2; i++) { + result = cdm_engine->GetProvisioningRequest( + cert_type, cert_authority, config.provisioning_service_certificate(), + kLevelDefault, &prov_request, &provisioning_server_url); + if (result == CERT_PROVISIONING_NONCE_GENERATION_ERROR) { + TestSleep::Sleep(2); + continue; + } + break; + } ASSERT_EQ(NO_ERROR, result); - LOGV("Provisioning request: req = %s", prov_request.c_str()); // Ignore URL provided by CdmEngine. Use ours, as configured