Core CDM: Remove usage info as a run-time type.
[ Merge of http://go/wvgerrit/159221 ] This CL modifies how usage entry info is tracked internally by the CDM at run time. It removes the different "storage types" that entries represent (license or usage info), and instead it contains only the information associated with license types. The presences of a key-set-id allows the UsageTableHeader to determine if the entry slot is currently being used, or if it can be treated as unoccupied. By removing this different type, it completely prevents the CDM and its tests from using "usage-info" type entries. This required significant updates to the UsageTableHeader tests. Additionally, several of the variable names within the usage table have been simplified and shortened to reflect their new meanings. Bug: 242289743 Test: run_x86_64_tests and usage_table_header_unittest Change-Id: I939e479779425550a17a3c9e6c6d1bc6885e493e
This commit is contained in:
@@ -2920,17 +2920,17 @@ constexpr size_t kNumberOfHlsAttributes = ArraySize(kHlsAttributesTestData);
|
||||
// kUsageTableInfoTestData are equal.
|
||||
const std::vector<CdmUsageEntryInfo> kUsageEntriesTestData = {
|
||||
// usage entry 0
|
||||
{kStorageLicense, "ksid0", "", 1318402800, 1321254000},
|
||||
{"ksid0", 1318402800, 1321254000},
|
||||
// usage entry 1
|
||||
{kStorageLicense, "ksid1", "", 1050649200, 1053500400},
|
||||
{"ksid1", 1050649200, 1053500400},
|
||||
// usage entry 2
|
||||
{kStorageTypeUnknown, "", "", 0, 0},
|
||||
{"", 0, 0},
|
||||
// usage entry 3
|
||||
{kStorageTypeUnknown, "", "", 0, 0},
|
||||
{"", 0, 0},
|
||||
// usage entry 4
|
||||
{kStorageLicense, "ksid4", "", 316166400, 319017600},
|
||||
{"ksid4", 316166400, 319017600},
|
||||
// usage entry 5
|
||||
{kStorageLicense, "ksid5", "", 316166400, 319017600},
|
||||
{"ksid5", 316166400, 319017600},
|
||||
};
|
||||
|
||||
struct UsageTableTestInfo {
|
||||
@@ -3008,8 +3008,8 @@ const UsageTableTestInfo kUsageTableInfoTestData[] = {
|
||||
"ce072f3d2ef52febcaddff3040246a638deee994a0862142")},
|
||||
};
|
||||
|
||||
const CdmUsageEntryInfo kUsageEntriesWithoutLruData[] = {
|
||||
{kStorageLicense, "ksid0", "", 0, 0}, {kStorageTypeUnknown, "", "", 0, 0}};
|
||||
const CdmUsageEntryInfo kUsageEntriesWithoutLruData[] = {{"ksid0", 0, 0},
|
||||
{"", 0, 0}};
|
||||
|
||||
const std::string kUsageTableWithoutLruData = a2bs_hex(
|
||||
"0A1F080510013A191209080112056B73696430120C08021A086170705F69645F"
|
||||
@@ -3030,9 +3030,7 @@ const UsageTableTestInfo kUsageTableInfoWithUsageInfoType = {
|
||||
|
||||
// Expected entries after removal of USAGE_INFO.
|
||||
const std::vector<CdmUsageEntryInfo> kUsageEntriesWithoutUsageInfoType = {
|
||||
{kStorageLicense, "ksid0", "", 1318402800, 1321254000},
|
||||
{kStorageTypeUnknown, "", "", 0, 0},
|
||||
{kStorageTypeUnknown, "", "", 0, 0}};
|
||||
{"ksid0", 1318402800, 1321254000}, {"", 0, 0}, {"", 0, 0}};
|
||||
|
||||
// Contains kOemCertificate and kCryptoWrappedKey
|
||||
const std::string kFakeOemCertificateFile = a2bs_hex(
|
||||
@@ -4389,11 +4387,11 @@ TEST_P(DeviceFilesUsageTableTest, Store) {
|
||||
const int entry_count = GetParam();
|
||||
|
||||
std::vector<std::string> entry_data;
|
||||
const std::vector<CdmUsageEntryInfo> usage_entry_info(
|
||||
const std::vector<CdmUsageEntryInfo> usage_entry_info_list(
|
||||
kUsageEntriesTestData.begin(),
|
||||
kUsageEntriesTestData.begin() + entry_count);
|
||||
for (int i = 0; i < entry_count; ++i) {
|
||||
entry_data.push_back(kUsageEntriesTestData[i].key_set_id);
|
||||
entry_data.push_back(kUsageEntriesTestData[i].key_set_id());
|
||||
}
|
||||
entry_data.push_back(kUsageTableInfoTestData[entry_count].usage_table_header);
|
||||
|
||||
@@ -4411,7 +4409,7 @@ TEST_P(DeviceFilesUsageTableTest, Store) {
|
||||
EXPECT_TRUE(device_files.Init(kSecurityLevelL1));
|
||||
ASSERT_TRUE(device_files.StoreUsageTableInfo(
|
||||
kUsageTableInfoTestData[entry_count].usage_table_header,
|
||||
usage_entry_info));
|
||||
usage_entry_info_list));
|
||||
}
|
||||
|
||||
TEST_P(DeviceFilesUsageTableTest, Read) {
|
||||
@@ -4437,20 +4435,20 @@ TEST_P(DeviceFilesUsageTableTest, Read) {
|
||||
DeviceFiles device_files(&file_system);
|
||||
EXPECT_TRUE(device_files.Init(kSecurityLevelL1));
|
||||
|
||||
std::vector<CdmUsageEntryInfo> usage_entry_info;
|
||||
std::vector<CdmUsageEntryInfo> usage_entry_info_list;
|
||||
CdmUsageTableHeader usage_table_header;
|
||||
bool lru_upgrade;
|
||||
bool has_usage_info_entries;
|
||||
ASSERT_TRUE(device_files.RetrieveUsageTableInfo(
|
||||
&usage_table_header, &usage_entry_info, &lru_upgrade,
|
||||
&usage_table_header, &usage_entry_info_list, &lru_upgrade,
|
||||
&has_usage_info_entries));
|
||||
EXPECT_EQ(kUsageTableInfoTestData[entry_count].usage_table_header,
|
||||
usage_table_header);
|
||||
EXPECT_EQ(entry_count, usage_entry_info.size());
|
||||
EXPECT_EQ(entry_count, usage_entry_info_list.size());
|
||||
|
||||
for (size_t i = 0; i < entry_count; ++i) {
|
||||
// TODO(b/242289743): Update test data to exclude usage info files.
|
||||
EXPECT_EQ(usage_entry_info[i], kUsageEntriesTestData[i]);
|
||||
EXPECT_EQ(usage_entry_info_list[i], kUsageEntriesTestData[i]);
|
||||
}
|
||||
EXPECT_FALSE(lru_upgrade);
|
||||
}
|
||||
@@ -4478,19 +4476,20 @@ TEST_F(DeviceFilesUsageTableTest, ReadWithoutLruData) {
|
||||
DeviceFiles device_files(&file_system);
|
||||
EXPECT_TRUE(device_files.Init(kSecurityLevelL1));
|
||||
|
||||
std::vector<CdmUsageEntryInfo> usage_entry_info;
|
||||
std::vector<CdmUsageEntryInfo> usage_entry_info_list;
|
||||
CdmUsageTableHeader usage_table_header;
|
||||
bool lru_upgrade;
|
||||
bool has_usage_info_entries;
|
||||
ASSERT_TRUE(device_files.RetrieveUsageTableInfo(
|
||||
&usage_table_header, &usage_entry_info, &lru_upgrade,
|
||||
&usage_table_header, &usage_entry_info_list, &lru_upgrade,
|
||||
&has_usage_info_entries));
|
||||
|
||||
EXPECT_EQ(ArraySize(kUsageEntriesWithoutLruData), usage_entry_info.size());
|
||||
EXPECT_EQ(ArraySize(kUsageEntriesWithoutLruData),
|
||||
usage_entry_info_list.size());
|
||||
|
||||
for (size_t i = 0; i < ArraySize(kUsageEntriesWithoutLruData); ++i) {
|
||||
const CdmUsageEntryInfo& expected_entry = kUsageEntriesWithoutLruData[i];
|
||||
const CdmUsageEntryInfo& retrieved_entry = usage_entry_info[i];
|
||||
const CdmUsageEntryInfo& retrieved_entry = usage_entry_info_list[i];
|
||||
EXPECT_EQ(expected_entry, retrieved_entry);
|
||||
}
|
||||
|
||||
@@ -4520,20 +4519,21 @@ TEST_F(DeviceFilesUsageTableTest, ReadWithUsageInfoType) {
|
||||
DeviceFiles device_files(&file_system);
|
||||
EXPECT_TRUE(device_files.Init(kSecurityLevelL1));
|
||||
|
||||
std::vector<CdmUsageEntryInfo> usage_entry_info;
|
||||
std::vector<CdmUsageEntryInfo> usage_entry_info_list;
|
||||
CdmUsageTableHeader usage_table_header;
|
||||
bool lru_upgrade;
|
||||
bool has_usage_info_entries;
|
||||
ASSERT_TRUE(device_files.RetrieveUsageTableInfo(
|
||||
&usage_table_header, &usage_entry_info, &lru_upgrade,
|
||||
&usage_table_header, &usage_entry_info_list, &lru_upgrade,
|
||||
&has_usage_info_entries));
|
||||
|
||||
EXPECT_EQ(kUsageEntriesWithoutUsageInfoType.size(), usage_entry_info.size());
|
||||
EXPECT_EQ(kUsageEntriesWithoutUsageInfoType.size(),
|
||||
usage_entry_info_list.size());
|
||||
|
||||
for (size_t i = 0; i < kUsageEntriesWithoutUsageInfoType.size(); ++i) {
|
||||
const CdmUsageEntryInfo& expected_entry =
|
||||
kUsageEntriesWithoutUsageInfoType[i];
|
||||
const CdmUsageEntryInfo& retrieved_entry = usage_entry_info[i];
|
||||
const CdmUsageEntryInfo& retrieved_entry = usage_entry_info_list[i];
|
||||
EXPECT_EQ(expected_entry, retrieved_entry);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user