| // Copyright Microsoft and CHERIoT Contributors. | |
| // SPDX-License-Identifier: MIT | |
| #define TEST_NAME "Compartment calls (inner compartment)" | |
| #include "compartment_calls.h" | |
| #include "tests.hh" | |
| #include <cheri.hh> | |
| #include <errno.h> | |
| #include <tuple> | |
| using namespace CHERI; | |
| extern "C" ErrorRecoveryBehaviour | |
| compartment_error_handler(ErrorState *frame, size_t mcause, size_t mtval) | |
| { | |
| return ErrorRecoveryBehaviour::ForceUnwind; | |
| } | |
| int test_incorrect_export_table_with_handler(__cheri_callback void (*fn)()) | |
| { | |
| /* | |
| * Trigger a cross-compartment call with an invalid export entry. | |
| */ | |
| debug_log( | |
| "test an incorrect export table entry with error handler installed"); | |
| fn(); | |
| TEST(false, "Should be unreachable"); | |
| return 0; | |
| } |