mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 17:19:09 -04:00
CXX: removed exception windowspill test
This test randomly fails in CI. Hence the removal until further investigation. The original issue the test was addressing has been fixed in our gcc; it has also been confirmed and fixed in the upstream gcc. This test only crashes at the end of the test function so it is reasonable to assume that it should be safe removing it so far, ie., the test doesn't reveal a problem with the original fix but a different one. Opening an Jira issue IDFCI-76 for the further investigation
This commit is contained in:
parent
4a0a331122
commit
f3e180de72
@ -251,60 +251,6 @@ TEST_CASE("c++ exceptions emergency pool", "[cxx] [exceptions] [ignore] [leaks="
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#define TIMEOUT 19
|
||||
|
||||
#define RECURSION 19
|
||||
|
||||
static esp_timer_handle_t crash_timer;
|
||||
|
||||
static uint32_t result = 0;
|
||||
|
||||
uint32_t calc_fac(uint32_t n) {
|
||||
if (n == 1 || n == 0) {
|
||||
return 1;
|
||||
} else {
|
||||
return n * calc_fac(n - 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void timer_cb(void *arg) {
|
||||
result = calc_fac(RECURSION);
|
||||
}
|
||||
|
||||
// TODO: Not a unit test, refactor to integration test/system test, etc.
|
||||
TEST_CASE("frequent interrupts don't interfere with c++ exceptions", "[cxx] [exceptions] [leaks=" LEAKS "]")
|
||||
{// if exception workaround is disabled, this is almost guaranteed to fail
|
||||
const esp_timer_create_args_t timer_args {
|
||||
timer_cb,
|
||||
NULL,
|
||||
ESP_TIMER_TASK,
|
||||
"crash_timer"
|
||||
};
|
||||
|
||||
TEST_ESP_OK(esp_timer_create(&timer_args, &crash_timer));
|
||||
TEST_ESP_OK(esp_timer_start_periodic(crash_timer, TIMEOUT));
|
||||
|
||||
for (int i = 0; i < 500; i++) {
|
||||
bool thrown_value = false;
|
||||
try {
|
||||
throw true;
|
||||
} catch (bool e) {
|
||||
thrown_value = e;
|
||||
}
|
||||
|
||||
if (thrown_value) {
|
||||
printf("ex thrown %d\n", i);
|
||||
} else {
|
||||
printf("ex not thrown\n");
|
||||
TEST_ASSERT(false);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_ESP_OK(esp_timer_stop(crash_timer));
|
||||
TEST_ESP_OK(esp_timer_delete(crash_timer));
|
||||
}
|
||||
|
||||
#else // !CONFIG_COMPILER_CXX_EXCEPTIONS
|
||||
|
||||
TEST_CASE("std::out_of_range exception when -fno-exceptions", "[cxx][reset=abort,SW_CPU_RESET]")
|
||||
|
Loading…
x
Reference in New Issue
Block a user