libandroidfw: Make tests less flaky
Changing any of the test APKs could change resource IDs.
The resource IDs are all made public and assigned an ID
to avoid this issue.
Test: make libandroidfw_tests
Change-Id: Idd17c25f4ac86a0ad5b2b8da6f968e5d9b2346c1
diff --git a/libs/androidfw/tests/Split_test.cpp b/libs/androidfw/tests/Split_test.cpp
index 1f207e2..2c242db 100644
--- a/libs/androidfw/tests/Split_test.cpp
+++ b/libs/androidfw/tests/Split_test.cpp
@@ -165,7 +165,7 @@
&specFlags, NULL);
EXPECT_GE(block, 0);
- EXPECT_EQ(static_cast<uint32_t>(0), specFlags);
+ EXPECT_EQ(static_cast<uint32_t>(ResTable_typeSpec::SPEC_PUBLIC), specFlags);
ASSERT_EQ(NO_ERROR, table.add(basic_de_fr_contents_.data(),
basic_de_fr_contents_.size()));
@@ -173,9 +173,10 @@
uint32_t frSpecFlags = 0;
block = table.getResource(R::string::test1, &val, MAY_NOT_BE_BAG, 0,
&frSpecFlags, NULL);
- EXPECT_GE(block, 0);
+ ASSERT_GE(block, 0);
- EXPECT_EQ(ResTable_config::CONFIG_LOCALE, frSpecFlags);
+ EXPECT_EQ(static_cast<uint32_t>(ResTable_config::CONFIG_LOCALE | ResTable_typeSpec::SPEC_PUBLIC),
+ frSpecFlags);
}
TEST_F(SplitTest, SelectBestDensity) {
@@ -222,7 +223,7 @@
table.add(feature_contents_.data(), feature_contents_.size()));
block = table.getResource(R::string::test3, &val, MAY_NOT_BE_BAG);
- EXPECT_GE(block, 0);
+ ASSERT_GE(block, 0);
EXPECT_EQ(Res_value::TYPE_STRING, val.dataType);
}
diff --git a/libs/androidfw/tests/data/basic/basic.apk b/libs/androidfw/tests/data/basic/basic.apk
index 2d71f5b..2c9771b 100644
--- a/libs/androidfw/tests/data/basic/basic.apk
+++ b/libs/androidfw/tests/data/basic/basic.apk
Binary files differ
diff --git a/libs/androidfw/tests/data/basic/basic_de_fr.apk b/libs/androidfw/tests/data/basic/basic_de_fr.apk
index 69a2f30..0481444 100644
--- a/libs/androidfw/tests/data/basic/basic_de_fr.apk
+++ b/libs/androidfw/tests/data/basic/basic_de_fr.apk
Binary files differ
diff --git a/libs/androidfw/tests/data/basic/basic_hdpi-v4.apk b/libs/androidfw/tests/data/basic/basic_hdpi-v4.apk
index 011808b..a8d06e7 100644
--- a/libs/androidfw/tests/data/basic/basic_hdpi-v4.apk
+++ b/libs/androidfw/tests/data/basic/basic_hdpi-v4.apk
Binary files differ
diff --git a/libs/androidfw/tests/data/basic/basic_xhdpi-v4.apk b/libs/androidfw/tests/data/basic/basic_xhdpi-v4.apk
index 6d4353c..d1dfb14 100644
--- a/libs/androidfw/tests/data/basic/basic_xhdpi-v4.apk
+++ b/libs/androidfw/tests/data/basic/basic_xhdpi-v4.apk
Binary files differ
diff --git a/libs/androidfw/tests/data/basic/basic_xxhdpi-v4.apk b/libs/androidfw/tests/data/basic/basic_xxhdpi-v4.apk
index e3bda88..dca6f2f 100644
--- a/libs/androidfw/tests/data/basic/basic_xxhdpi-v4.apk
+++ b/libs/androidfw/tests/data/basic/basic_xxhdpi-v4.apk
Binary files differ
diff --git a/libs/androidfw/tests/data/basic/build b/libs/androidfw/tests/data/basic/build
index 68b911a..af0fd87 100755
--- a/libs/androidfw/tests/data/basic/build
+++ b/libs/androidfw/tests/data/basic/build
@@ -17,6 +17,6 @@
set -e
-PATH_TO_FRAMEWORK_RES=$(gettop)/prebuilts/sdk/current/android.jar
+PATH_TO_FRAMEWORK_RES=${ANDROID_BUILD_TOP}/prebuilts/sdk/current/android.jar
aapt package -M AndroidManifest.xml -S res -I $PATH_TO_FRAMEWORK_RES --split hdpi --split xhdpi --split xxhdpi --split fr,de -F basic.apk -f
diff --git a/libs/androidfw/tests/data/basic/res/values/values.xml b/libs/androidfw/tests/data/basic/res/values/values.xml
index 75e0435..11f6b8a 100644
--- a/libs/androidfw/tests/data/basic/res/values/values.xml
+++ b/libs/androidfw/tests/data/basic/res/values/values.xml
@@ -15,24 +15,40 @@
-->
<resources>
+ <public type="attr" name="attr1" id="0x7f010000" />
<attr name="attr1" format="reference|integer" />
+
+ <public type="attr" name="attr2" id="0x7f010001" />
<attr name="attr2" format="reference|integer" />
+ <public type="layout" name="main" id="0x7f020000" />
+
+ <public type="string" name="test1" id="0x7f030000" />
<string name="test1">test1</string>
+
+ <public type="string" name="test2" id="0x7f030001" />
<string name="test2">test2</string>
+ <public type="string" name="density" id="0x7f030002" />
+
+ <public type="integer" name="number1" id="0x7f040000" />
<integer name="number1">200</integer>
+
+ <public type="integer" name="number2" id="0x7f040001" />
<integer name="number2">@array/integerArray1</integer>
+ <public type="style" name="Theme1" id="0x7f050000" />
<style name="Theme1">
<item name="com.android.basic:attr1">100</item>
<item name="com.android.basic:attr2">@integer/number1</item>
</style>
+ <public type="style" name="Theme2" id="0x7f050001" />
<style name="Theme2" parent="@com.android.basic:style/Theme1">
<item name="com.android.basic:attr1">300</item>
</style>
+ <public type="array" name="integerArray1" id="0x7f060000" />
<integer-array name="integerArray1">
<item>1</item>
<item>2</item>
diff --git a/libs/androidfw/tests/data/feature/build b/libs/androidfw/tests/data/feature/build
index 3316e41..6ed3e41 100755
--- a/libs/androidfw/tests/data/feature/build
+++ b/libs/androidfw/tests/data/feature/build
@@ -17,4 +17,6 @@
set -e
-aapt package -M AndroidManifest.xml -S res --feature-of ../basic/basic.apk -F feature.apk -f
+PATH_TO_FRAMEWORK_RES=${ANDROID_BUILD_TOP}/prebuilts/sdk/current/android.jar
+
+aapt package -M AndroidManifest.xml -S res -I $PATH_TO_FRAMEWORK_RES --feature-of ../basic/basic.apk -F feature.apk -f
diff --git a/libs/androidfw/tests/data/feature/feature.apk b/libs/androidfw/tests/data/feature/feature.apk
index 1e65c27..04940fb 100644
--- a/libs/androidfw/tests/data/feature/feature.apk
+++ b/libs/androidfw/tests/data/feature/feature.apk
Binary files differ
diff --git a/libs/androidfw/tests/data/feature/res/values/values.xml b/libs/androidfw/tests/data/feature/res/values/values.xml
index 343fd6c..59f7d93 100644
--- a/libs/androidfw/tests/data/feature/res/values/values.xml
+++ b/libs/androidfw/tests/data/feature/res/values/values.xml
@@ -15,8 +15,13 @@
-->
<resources>
+ <!-- Features are offset, so 7f020000 will become 7f080000 at runtime. -->
+ <public type="string" name="test3" id="0x7f020000" />
<string name="test3">test3</string>
+
+ <public type="string" name="test4" id="0x7f020001" />
<string name="test4">test4</string>
+ <public type="integer" name="number3" id="0x7f030000" />
<integer name="number3">200</integer>
</resources>