Integration test for license duration with renewal

This is a squash of several different CLs with chnages only affecting
duration_use_case_test.cpp

* Integration test for license duration with renewal

[ Merge of http://go/wvgerrit/117263 ]

Bug: 180067457

* Add test for infinite renewal

[ Merge of http://go/wvgerrit/107743 ]

This adds a test that verifies an infinite renewal is processed
correctly.

Bug: 162516965
Bug: 170355696
Bug: 169213621
Bug: 166728158

* Add more time to CdmUseCase_Streaming test

[ Merge of http://go/wvgerrit/114146 and http://go/wvgerrit/114147 ]

The duration tests CdmUseCase_Streaming.Case3 was flaky on the
buildbot for platforms with a real clock because there was only room
for 1 second of fudge at the end of playback -- i.e. the rental window
ended at 35s, but the last playback was 34s.

Bug: 175741647

* Set renewal server on command line for tests

[ Merge of http://go/wvgerrit/110903 ]

This CL adds the ability to set the renewal server on the command
line, and adds some comments to the build scripts' README file to
explain how to test a server rollout.

Bug: 173031207

* Change duration test fudge from 1 to 2

[ Merge of http://go/wvgerrit/112143 ]

Some duration tests are flakey. Let's see if this cleans them up
enough.

Bug: 175741647

* Correct some grammar

[ Merged from http://go/wvgerrit/111824 and http://go/wvgerrit/112063 ]

* Add license duration test

[ Merge of http://go/wvgerrit/109143 ]

This adds a license duration test that behaves the same as a rental
duration test. We do not encourage content providers to do this, but
it is reasonable that legacy licenses should work.

Bug: 172099147

* Shorten duration tests

[ Merge of http://go/wvgerrit/108664 ]

This CL tweaks some of the times in the duration use case tests so
that they take less time to run.

These changes the CdmUseCase test time from six and half hours to 3
and a quarter. A 50% savings!

Bug: 170746277

* Improve logging and edge cases in duration tests

[ Merge of http://go/wvgerrit/108663 ]

This cleans up some logging, and handles some edge cases on renewals
when the renewal request round trip overlaps the cutoff time.

Bug: 170746277

* Remove extra cutoff computations

[ Merge of http://go/wvgerrit/106783 ]

The duration tests originally tried to keep track of when the timer
would have gone off if the test was allowed to continue. This proved
impracticle, so the extra parameter has been removed. The tests still
closely match the documented use cases.

Bug: 169453960

* But not too lenient

[ Merge of http://go/wvgerrit/107943 ]

Previously, the duration tests were modified to allow playback to
continue in some cases. See the documentation or code for a list of
these cases. However, the tests had been modified to force playback to
continue in these cases.

This is not desired: in some cases, v15 devices can restrict playback
as requested. This CL changes the tests so that playback restriction
is allowed.  In other words, we no longer force older devices to fail
the test.

Bug: 169255315

* Make some integration tests lenient

[ Merge of http://go/wvgerrit/106843 ]

This allows devices that have OEMCrypto version < v16 or do not
support usage tables to continue playback for an offline license after
the playback window has expired.

Bug: 169582310
Test: duration_use_case_test.cpp

* Add Renewal Use Case tests

[ Merge of http://go/wvgerrit/105826 and http://go/wvgerrit/103784 ]

This CL adds several integration tests that match the duration use
cases with renewals. The test classes are designed for the core cdm,
but the test cases match those found in
oemcrypto/odk/test/odk_timer_test.cpp.

Test: tests pass except for documented bugs.
Bug: 161463952
Change-Id: Ib4775d48490cf150b89aeb2cc64e01a1428f0ab5
This commit is contained in:
Rahul Frias
2021-03-08 10:22:00 -08:00
parent 3176f5f66f
commit 9ab837c78a

File diff suppressed because it is too large Load Diff