Merge "Fix handling of INSUFFICIENT_RESOURCES in LoadEntry"
This commit is contained in:
committed by
Android (Google) Code Review
commit
92e123d8ea
@@ -282,9 +282,12 @@ class MockUsageTableHeader : public UsageTableHeader {
|
||||
|
||||
// gmock methods
|
||||
using ::testing::_;
|
||||
using ::testing::AllOf;
|
||||
using ::testing::AtMost;
|
||||
using ::testing::ElementsAreArray;
|
||||
using ::testing::Ge;
|
||||
using ::testing::Invoke;
|
||||
using ::testing::Lt;
|
||||
using ::testing::NotNull;
|
||||
using ::testing::Return;
|
||||
using ::testing::SaveArg;
|
||||
@@ -977,14 +980,16 @@ TEST_F(UsageTableHeaderTest,
|
||||
MockUsageTableHeader* mock_usage_table_header = SetUpMock();
|
||||
Init(kSecurityLevelL1, kUsageTableHeader, k10UsageEntryInfoVector);
|
||||
|
||||
uint32_t usage_entry_number_to_load = rand() /
|
||||
(RAND_MAX / k10UsageEntryInfoVector.size() + 1);
|
||||
int64_t usage_entry_number_to_load =
|
||||
MockUsageTableHeader::GetRandomInRange(k10UsageEntryInfoVector.size());
|
||||
ASSERT_THAT(usage_entry_number_to_load,
|
||||
AllOf(Ge(0), Lt((int64_t)k10UsageEntryInfoVector.size())));
|
||||
CdmUsageEntry usage_entry_to_load = kUsageEntry;
|
||||
|
||||
// Setup expectations
|
||||
EXPECT_CALL(*mock_usage_table_header,
|
||||
DeleteEntry(_, device_files_, NotNull()))
|
||||
.Times(AtMost(1))
|
||||
.Times(1)
|
||||
.WillRepeatedly(
|
||||
DoAll(Invoke(this, &UsageTableHeaderTest::DeleteEntry),
|
||||
Return(NO_ERROR)));
|
||||
@@ -1008,14 +1013,16 @@ TEST_F(UsageTableHeaderTest,
|
||||
MockUsageTableHeader* mock_usage_table_header = SetUpMock();
|
||||
Init(kSecurityLevelL1, kUsageTableHeader, k10UsageEntryInfoVector);
|
||||
|
||||
uint32_t usage_entry_number_to_load = rand() /
|
||||
(RAND_MAX / k10UsageEntryInfoVector.size() + 1);
|
||||
int64_t usage_entry_number_to_load =
|
||||
MockUsageTableHeader::GetRandomInRange(k10UsageEntryInfoVector.size());
|
||||
ASSERT_THAT(usage_entry_number_to_load,
|
||||
AllOf(Ge(0), Lt((int64_t)k10UsageEntryInfoVector.size())));
|
||||
CdmUsageEntry usage_entry_to_load = kUsageEntry;
|
||||
|
||||
// Setup expectations
|
||||
EXPECT_CALL(*mock_usage_table_header,
|
||||
DeleteEntry(_, device_files_, NotNull()))
|
||||
.Times(AtMost(2))
|
||||
.Times(2)
|
||||
.WillRepeatedly(
|
||||
DoAll(Invoke(this, &UsageTableHeaderTest::DeleteEntry),
|
||||
Return(NO_ERROR)));
|
||||
@@ -1039,21 +1046,23 @@ TEST_F(UsageTableHeaderTest, LoadEntry_LoadUsageEntryFailsThrice) {
|
||||
MockUsageTableHeader* mock_usage_table_header = SetUpMock();
|
||||
Init(kSecurityLevelL1, kUsageTableHeader, k10UsageEntryInfoVector);
|
||||
|
||||
uint32_t usage_entry_number_to_load = rand() /
|
||||
(RAND_MAX / k10UsageEntryInfoVector.size() + 1);
|
||||
int64_t usage_entry_number_to_load =
|
||||
MockUsageTableHeader::GetRandomInRange(k10UsageEntryInfoVector.size());
|
||||
ASSERT_THAT(usage_entry_number_to_load,
|
||||
AllOf(Ge(0), Lt((int64_t)k10UsageEntryInfoVector.size())));
|
||||
CdmUsageEntry usage_entry_to_load = kUsageEntry;
|
||||
|
||||
// Setup expectations
|
||||
EXPECT_CALL(*mock_usage_table_header,
|
||||
DeleteEntry(_, device_files_, NotNull()))
|
||||
.Times(AtMost(3))
|
||||
.Times(3)
|
||||
.WillRepeatedly(
|
||||
DoAll(Invoke(this, &UsageTableHeaderTest::DeleteEntry),
|
||||
Return(NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*crypto_session_,
|
||||
LoadUsageEntry(usage_entry_number_to_load, usage_entry_to_load))
|
||||
.Times(AtMost(4))
|
||||
.Times(4)
|
||||
.WillRepeatedly(Return(INSUFFICIENT_CRYPTO_RESOURCES_3));
|
||||
|
||||
// Now invoke the method under test
|
||||
|
||||
Reference in New Issue
Block a user