Enforce OEMCrypto insufficient resources error reporting
[ Merge of http://go/wvgerrit/63682 and http://go/wvgerrit/4977904 ] Enforce OEMCrypto insufficient resources error reporting in CDM tests. In addition, when CreateNew/LoadUsageEntry fails with OEMCrypto insufficient resources error, delete a random usage entry and retry. The current behavior evicts low index entries from the usage table, which was a crude attempt to emulate a LRU. This was deficient as, on occasion, it will result in the deletion of a recently added usage entry. Bug: 111260263 Bug: 113828866 Bug: 120433165 Test: Widevine OEMCrypto tests, integration tests. GtsMediaTestCases. Play movies and Netflix playback tests. GtsMediaTestCases MediaDrmTest#testUsageTableCapacity Change-Id: I63340f76d1e2af3c6834b98ad816e11eea18fc7f
This commit is contained in:
@@ -71,6 +71,14 @@ class UsageTableHeader {
|
||||
DeviceFiles* handle,
|
||||
metrics::CryptoMetrics* metrics);
|
||||
|
||||
// Test only method. This method emulates the behavior of DeleteEntry
|
||||
// without actually invoking OEMCrypto (through CryptoSession)
|
||||
// or storage (through DeviceFiles). It modifies internal data structures
|
||||
// when DeleteEntry is mocked. This allows one to test methods that are
|
||||
// dependent on DeleteEntry without having to set expectations
|
||||
// for the objects that DeleteEntry depends on.
|
||||
void DeleteEntryForTest(uint32_t usage_entry_number);
|
||||
|
||||
private:
|
||||
CdmResponseType MoveEntry(uint32_t from /* usage entry number */,
|
||||
const CdmUsageEntry& from_usage_entry,
|
||||
@@ -119,6 +127,9 @@ class UsageTableHeader {
|
||||
|
||||
metrics::CryptoMetrics alternate_crypto_metrics_;
|
||||
|
||||
// TODO(rfrias): Move to utility class
|
||||
uint32_t GetRandomInRange(size_t upper_bound_inclusive);
|
||||
|
||||
// Test related declarations
|
||||
friend class UsageTableHeaderTest;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user