|
|
|
|
@@ -212,6 +212,12 @@ const std::vector<CdmUsageEntryInfo> k10UsageEntryInfoVector = {
|
|
|
|
|
kUsageEntryInfoOfflineLicense4, kUsageEntryInfoSecureStop4,
|
|
|
|
|
kUsageEntryInfoOfflineLicense5, kUsageEntryInfoSecureStop5,
|
|
|
|
|
};
|
|
|
|
|
const std::vector<CdmUsageEntryInfo> k5UsageEntryInfoVector = {
|
|
|
|
|
kUsageEntryInfoOfflineLicense1, kUsageEntryInfoOfflineLicense2,
|
|
|
|
|
kUsageEntryInfoOfflineLicense3, kUsageEntryInfoOfflineLicense4,
|
|
|
|
|
kUsageEntryInfoOfflineLicense5,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
std::vector<CdmUsageEntryInfo> kOverFullUsageEntryInfoVector;
|
|
|
|
|
|
|
|
|
|
const CdmOfflineLicenseState kActiveLicenseState = kLicenseStateActive;
|
|
|
|
|
@@ -294,8 +300,6 @@ const int64_t kUpgradedUsageEntryInfo3ExpireTime =
|
|
|
|
|
const CdmUsageTableHeader kUpgradedUsageTableHeader = "Upgraded Table Header";
|
|
|
|
|
std::vector<CdmUsageEntryInfo> kUpgradedUsageEntryInfoList;
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
|
|
|
|
|
void InitVectorConstants() {
|
|
|
|
|
kOverFullUsageEntryInfoVector.clear();
|
|
|
|
|
for (size_t i = 0; i < (kDefaultTableCapacity + 1); ++i) {
|
|
|
|
|
@@ -373,8 +377,6 @@ void ToVector(std::vector<CdmUsageEntryInfo>& vec, const CdmUsageEntryInfo* arr,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}; // namespace
|
|
|
|
|
|
|
|
|
|
class MockDeviceFiles : public DeviceFiles {
|
|
|
|
|
public:
|
|
|
|
|
MockDeviceFiles() : DeviceFiles(&file_system_) { Init(kSecurityLevelL1); }
|
|
|
|
|
@@ -392,7 +394,7 @@ class MockDeviceFiles : public DeviceFiles {
|
|
|
|
|
|
|
|
|
|
MOCK_METHOD(bool, RetrieveUsageTableInfo,
|
|
|
|
|
(CdmUsageTableHeader*, std::vector<CdmUsageEntryInfo>*,
|
|
|
|
|
bool* lru_upgrade),
|
|
|
|
|
bool* lru_upgrade, bool* has_usage_info_entries),
|
|
|
|
|
(override));
|
|
|
|
|
MOCK_METHOD(bool, StoreUsageTableInfo,
|
|
|
|
|
(const CdmUsageTableHeader&,
|
|
|
|
|
@@ -574,11 +576,12 @@ class UsageTableHeaderTest : public WvCdmTestBase {
|
|
|
|
|
const std::vector<CdmUsageEntryInfo>& usage_entry_info_vector) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_, GetNumberOfOpenSessions(_, NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(usage_table_header),
|
|
|
|
|
SetArgPointee<1>(usage_entry_info_vector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_, LoadUsageTableHeader(_, usage_table_header))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
EXPECT_TRUE(usage_table_header_->Init(security_level, crypto_session_));
|
|
|
|
|
@@ -623,11 +626,12 @@ TEST_P(UsageTableHeaderInitializationTest, RestoreUsageTable_Success) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kUsageEntryInfoVector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -644,11 +648,12 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kUsageEntryInfoVector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -678,8 +683,8 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(Return(false));
|
|
|
|
|
|
|
|
|
|
// Expectations for create:
|
|
|
|
|
@@ -710,11 +715,12 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kUsageEntryInfoVector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(LOAD_USAGE_HEADER_GENERATION_SKEW));
|
|
|
|
|
@@ -745,8 +751,8 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(Return(false));
|
|
|
|
|
// Expectations for create:
|
|
|
|
|
// 1) Create new header within OEMCrypto fails
|
|
|
|
|
@@ -769,8 +775,8 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(Return(false));
|
|
|
|
|
// Expectations for create:
|
|
|
|
|
// 1) Create new header within OEMCrypto succeeds
|
|
|
|
|
@@ -797,11 +803,11 @@ TEST_P(UsageTableHeaderInitializationTest, RestoreUsageTable_AtCapacity) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(usage_entries), SetArgPointee<2>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
SetArgPointee<3>(false), Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -824,11 +830,11 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(usage_entries), SetArgPointee<2>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
SetArgPointee<3>(false), Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -854,11 +860,12 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kOverFullUsageEntryInfoVector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -911,11 +918,12 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kOverFullUsageEntryInfoVector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -963,11 +971,12 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(security_level, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kOverFullUsageEntryInfoVector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(security_level, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -1014,6 +1023,31 @@ TEST_P(UsageTableHeaderInitializationTest,
|
|
|
|
|
EXPECT_TRUE(usage_table_header_->Init(GetParam(), crypto_session_));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// If the stored usage table info contains entries of type USAGE_INFO,
|
|
|
|
|
// these entries will not be included in the store, however, the
|
|
|
|
|
// UsageTableHeader must delete the existing usage info files and
|
|
|
|
|
// store the table.
|
|
|
|
|
TEST_P(UsageTableHeaderInitializationTest, RestoreTableWithUsageInfo) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_, GetNumberOfOpenSessions(_, NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(
|
|
|
|
|
SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(k5UsageEntryInfoVector), SetArgPointee<2>(false),
|
|
|
|
|
SetArgPointee<3>(/* has_usage_info_entries = */ true), Return(true)));
|
|
|
|
|
|
|
|
|
|
EXPECT_CALL(*device_files_, DeleteAllUsageInfo()).WillOnce(Return(true));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
StoreUsageTableInfo(kUsageTableHeader, k5UsageEntryInfoVector))
|
|
|
|
|
.WillOnce(Return(true));
|
|
|
|
|
|
|
|
|
|
EXPECT_CALL(*crypto_session_, LoadUsageTableHeader(_, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(usage_table_header_->Init(GetParam(), crypto_session_));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_SUITE_P(Cdm, UsageTableHeaderInitializationTest,
|
|
|
|
|
::testing::Values(kSecurityLevelL1, kSecurityLevelL3));
|
|
|
|
|
|
|
|
|
|
@@ -3578,11 +3612,12 @@ TEST_F(UsageTableHeaderTest, StaleHeader) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(kLevelDefault, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(usage_entry_info_vector),
|
|
|
|
|
SetArgPointee<2>(false), Return(true)));
|
|
|
|
|
SetArgPointee<2>(false), SetArgPointee<3>(false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(kLevelDefault, kUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(LOAD_USAGE_HEADER_GENERATION_SKEW));
|
|
|
|
|
@@ -3681,12 +3716,12 @@ TEST_F(UsageTableHeaderTest, LruUsageTableUpgrade_NoAction) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(kLevelDefault, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUpgradableUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kUpgradableUsageEntryInfoList),
|
|
|
|
|
SetArgPointee<2>(/* lru_upgrade = */ false),
|
|
|
|
|
Return(true)));
|
|
|
|
|
SetArgPointee<3>(false), Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(kLevelDefault, kUpgradableUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -3711,12 +3746,12 @@ TEST_F(UsageTableHeaderTest, LruUsageTableUpgrade_Succeed) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(kLevelDefault, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUpgradableUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kUpgradableUsageEntryInfoList),
|
|
|
|
|
SetArgPointee<2>(/* lru_upgrade = */ true),
|
|
|
|
|
Return(true)));
|
|
|
|
|
SetArgPointee<3>(false), Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(kLevelDefault, kUpgradableUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -3780,12 +3815,12 @@ TEST_F(UsageTableHeaderTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(kLevelDefault, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUpgradableUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(upgradable_usage_entry_info_list),
|
|
|
|
|
SetArgPointee<2>(/* lru_upgrade = */ true),
|
|
|
|
|
Return(true)));
|
|
|
|
|
SetArgPointee<3>(false), Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(kLevelDefault, kUpgradableUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -3843,12 +3878,12 @@ TEST_F(UsageTableHeaderTest,
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(kLevelDefault, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUpgradableUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kUpgradableUsageEntryInfoList),
|
|
|
|
|
SetArgPointee<2>(/* lru_upgrade = */ true),
|
|
|
|
|
Return(true)));
|
|
|
|
|
SetArgPointee<3>(false), Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(kLevelDefault, kUpgradableUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
@@ -3901,12 +3936,12 @@ TEST_F(UsageTableHeaderTest, LruUsageTableUpgrade_AllFailure) {
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
GetNumberOfOpenSessions(kLevelDefault, NotNull()))
|
|
|
|
|
.WillRepeatedly(DoAll(SetArgPointee<1>(0), Return(NO_ERROR)));
|
|
|
|
|
EXPECT_CALL(*device_files_,
|
|
|
|
|
RetrieveUsageTableInfo(NotNull(), NotNull(), NotNull()))
|
|
|
|
|
EXPECT_CALL(*device_files_, RetrieveUsageTableInfo(NotNull(), NotNull(),
|
|
|
|
|
NotNull(), NotNull()))
|
|
|
|
|
.WillOnce(DoAll(SetArgPointee<0>(kUpgradableUsageTableHeader),
|
|
|
|
|
SetArgPointee<1>(kUpgradableUsageEntryInfoList),
|
|
|
|
|
SetArgPointee<2>(/* lru_upgrade = */ true),
|
|
|
|
|
Return(true)));
|
|
|
|
|
SetArgPointee<3>(false), Return(true)));
|
|
|
|
|
EXPECT_CALL(*crypto_session_,
|
|
|
|
|
LoadUsageTableHeader(kLevelDefault, kUpgradableUsageTableHeader))
|
|
|
|
|
.WillOnce(Return(NO_ERROR));
|
|
|
|
|
|