diff --git a/components/cxx/test/test_cxx.cpp b/components/cxx/test/test_cxx.cpp index 91bac6313e..ead4774d15 100644 --- a/components/cxx/test/test_cxx.cpp +++ b/components/cxx/test/test_cxx.cpp @@ -1,5 +1,7 @@ #include -#include +#include +#include +#include #include "unity.h" #include "esp_log.h" #include "freertos/FreeRTOS.h" @@ -271,6 +273,22 @@ TEST_CASE("c++ exceptions emergency pool", "[cxx] [ignore]") #endif } +#else // !CONFIG_CXX_EXCEPTIONS + +TEST_CASE("std::out_of_range exception when -fno-exceptions", "[cxx][reset=abort,SW_CPU_RESET]") +{ + std::vector v(10); + v.at(20) = 42; + TEST_FAIL_MESSAGE("Unreachable because we are aborted on the line above"); +} + +TEST_CASE("std::bad_alloc exception when -fno-exceptions", "[cxx][reset=abort,SW_CPU_RESET]") +{ + std::string s = std::string(2000000000, 'a'); + (void)s; + TEST_FAIL_MESSAGE("Unreachable because we are aborted on the line above"); +} + #endif /* These test cases pull a lot of code from libstdc++ and are disabled for now