| // Copyright Microsoft and CHERIoT Contributors. |
| // SPDX-License-Identifier: MIT |
| |
| #define TEST_NAME "Crash recovery (outer compartment)" |
| #include "crash_recovery.h" |
| #include <cheri.hh> |
| #include <errno.h> |
| |
| void test_crash_recovery_outer(int) |
| { |
| debug_log( |
| "Calling crashy compartment from compartment with no error handler"); |
| CHERI::Capability<void> ret = test_crash_recovery_inner(0); |
| check_stack(); |
| TEST(ret.is_valid() == false, "Error returned a tagged capability {}", ret); |
| TEST(ret.address() == -1, |
| "Error return path returned number that is not -1: {}", |
| ret.address()); |
| debug_log("Calling crashy compartment returned to compartment with no " |
| "error handler. Return value: {}", |
| ret); |
| } |