Halt tests after multiple failures

Merge from Widevine repo of http://go/wvgerrit/43440

This CL changes several tests so that they abort after multiple
failures.  This prevents a network error from putting one of the usage
table tests into an infinite loop.

bug: 73397596
test: unit tests
Change-Id: Iaaec9eb2b39a6a2b2cfc90ee1c28bae0486aa851
This commit is contained in:
Fred Gylys-Colwell
2018-02-14 17:37:11 -08:00
parent 10275f508a
commit a0040ec5bf
2 changed files with 22 additions and 7 deletions

View File

@@ -963,13 +963,17 @@ TEST_F(WvCdmExtendedDurationTest, UsageOverflowTest) {
CdmResponseType status = decryptor_.GetUsageInfo( CdmResponseType status = decryptor_.GetUsageInfo(
"", kDefaultCdmIdentifier, &usage_info); "", kDefaultCdmIdentifier, &usage_info);
EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status); EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status);
int error_count = 0;
while (usage_info.size() > 0) { while (usage_info.size() > 0) {
for (size_t i = 0; i < usage_info.size(); ++i) { for (size_t i = 0; i < usage_info.size(); ++i) {
release_msg = release_msg =
GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]); GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]);
EXPECT_EQ(NO_ERROR, decryptor_.ReleaseUsageInfo(release_msg, EXPECT_EQ(NO_ERROR, decryptor_.ReleaseUsageInfo(release_msg,
kDefaultCdmIdentifier)); kDefaultCdmIdentifier))
<< i << "/" << usage_info.size() << " (err " << (error_count++) << ")"
<< release_msg;
} }
ASSERT_LE(error_count, 100); // Give up after 100 failures.
status = decryptor_.GetUsageInfo("", kDefaultCdmIdentifier, &usage_info); status = decryptor_.GetUsageInfo("", kDefaultCdmIdentifier, &usage_info);
switch (status) { switch (status) {
case KEY_MESSAGE: EXPECT_FALSE(usage_info.empty()); break; case KEY_MESSAGE: EXPECT_FALSE(usage_info.empty()); break;
@@ -1395,6 +1399,7 @@ TEST_P(WvCdmStreamingUsageReportTest, UsageTest) {
CdmResponseType status = decryptor_.GetUsageInfo( CdmResponseType status = decryptor_.GetUsageInfo(
"", kDefaultCdmIdentifier, &usage_info); "", kDefaultCdmIdentifier, &usage_info);
EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status); EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status);
int error_count = 0;
while (usage_info.size() > 0) { while (usage_info.size() > 0) {
for (size_t i = 0; i < usage_info.size(); ++i) { for (size_t i = 0; i < usage_info.size(); ++i) {
ValidateReleaseRequest(usage_info[i], ValidateReleaseRequest(usage_info[i],
@@ -1403,9 +1408,12 @@ TEST_P(WvCdmStreamingUsageReportTest, UsageTest) {
expected_seconds_since_last_playback); expected_seconds_since_last_playback);
release_msg = release_msg =
GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]); GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]);
EXPECT_EQ(NO_ERROR, decryptor_.ReleaseUsageInfo(release_msg, EXPECT_EQ(NO_ERROR,
kDefaultCdmIdentifier)); decryptor_.ReleaseUsageInfo(release_msg, kDefaultCdmIdentifier))
<< i << "/" << usage_info.size() << " (err " << (error_count++) << ")"
<< release_msg;
} }
ASSERT_LE(error_count, 100); // Give up after 100 failures.
status = decryptor_.GetUsageInfo("", kDefaultCdmIdentifier, &usage_info); status = decryptor_.GetUsageInfo("", kDefaultCdmIdentifier, &usage_info);
switch (status) { switch (status) {
case KEY_MESSAGE: case KEY_MESSAGE:

View File

@@ -2832,13 +2832,17 @@ TEST_F(WvCdmRequestLicenseTest, UsageInfoRetryTest) {
// before release. // before release.
status = decryptor_.GetUsageInfo(app_id, kDefaultCdmIdentifier, &usage_info); status = decryptor_.GetUsageInfo(app_id, kDefaultCdmIdentifier, &usage_info);
EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status); EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status);
int error_count = 0;
while (usage_info.size() > 0) { while (usage_info.size() > 0) {
for (size_t i = 0; i < usage_info.size(); ++i) { for (size_t i = 0; i < usage_info.size(); ++i) {
release_msg = release_msg =
GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]); GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]);
EXPECT_EQ(NO_ERROR, decryptor_.ReleaseUsageInfo(release_msg, EXPECT_EQ(NO_ERROR, decryptor_.ReleaseUsageInfo(release_msg,
kDefaultCdmIdentifier)); kDefaultCdmIdentifier))
<< i << "/" << usage_info.size() << " (err " << (error_count++) << ")"
<< release_msg;
} }
ASSERT_LE(error_count, 100); // Give up after 100 failures.
status = decryptor_.GetUsageInfo( status = decryptor_.GetUsageInfo(
app_id, kDefaultCdmIdentifier, &usage_info); app_id, kDefaultCdmIdentifier, &usage_info);
switch (status) { switch (status) {
@@ -2925,14 +2929,17 @@ TEST_P(WvCdmUsageInfoTest, UsageInfo) {
decryptor_.GetUsageInfo(usage_info_data->app_id, kDefaultCdmIdentifier, decryptor_.GetUsageInfo(usage_info_data->app_id, kDefaultCdmIdentifier,
&usage_info); &usage_info);
EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status); EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status);
int error_count = 0;
while (usage_info.size() > 0) { while (usage_info.size() > 0) {
for (size_t i = 0; i < usage_info.size(); ++i) { for (size_t i = 0; i < usage_info.size(); ++i) {
release_msg = release_msg =
GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]); GetUsageInfoResponse(g_license_server, g_client_auth, usage_info[i]);
EXPECT_EQ( EXPECT_EQ(NO_ERROR,
NO_ERROR, decryptor_.ReleaseUsageInfo(release_msg, kDefaultCdmIdentifier))
decryptor_.ReleaseUsageInfo(release_msg, kDefaultCdmIdentifier)); << i << "/" << usage_info.size() << " (err " << (error_count++) << ")"
<< release_msg;
} }
ASSERT_LE(error_count, 100); // Give up after 100 failures.
status = decryptor_.GetUsageInfo(usage_info_data->app_id, status = decryptor_.GetUsageInfo(usage_info_data->app_id,
kDefaultCdmIdentifier, &usage_info); kDefaultCdmIdentifier, &usage_info);
EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status); EXPECT_EQ(usage_info.empty() ? NO_ERROR : KEY_MESSAGE, status);