test/cxx: Test for exception from libstdc++ with -fno-exceptions

This commit is contained in:
Anton Maklakov 2018-09-07 20:44:25 +08:00
parent e0f7e196f2
commit fdb369c76f

View File

@ -1,5 +1,7 @@
#include <vector> #include <vector>
#include <algorithm> #include <numeric>
#include <stdexcept>
#include <string>
#include "unity.h" #include "unity.h"
#include "esp_log.h" #include "esp_log.h"
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
@ -271,6 +273,22 @@ TEST_CASE("c++ exceptions emergency pool", "[cxx] [ignore]")
#endif #endif
} }
#else // !CONFIG_CXX_EXCEPTIONS
TEST_CASE("std::out_of_range exception when -fno-exceptions", "[cxx][reset=abort,SW_CPU_RESET]")
{
std::vector<int> 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 #endif
/* These test cases pull a lot of code from libstdc++ and are disabled for now /* These test cases pull a lot of code from libstdc++ and are disabled for now