diff options
7 files changed, 36 insertions, 7 deletions
diff --git a/libnativeloader/test/Android.bp b/libnativeloader/test/Android.bp index b384dcc903..1eee883b21 100644 --- a/libnativeloader/test/Android.bp +++ b/libnativeloader/test/Android.bp @@ -52,12 +52,6 @@ java_library { java_defaults { name: "loadlibrarytest_app_defaults", defaults: ["art_module_source_build_java_defaults"], - - // TODO(mast): Use old target SDK to avoid filtering on uses_library lists. - // Figure out what we need to do to make <uses-native-library> work in the - // test apps so we can use that instead. - sdk_version: "30", - static_libs: [ "androidx.test.ext.junit", "androidx.test.rules", diff --git a/libnativeloader/test/loadlibrarytest_product_app_manifest.xml b/libnativeloader/test/loadlibrarytest_product_app_manifest.xml index a791795803..2ff0552ae4 100644 --- a/libnativeloader/test/loadlibrarytest_product_app_manifest.xml +++ b/libnativeloader/test/loadlibrarytest_product_app_manifest.xml @@ -19,5 +19,13 @@ package="android.test.app.product"> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="android.test.app.product" /> + <application> + <uses-native-library android:required="false" android:name="libfoo.oem1.so" /> + <uses-native-library android:required="false" android:name="libbar.oem1.so" /> + <uses-native-library android:required="false" android:name="libfoo.oem2.so" /> + <!--libbar.oem2.so is left out --> + <uses-native-library android:required="false" android:name="libfoo.product1.so" /> + <uses-native-library android:required="false" android:name="libbar.product1.so" /> + </application> </manifest> diff --git a/libnativeloader/test/loadlibrarytest_system_app_manifest.xml b/libnativeloader/test/loadlibrarytest_system_app_manifest.xml index 3cbd054f03..ee180309b7 100644 --- a/libnativeloader/test/loadlibrarytest_system_app_manifest.xml +++ b/libnativeloader/test/loadlibrarytest_system_app_manifest.xml @@ -19,5 +19,11 @@ package="android.test.app.system"> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="android.test.app.system" /> + <application> + <!-- System apps get a shared classloader namespace, so they don't need + uses-native-library entries for anything in /system. --> + <uses-native-library android:required="false" android:name="libfoo.product1.so" /> + <uses-native-library android:required="false" android:name="libbar.product1.so" /> + </application> </manifest> diff --git a/libnativeloader/test/loadlibrarytest_system_ext_app_manifest.xml b/libnativeloader/test/loadlibrarytest_system_ext_app_manifest.xml index 83ca779821..dc452591a0 100644 --- a/libnativeloader/test/loadlibrarytest_system_ext_app_manifest.xml +++ b/libnativeloader/test/loadlibrarytest_system_ext_app_manifest.xml @@ -19,5 +19,11 @@ package="android.test.app.system_ext"> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="android.test.app.system_ext" /> + <application> + <!-- System apps get a shared classloader namespace, so they don't need + uses-native-library entries for anything in /system. --> + <uses-native-library android:required="false" android:name="libfoo.product1.so" /> + <uses-native-library android:required="false" android:name="libbar.product1.so" /> + </application> </manifest> diff --git a/libnativeloader/test/loadlibrarytest_system_priv_app_manifest.xml b/libnativeloader/test/loadlibrarytest_system_priv_app_manifest.xml index 0ad1aa5e32..efba587d46 100644 --- a/libnativeloader/test/loadlibrarytest_system_priv_app_manifest.xml +++ b/libnativeloader/test/loadlibrarytest_system_priv_app_manifest.xml @@ -19,5 +19,11 @@ package="android.test.app.system_priv"> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="android.test.app.system_priv" /> + <application> + <!-- System apps get a shared classloader namespace, so they don't need + uses-native-library entries for anything in /system. --> + <uses-native-library android:required="false" android:name="libfoo.product1.so" /> + <uses-native-library android:required="false" android:name="libbar.product1.so" /> + </application> </manifest> diff --git a/libnativeloader/test/loadlibrarytest_vendor_app_manifest.xml b/libnativeloader/test/loadlibrarytest_vendor_app_manifest.xml index b7073c6302..8a98e3cfbd 100644 --- a/libnativeloader/test/loadlibrarytest_vendor_app_manifest.xml +++ b/libnativeloader/test/loadlibrarytest_vendor_app_manifest.xml @@ -19,5 +19,13 @@ package="android.test.app.vendor"> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="android.test.app.vendor" /> + <application> + <uses-native-library android:required="false" android:name="libfoo.oem1.so" /> + <uses-native-library android:required="false" android:name="libbar.oem1.so" /> + <uses-native-library android:required="false" android:name="libfoo.oem2.so" /> + <!--libbar.oem2.so is left out --> + <uses-native-library android:required="false" android:name="libfoo.product1.so" /> + <uses-native-library android:required="false" android:name="libbar.product1.so" /> + </application> </manifest> diff --git a/libnativeloader/test/src/android/test/app/ProductAppTest.java b/libnativeloader/test/src/android/test/app/ProductAppTest.java index 5510d55908..592c3ed143 100644 --- a/libnativeloader/test/src/android/test/app/ProductAppTest.java +++ b/libnativeloader/test/src/android/test/app/ProductAppTest.java @@ -16,6 +16,7 @@ package android.test.app; +import android.test.lib.TestUtils; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import org.junit.Test; @@ -29,7 +30,7 @@ public class ProductAppTest { System.loadLibrary("foo.oem1"); System.loadLibrary("bar.oem1"); System.loadLibrary("foo.oem2"); - System.loadLibrary("bar.oem2"); + TestUtils.assertLinkerNamespaceError("bar.oem2"); // Missing <uses-native-library>. System.loadLibrary("foo.product1"); System.loadLibrary("bar.product1"); } |