Add tests for default of export_tombstones
Bug: 250165198
Test: atest MicrodroidHostTestCases
Change-Id: Ic183291e171eba00f81bb25d9662c2f657f30a50
diff --git a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
index a780a8b..726fb4a 100644
--- a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
+++ b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
@@ -73,6 +73,7 @@
import java.io.PipedOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -607,7 +608,8 @@
.isTrue();
}
- private boolean isTombstoneGeneratedWithCrashPayload(boolean debuggable) throws Exception {
+ private boolean isTombstoneGeneratedWithVmRunApp(boolean debuggable, String... additionalArgs)
+ throws Exception {
// we can't use microdroid builder as it wants ADB connection (debuggable)
CommandRunner android = new CommandRunner(getDevice());
@@ -617,20 +619,27 @@
final String apkPath = getPathForPackage(PACKAGE_NAME);
final String idsigPath = TEST_ROOT + "idsig";
final String instanceImgPath = TEST_ROOT + "instance.img";
- android.run(
- VIRT_APEX + "bin/vm",
- "run-app",
- "--payload-binary-name",
- "MicrodroidCrashNativeLib.so",
- "--debug",
- debuggable ? "full" : "none",
- apkPath,
- idsigPath,
- instanceImgPath);
+ List<String> cmd =
+ new ArrayList<>(
+ Arrays.asList(
+ VIRT_APEX + "bin/vm",
+ "run-app",
+ "--debug",
+ debuggable ? "full" : "none",
+ apkPath,
+ idsigPath,
+ instanceImgPath));
+ Collections.addAll(cmd, additionalArgs);
+ android.run(cmd.toArray(new String[0]));
return isTombstoneReceivedFromHostLogcat();
}
+ private boolean isTombstoneGeneratedWithCrashPayload(boolean debuggable) throws Exception {
+ return isTombstoneGeneratedWithVmRunApp(
+ debuggable, "--payload-binary-name", "MicrodroidCrashNativeLib.so");
+ }
+
@Test
public void testTombstonesAreGeneratedWithCrashPayload() throws Exception {
assertThat(isTombstoneGeneratedWithCrashPayload(true /* debuggable */)).isTrue();
@@ -641,6 +650,21 @@
assertThat(isTombstoneGeneratedWithCrashPayload(false /* debuggable */)).isFalse();
}
+ private boolean isTombstoneGeneratedWithCrashConfig(boolean debuggable) throws Exception {
+ return isTombstoneGeneratedWithVmRunApp(
+ debuggable, "--config-path", "assets/vm_config_crash.json");
+ }
+
+ @Test
+ public void testTombstonesAreGeneratedWithCrashConfig() throws Exception {
+ assertThat(isTombstoneGeneratedWithCrashConfig(true /* debuggable */)).isTrue();
+ }
+
+ @Test
+ public void testTombstonesAreNotGeneratedWithCrashConfigWhenNonDebuggable() throws Exception {
+ assertThat(isTombstoneGeneratedWithCrashConfig(false /* debuggable */)).isFalse();
+ }
+
@Test
public void testTelemetryPushedAtoms() throws Exception {
// Reset statsd config and report before the test
diff --git a/tests/testapk/assets/vm_config_crash.json b/tests/testapk/assets/vm_config_crash.json
new file mode 100644
index 0000000..ce6af80
--- /dev/null
+++ b/tests/testapk/assets/vm_config_crash.json
@@ -0,0 +1,9 @@
+{
+ "os": {
+ "name": "microdroid"
+ },
+ "task": {
+ "type": "microdroid_launcher",
+ "command": "MicrodroidCrashNativeLib.so"
+ }
+}