diff --git a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
index afccef6..d25868e 100644
--- a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
+++ b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
@@ -363,6 +363,46 @@
         shutdownMicrodroid(getDevice(), cid);
     }
 
+    private boolean isTombstoneGeneratedWithConfig(String configPath) throws Exception {
+        // Note this test relies on logcat values being printed by tombstone_transmit on
+        // and the reeceiver on host (virtualization_service)
+        final String cid =
+                startMicrodroid(
+                        getDevice(),
+                        getBuild(),
+                        APK_NAME,
+                        PACKAGE_NAME,
+                        configPath,
+                        /* debug */ true,
+                        minMemorySize(),
+                        Optional.of(NUM_VCPUS),
+                        Optional.of(CPU_AFFINITY));
+        // check until microdroid is shut down
+        CommandRunner android = new CommandRunner(getDevice());
+        android.runWithTimeout(
+                15000,
+                "logcat",
+                "-m",
+                "1",
+                "-e",
+                "'crosvm has exited normally'");
+        // Check that tombstone is received (from host logcat)
+        String result = runOnHost("adb", "-s", getDevice().getSerialNumber(),
+                "logcat", "-d", "-e",
+                "Received [0-9]+ bytes from guest & wrote to tombstone file");
+        return !result.trim().isEmpty();
+    }
+
+    @Test
+    public void testTombstonesAreGeneratedUponCrash() throws Exception {
+        assertTrue(isTombstoneGeneratedWithConfig("assets/vm_config_crash.json"));
+    }
+
+    @Test
+    public void testTombstonesAreNotGeneratedIfNotExported() throws Exception {
+        assertFalse(isTombstoneGeneratedWithConfig("assets/vm_config_crash_no_tombstone.json"));
+    }
+
     @Test
     public void testTombstonesAreBeingForwarded() throws Exception {
         // This test requires rooting. Skip on user builds where rooting is impossible.
diff --git a/tests/testapk/assets/vm_config_crash.json b/tests/testapk/assets/vm_config_crash.json
new file mode 100644
index 0000000..282f25c
--- /dev/null
+++ b/tests/testapk/assets/vm_config_crash.json
@@ -0,0 +1,13 @@
+{
+    "os": {
+      "name": "microdroid"
+    },
+    "task": {
+      "type": "microdroid_launcher",
+      "command": "MicrodroidTestNativeLib.so",
+      "args": [
+        "crash"
+      ]
+    },
+    "export_tombstones": true
+  }
diff --git a/tests/testapk/assets/vm_config_crash_no_tombstone.json b/tests/testapk/assets/vm_config_crash_no_tombstone.json
new file mode 100644
index 0000000..be0983d
--- /dev/null
+++ b/tests/testapk/assets/vm_config_crash_no_tombstone.json
@@ -0,0 +1,13 @@
+{
+    "os": {
+      "name": "microdroid"
+    },
+    "task": {
+      "type": "microdroid_launcher",
+      "command": "MicrodroidTestNativeLib.so",
+      "args": [
+        "crash"
+      ]
+    },
+    "export_tombstones": false
+  }
diff --git a/tests/testapk/src/native/testbinary.cpp b/tests/testapk/src/native/testbinary.cpp
index 422afca..b4fee86 100644
--- a/tests/testapk/src/native/testbinary.cpp
+++ b/tests/testapk/src/native/testbinary.cpp
@@ -181,6 +181,11 @@
     setvbuf(stdout, nullptr, _IONBF, 0);
     setvbuf(stderr, nullptr, _IONBF, 0);
 
+    if (strcmp(argv[1], "crash") == 0) {
+        printf("test crash!!!!\n");
+        abort();
+    }
+
     printf("Hello Microdroid ");
     for (int i = 0; i < argc; i++) {
         printf("%s", argv[i]);
