| // 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; |
| } |