From 14bd15a08c4098a6f0f7207ba7b6c8000e24c93f Mon Sep 17 00:00:00 2001 From: Alex Dale Date: Wed, 30 Jun 2021 10:41:07 -0700 Subject: [PATCH] PST and non PST can handle unlimited license durations. [ Merge of http://go/wvgerrit/128183 ] As was the case with WvCdmStreamingUsageReportTest.ReportTest, the following tests were also updated to handle the case where "license duration" is unlimited: - WvCdmStreamingNoPstTest.UsageTest - WvCdmStreamingPstTest.UsageTest - WvCdmOfflineUsageReportTest.UsageTest This is due to the new license duration model used for V16 licenses. Bug: 163542905 Test: cdm_extended_duration_test Change-Id: I24d3fc17fcf19129a19ed39a5c6c1ddd59ed073d --- .../cdm/test/cdm_extended_duration_test.cpp | 97 +++++++++++++++---- 1 file changed, 80 insertions(+), 17 deletions(-) diff --git a/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp b/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp index 13764cc6..334b6fc9 100644 --- a/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp +++ b/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp @@ -1308,10 +1308,25 @@ TEST_P(WvCdmStreamingNoPstTest, UsageTest) { QueryKeyStatus(true, true, &license_duration_remaining, &playback_duration_remaining); - EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, - expected_seconds_since_license_received, kClockTolerance); - EXPECT_NEAR(initial_playback_duration_remaining - playback_duration_remaining, - expected_seconds_since_initial_playback, kClockTolerance); + if (initial_license_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(license_duration_remaining, kUnlimitedDurationValue); + } else { + EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, + expected_seconds_since_license_received, kClockTolerance) + << "initial_license_duration_remaining = " + << initial_license_duration_remaining + << ", license_duration_remaining = " << license_duration_remaining; + } + + if (initial_playback_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(playback_duration_remaining, kUnlimitedDurationValue); + } else { + EXPECT_NEAR(initial_playback_duration_remaining - playback_duration_remaining, + expected_seconds_since_initial_playback, kClockTolerance) + << "initial_playback_duration_remaining = " + << initial_playback_duration_remaining + << ", playback_duration_remaining = " << playback_duration_remaining; + } decryptor_->CloseSession(session_id_); } @@ -1375,10 +1390,25 @@ TEST_P(WvCdmStreamingPstTest, UsageTest) { QueryKeyStatus(true, false, &license_duration_remaining, &playback_duration_remaining); - EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, - expected_seconds_since_license_received, kClockTolerance); - EXPECT_NEAR(initial_playback_duration_remaining - playback_duration_remaining, - expected_seconds_since_initial_playback, kClockTolerance); + if (initial_license_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(license_duration_remaining, kUnlimitedDurationValue); + } else { + EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, + expected_seconds_since_license_received, kClockTolerance) + << "initial_license_duration_remaining = " + << initial_license_duration_remaining + << ", license_duration_remaining = " << license_duration_remaining; + } + + if (initial_playback_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(playback_duration_remaining, kUnlimitedDurationValue); + } else { + EXPECT_NEAR(initial_playback_duration_remaining - playback_duration_remaining, + expected_seconds_since_initial_playback, kClockTolerance) + << "initial_playback_duration_remaining = " + << initial_playback_duration_remaining + << ", playback_duration_remaining = " << playback_duration_remaining; + } decryptor_->CloseSession(session_id_); } @@ -1556,11 +1586,29 @@ TEST_P(WvCdmOfflineUsageReportTest, UsageTest) { QueryKeyStatus(false, true, &license_duration_remaining, &playback_duration_remaining); - EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, - expected_seconds_since_license_received, kClockTolerance); - EXPECT_NEAR( - initial_playback_duration_remaining - playback_duration_remaining, - expected_seconds_since_initial_playback, kClockTolerance); + if (initial_license_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(license_duration_remaining, kUnlimitedDurationValue) + << "i = " << i; + } else { + EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, + expected_seconds_since_license_received, kClockTolerance) + << "initial_license_duration_remaining = " + << initial_license_duration_remaining + << ", license_duration_remaining = " << license_duration_remaining + << ", i = " << i; + } + + if (initial_playback_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(playback_duration_remaining, kUnlimitedDurationValue) + << "i = " << i; + } else { + EXPECT_NEAR(initial_playback_duration_remaining - playback_duration_remaining, + expected_seconds_since_initial_playback, kClockTolerance) + << "initial_playback_duration_remaining = " + << initial_playback_duration_remaining + << ", playback_duration_remaining = " << playback_duration_remaining + << ", i = " << i; + } // Decrypt data SubSampleInfo* data = &kEncryptedOfflineClip2SubSample; @@ -1600,10 +1648,25 @@ TEST_P(WvCdmOfflineUsageReportTest, UsageTest) { QueryKeyStatus(false, true, &license_duration_remaining, &playback_duration_remaining); - EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, - expected_seconds_since_license_received, kClockTolerance); - EXPECT_NEAR(initial_playback_duration_remaining - playback_duration_remaining, - expected_seconds_since_initial_playback, kClockTolerance); + if (initial_license_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(license_duration_remaining, kUnlimitedDurationValue); + } else { + EXPECT_NEAR(initial_license_duration_remaining - license_duration_remaining, + expected_seconds_since_license_received, kClockTolerance) + << "initial_license_duration_remaining = " + << initial_license_duration_remaining + << ", license_duration_remaining = " << license_duration_remaining; + } + + if (initial_playback_duration_remaining == kUnlimitedDurationValue) { + EXPECT_EQ(playback_duration_remaining, kUnlimitedDurationValue); + } else { + EXPECT_NEAR(initial_playback_duration_remaining - playback_duration_remaining, + expected_seconds_since_initial_playback, kClockTolerance) + << "initial_playback_duration_remaining = " + << initial_playback_duration_remaining + << ", playback_duration_remaining = " << playback_duration_remaining; + } decryptor_->CloseSession(session_id_);