Merge "DO NOT MERGE: Fixed broken aapt2 tests" into qt-dev
am: cbe933a40f
Change-Id: Ic0da145919936b8427ba9c6504606f1708832631
This commit is contained in:
@@ -284,8 +284,58 @@ TEST(ResourcesValuesTest, AttributeIsCompatible) {
|
||||
|
||||
EXPECT_FALSE(attr_three.IsCompatibleWith(attr_one));
|
||||
EXPECT_FALSE(attr_three.IsCompatibleWith(attr_two));
|
||||
EXPECT_FALSE(attr_three.IsCompatibleWith(attr_three));
|
||||
EXPECT_TRUE(attr_three.IsCompatibleWith(attr_three));
|
||||
EXPECT_FALSE(attr_three.IsCompatibleWith(attr_four));
|
||||
|
||||
EXPECT_FALSE(attr_four.IsCompatibleWith(attr_one));
|
||||
EXPECT_FALSE(attr_four.IsCompatibleWith(attr_two));
|
||||
EXPECT_FALSE(attr_four.IsCompatibleWith(attr_three));
|
||||
EXPECT_TRUE(attr_four.IsCompatibleWith(attr_four));
|
||||
}
|
||||
|
||||
TEST(ResourcesValuesTest, AttributeEnumIsCompatible) {
|
||||
Attribute attr_one(TYPE_ENUM);
|
||||
attr_one.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/foo")), 0x01u});
|
||||
attr_one.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/bar")), 0x07u});
|
||||
|
||||
Attribute attr_two(TYPE_ENUM);
|
||||
attr_two.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/foo")), 0x01u});
|
||||
attr_two.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/bar")), 0x07u});
|
||||
EXPECT_TRUE(attr_one.IsCompatibleWith(attr_two));
|
||||
}
|
||||
|
||||
TEST(ResourcesValuesTest, DifferentAttributeEnumDifferentNameIsNotCompatible) {
|
||||
Attribute attr_one(TYPE_ENUM);
|
||||
attr_one.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/foo")), 0x01u});
|
||||
attr_one.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/bar")), 0x07u});
|
||||
|
||||
Attribute attr_two(TYPE_ENUM);
|
||||
attr_two.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/foo")), 0x01u});
|
||||
attr_one.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/baz")), 0x07u});
|
||||
EXPECT_FALSE(attr_one.IsCompatibleWith(attr_two));
|
||||
}
|
||||
|
||||
TEST(ResourcesValuesTest, DifferentAttributeEnumDifferentValueIsNotCompatible) {
|
||||
Attribute attr_one(TYPE_ENUM);
|
||||
attr_one.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/foo")), 0x01u});
|
||||
attr_one.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/bar")), 0x07u});
|
||||
|
||||
Attribute attr_two(TYPE_ENUM);
|
||||
attr_two.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/foo")), 0x01u});
|
||||
attr_two.symbols.push_back(
|
||||
Attribute::Symbol{Reference(test::ParseNameOrDie("android:id/bar")), 0x09u});
|
||||
EXPECT_FALSE(attr_one.IsCompatibleWith(attr_two));
|
||||
}
|
||||
|
||||
} // namespace aapt
|
||||
|
||||
@@ -408,54 +408,6 @@ TEST_F(TableMergerTest, FailToOverrideConflictingAttributeFormatsWithOverlay) {
|
||||
ASSERT_FALSE(merger.Merge({}, overlay.get(), true /*overlay*/));
|
||||
}
|
||||
|
||||
TEST_F(TableMergerTest, FailToOverrideConflictingFlagsAndEnumsWithOverlay) {
|
||||
std::unique_ptr<ResourceTable> base =
|
||||
test::ResourceTableBuilder()
|
||||
.SetPackageId("", 0x7f)
|
||||
.AddValue("attr/foo", test::AttributeBuilder()
|
||||
.SetTypeMask(android::ResTable_map::TYPE_FLAGS)
|
||||
.Build())
|
||||
.Build();
|
||||
|
||||
std::unique_ptr<ResourceTable> overlay =
|
||||
test::ResourceTableBuilder()
|
||||
.SetPackageId("", 0x7f)
|
||||
.AddValue("attr/foo", test::AttributeBuilder()
|
||||
.SetTypeMask(android::ResTable_map::TYPE_FLAGS)
|
||||
.SetWeak(false)
|
||||
.Build())
|
||||
.Build();
|
||||
|
||||
ResourceTable final_table;
|
||||
TableMergerOptions options;
|
||||
options.auto_add_overlay = false;
|
||||
TableMerger merger(context_.get(), &final_table, options);
|
||||
|
||||
ASSERT_TRUE(merger.Merge({}, base.get(), false /*overlay*/));
|
||||
ASSERT_FALSE(merger.Merge({}, overlay.get(), true /*overlay*/));
|
||||
|
||||
base = test::ResourceTableBuilder()
|
||||
.SetPackageId("", 0x7f)
|
||||
.AddValue("attr/foo", test::AttributeBuilder()
|
||||
.SetTypeMask(android::ResTable_map::TYPE_ENUM)
|
||||
.Build())
|
||||
.Build();
|
||||
|
||||
overlay = test::ResourceTableBuilder()
|
||||
.SetPackageId("", 0x7f)
|
||||
.AddValue("attr/foo", test::AttributeBuilder()
|
||||
.SetTypeMask(android::ResTable_map::TYPE_ENUM)
|
||||
.SetWeak(false)
|
||||
.Build())
|
||||
.Build();
|
||||
|
||||
ResourceTable final_table2;
|
||||
TableMerger merger2(context_.get(), &final_table2, options);
|
||||
|
||||
ASSERT_TRUE(merger2.Merge({}, base.get(), false /*overlay*/));
|
||||
ASSERT_FALSE(merger2.Merge({}, overlay.get(), true /*overlay*/));
|
||||
}
|
||||
|
||||
TEST_F(TableMergerTest, FailToMergeNewResourceWithoutAutoAddOverlay) {
|
||||
std::unique_ptr<ResourceTable> table_a =
|
||||
test::ResourceTableBuilder().SetPackageId("", 0x7f).Build();
|
||||
|
||||
Reference in New Issue
Block a user