summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Pawan Wagh <waghpawan@google.com> 2025-01-24 00:34:46 +0000
committer Pawan Wagh <waghpawan@google.com> 2025-01-24 00:39:15 +0000
commit7490cf576111f47da83b050821619ee506be716e (patch)
treed8be9d9ac834639a25753042600c659dd639ba3e
parent4c88318d68e0d62a564a6c293ae0aba2c7585008 (diff)
Add pagesizecompat testcases
Adding test cases for - app with pagesizecompat: "disabled" - app extracting 4KB elf and running in compat mode Test: m FileSystemUtilsTests && atest -c FileSystemUtilsTests Bug: 383190330 Change-Id: If59e47bcb5501fc569028ae7a03ccac565885c54
-rw-r--r--core/tests/FileSystemUtilsTest/Android.bp32
-rw-r--r--core/tests/FileSystemUtilsTest/AndroidTest.xml1
-rw-r--r--core/tests/FileSystemUtilsTest/app_with_4kb_elf/app_with_4kb_elf.xml1
-rw-r--r--core/tests/FileSystemUtilsTest/app_with_4kb_elf/page_size_compat_disabled.xml36
-rw-r--r--core/tests/FileSystemUtilsTest/app_with_4kb_elf/src/android/test/pagesizecompat/PageSizeCompatTest.java15
-rw-r--r--core/tests/FileSystemUtilsTest/src/com/android/internal/content/FileSystemUtilsTest.java43
6 files changed, 119 insertions, 9 deletions
diff --git a/core/tests/FileSystemUtilsTest/Android.bp b/core/tests/FileSystemUtilsTest/Android.bp
index 962ff3c0a6e0..bb0acc679dc1 100644
--- a/core/tests/FileSystemUtilsTest/Android.bp
+++ b/core/tests/FileSystemUtilsTest/Android.bp
@@ -52,6 +52,36 @@ android_test_helper_app {
}
android_test_helper_app {
+ name: "app_with_4kb_compressed_elf",
+ srcs: ["app_with_4kb_elf/src/**/*.java"],
+ manifest: "app_with_4kb_elf/app_with_4kb_elf.xml",
+ compile_multilib: "64",
+ jni_libs: [
+ "libpunchtest_4kb",
+ ],
+ static_libs: [
+ "androidx.test.rules",
+ "platform-test-annotations",
+ ],
+ use_embedded_native_libs: false,
+}
+
+android_test_helper_app {
+ name: "page_size_compat_disabled_app",
+ srcs: ["app_with_4kb_elf/src/**/*.java"],
+ manifest: "app_with_4kb_elf/page_size_compat_disabled.xml",
+ compile_multilib: "64",
+ jni_libs: [
+ "libpunchtest_4kb",
+ ],
+ static_libs: [
+ "androidx.test.rules",
+ "platform-test-annotations",
+ ],
+ use_embedded_native_libs: true,
+}
+
+android_test_helper_app {
name: "embedded_native_libs_test_app",
srcs: ["apk_embedded_native_libs/src/**/*.java"],
manifest: "apk_embedded_native_libs/embedded_native_libs_test_app.xml",
@@ -99,6 +129,8 @@ java_test_host {
":embedded_native_libs_test_app",
":extract_native_libs_test_app",
":app_with_4kb_elf",
+ ":page_size_compat_disabled_app",
+ ":app_with_4kb_compressed_elf",
],
test_suites: ["general-tests"],
test_config: "AndroidTest.xml",
diff --git a/core/tests/FileSystemUtilsTest/AndroidTest.xml b/core/tests/FileSystemUtilsTest/AndroidTest.xml
index 651a7ca15dac..27f49b2289ba 100644
--- a/core/tests/FileSystemUtilsTest/AndroidTest.xml
+++ b/core/tests/FileSystemUtilsTest/AndroidTest.xml
@@ -22,7 +22,6 @@
<option name="cleanup-apks" value="true" />
<option name="test-file-name" value="embedded_native_libs_test_app.apk" />
<option name="test-file-name" value="extract_native_libs_test_app.apk" />
- <option name="test-file-name" value="app_with_4kb_elf.apk" />
</target_preparer>
<test class="com.android.compatibility.common.tradefed.testtype.JarHostTest" >
diff --git a/core/tests/FileSystemUtilsTest/app_with_4kb_elf/app_with_4kb_elf.xml b/core/tests/FileSystemUtilsTest/app_with_4kb_elf/app_with_4kb_elf.xml
index b9d6d4db2c81..d7a37336cbc3 100644
--- a/core/tests/FileSystemUtilsTest/app_with_4kb_elf/app_with_4kb_elf.xml
+++ b/core/tests/FileSystemUtilsTest/app_with_4kb_elf/app_with_4kb_elf.xml
@@ -18,7 +18,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.test.pagesizecompat">
<application
- android:extractNativeLibs="false"
android:pageSizeCompat="enabled">
<uses-library android:name="android.test.runner"/>
<activity android:name=".MainActivity"
diff --git a/core/tests/FileSystemUtilsTest/app_with_4kb_elf/page_size_compat_disabled.xml b/core/tests/FileSystemUtilsTest/app_with_4kb_elf/page_size_compat_disabled.xml
new file mode 100644
index 000000000000..641c5e741014
--- /dev/null
+++ b/core/tests/FileSystemUtilsTest/app_with_4kb_elf/page_size_compat_disabled.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2025 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android.test.pagesizecompat">
+ <application
+ android:pageSizeCompat="disabled">
+ <uses-library android:name="android.test.runner"/>
+ <activity android:name=".MainActivity"
+ android:exported="true"
+ android:process=":NewProcess">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ </intent-filter>
+ </activity>
+ </application>
+ <instrumentation
+ android:name="androidx.test.runner.AndroidJUnitRunner"
+ android:targetPackage="android.test.pagesizecompat"/>
+</manifest> \ No newline at end of file
diff --git a/core/tests/FileSystemUtilsTest/app_with_4kb_elf/src/android/test/pagesizecompat/PageSizeCompatTest.java b/core/tests/FileSystemUtilsTest/app_with_4kb_elf/src/android/test/pagesizecompat/PageSizeCompatTest.java
index 9cbe414a0993..b4a801a09ed0 100644
--- a/core/tests/FileSystemUtilsTest/app_with_4kb_elf/src/android/test/pagesizecompat/PageSizeCompatTest.java
+++ b/core/tests/FileSystemUtilsTest/app_with_4kb_elf/src/android/test/pagesizecompat/PageSizeCompatTest.java
@@ -34,8 +34,7 @@ import java.util.concurrent.TimeUnit;
@RunWith(AndroidJUnit4.class)
public class PageSizeCompatTest {
- @Test
- public void testPageSizeCompat_embedded4KbLib() throws Exception {
+ public void testPageSizeCompat_appLaunch(boolean shouldPass) throws Exception {
Context context = InstrumentationRegistry.getContext();
CountDownLatch receivedSignal = new CountDownLatch(1);
@@ -62,6 +61,16 @@ public class PageSizeCompatTest {
launchIntent.putExtra(MainActivity.KEY_OPERAND_2, op2);
context.startActivity(launchIntent);
- Assert.assertTrue("Failed to launch app", receivedSignal.await(10, TimeUnit.SECONDS));
+ Assert.assertEquals(receivedSignal.await(10, TimeUnit.SECONDS), shouldPass);
+ }
+
+ @Test
+ public void testPageSizeCompat_compatEnabled() throws Exception {
+ testPageSizeCompat_appLaunch(true);
+ }
+
+ @Test
+ public void testPageSizeCompat_compatDisabled() throws Exception {
+ testPageSizeCompat_appLaunch(false);
}
}
diff --git a/core/tests/FileSystemUtilsTest/src/com/android/internal/content/FileSystemUtilsTest.java b/core/tests/FileSystemUtilsTest/src/com/android/internal/content/FileSystemUtilsTest.java
index aed907a0242f..6430813b9913 100644
--- a/core/tests/FileSystemUtilsTest/src/com/android/internal/content/FileSystemUtilsTest.java
+++ b/core/tests/FileSystemUtilsTest/src/com/android/internal/content/FileSystemUtilsTest.java
@@ -17,10 +17,12 @@
package com.android.internal.content;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
import android.platform.test.annotations.AppModeFull;
import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.targetprep.TargetSetupError;
import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
@@ -29,6 +31,10 @@ import org.junit.runner.RunWith;
@RunWith(DeviceJUnit4ClassRunner.class)
public class FileSystemUtilsTest extends BaseHostJUnit4Test {
+ private static final String PAGE_SIZE_COMPAT_ENABLED = "app_with_4kb_elf.apk";
+ private static final String PAGE_SIZE_COMPAT_DISABLED = "page_size_compat_disabled_app.apk";
+ private static final String PAGE_SIZE_COMPAT_ENABLED_COMPRESSED_ELF =
+ "app_with_4kb_compressed_elf.apk";
@Test
@AppModeFull
@@ -48,12 +54,41 @@ public class FileSystemUtilsTest extends BaseHostJUnit4Test {
runDeviceTests(appPackage, appPackage + "." + testName);
}
- @Test
- @AppModeFull
- public void runAppWith4KbLib_overrideCompatMode() throws DeviceNotAvailableException {
+ private void runPageSizeCompatTest(String appName, String testMethodName)
+ throws DeviceNotAvailableException, TargetSetupError {
+ getDevice().enableAdbRoot();
+ String result = getDevice().executeShellCommand("getconf PAGE_SIZE");
+ assumeTrue("16384".equals(result.strip()));
+ installPackage(appName, "-r");
String appPackage = "android.test.pagesizecompat";
String testName = "PageSizeCompatTest";
assertTrue(isPackageInstalled(appPackage));
- runDeviceTests(appPackage, appPackage + "." + testName);
+ assertTrue(runDeviceTests(appPackage, appPackage + "." + testName,
+ testMethodName));
+ uninstallPackage(appPackage);
+ }
+
+ @Test
+ @AppModeFull
+ public void runAppWith4KbLib_overrideCompatMode()
+ throws DeviceNotAvailableException, TargetSetupError {
+ runPageSizeCompatTest(PAGE_SIZE_COMPAT_ENABLED, "testPageSizeCompat_compatEnabled");
+ }
+
+ @Test
+ @AppModeFull
+ public void runAppWith4KbCompressedLib_overrideCompatMode()
+ throws DeviceNotAvailableException, TargetSetupError {
+ runPageSizeCompatTest(PAGE_SIZE_COMPAT_ENABLED_COMPRESSED_ELF,
+ "testPageSizeCompat_compatEnabled");
+ }
+
+ @Test
+ @AppModeFull
+ public void runAppWith4KbLib_disabledCompatMode()
+ throws DeviceNotAvailableException, TargetSetupError {
+ // This test is expected to fail since compat is disabled in manifest
+ runPageSizeCompatTest(PAGE_SIZE_COMPAT_DISABLED,
+ "testPageSizeCompat_compatDisabled");
}
}