Merge "DO NOT MERGE: Fixed broken aapt2 tests" into qt-dev

am: cbe933a40f

Change-Id: Ic0da145919936b8427ba9c6504606f1708832631
This commit is contained in:
Ryan Mitchell
2019-05-07 10:48:07 -07:00
committed by android-build-merger
2 changed files with 51 additions and 49 deletions

View File

@@ -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

View File

@@ -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();