Enable exception handlers by default in tests.
This will give more useful error messages when tests fail due to
memory faults or other EL1 exceptions.
Bug: 143755046
Change-Id: I5833ab65ac7d44f69118eb004f03cdcedc365874
diff --git a/src/arch/aarch64/hftest/BUILD.gn b/src/arch/aarch64/hftest/BUILD.gn
index a06ef24..a801bd1 100644
--- a/src/arch/aarch64/hftest/BUILD.gn
+++ b/src/arch/aarch64/hftest/BUILD.gn
@@ -38,7 +38,10 @@
# Exception handlers for interrupts.
source_set("interrupts") {
testonly = true
- public_configs = [ "//src/arch/aarch64:config" ]
+ public_configs = [
+ "//src/arch/aarch64:config",
+ "//test/hftest:hftest_config",
+ ]
sources = [
"events.c",
"exceptions.S",
diff --git a/src/arch/aarch64/hftest/interrupts.c b/src/arch/aarch64/hftest/interrupts.c
index 507552f..f3fa2e5 100644
--- a/src/arch/aarch64/hftest/interrupts.c
+++ b/src/arch/aarch64/hftest/interrupts.c
@@ -20,6 +20,7 @@
#include "hf/dlog.h"
+#include "hftest.h"
#include "msr.h"
extern uint8_t vector_table_el1;
@@ -29,6 +30,8 @@
{
if (irq_callback != NULL) {
irq_callback();
+ } else {
+ FAIL("Got unexpected interrupt.\n");
}
}
diff --git a/test/hftest/BUILD.gn b/test/hftest/BUILD.gn
index 81525a2..f73272a 100644
--- a/test/hftest/BUILD.gn
+++ b/test/hftest/BUILD.gn
@@ -100,6 +100,7 @@
"//src:memiter",
"//src/arch/${plat_arch}:entry",
"//src/arch/${plat_arch}/hftest:entry",
+ "//src/arch/${plat_arch}/hftest:interrupts",
"//src/arch/${plat_arch}/hftest:power_mgmt",
]
}
diff --git a/test/hftest/standalone_main.c b/test/hftest/standalone_main.c
index 63edf1e..f42c71b 100644
--- a/test/hftest/standalone_main.c
+++ b/test/hftest/standalone_main.c
@@ -17,6 +17,8 @@
#include <stdalign.h>
#include <stdint.h>
+#include "hf/arch/vm/interrupts.h"
+
#include "hf/fdt.h"
#include "hf/memiter.h"
#include "hf/mm.h"
@@ -45,6 +47,12 @@
return;
}
+ /*
+ * Install the exception handler with no IRQ callback for now, so that
+ * exceptions are logged.
+ */
+ exception_setup(NULL);
+
hftest_use_list(hftest_begin, hftest_end - hftest_begin);
if (!fdt_root_node(&n, fdt)) {