mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-01 18:50:34 +03:00
feat(esp_system): add esp_sys_event framework
Introduce a shared esp system event framework and use it for system init and shutdown.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -49,17 +49,15 @@ TEST_CASE("reset_reason", "[esp_system]")
|
||||
TEST_CASE("unregister_handler_works", "[esp_system]")
|
||||
{
|
||||
token = 0;
|
||||
// for some reason, the handlers are executed in reverse order of adding handlers, so we always
|
||||
// register the jumping handler at first to make it execute last
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(jump_back_shutdown_handler));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(action));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(jump_back_shutdown_handler));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_unregister_shutdown_handler(action));
|
||||
|
||||
if (setjmp(env) == 0) {
|
||||
esp_restart();
|
||||
}
|
||||
|
||||
// fist unregister before any assert to avoid skipping by assert's longjmp
|
||||
// first unregister before any assert to avoid skipping by assert's longjmp
|
||||
cleanup();
|
||||
|
||||
TEST_ASSERT_EQUAL(0, token);
|
||||
@@ -76,8 +74,8 @@ TEST_CASE("register_shutdown_handler_twice_fails", "[esp_system]")
|
||||
TEST_CASE("register_shutdown_handler_works", "[esp_system]")
|
||||
{
|
||||
token = 0;
|
||||
TEST_ASSERT_EQUAL(esp_register_shutdown_handler(jump_back_shutdown_handler), ESP_OK);
|
||||
TEST_ASSERT_EQUAL(esp_register_shutdown_handler(action), ESP_OK);
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(action));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(jump_back_shutdown_handler));
|
||||
|
||||
if (setjmp(env) == 0) {
|
||||
esp_restart();
|
||||
@@ -88,15 +86,14 @@ TEST_CASE("register_shutdown_handler_works", "[esp_system]")
|
||||
TEST_ASSERT_EQUAL(1, token);
|
||||
}
|
||||
|
||||
TEST_CASE("register_too_many_shutdown_handler_fails", "[esp_system]")
|
||||
TEST_CASE("register_many_shutdown_handlers_succeeds", "[esp_system]")
|
||||
{
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(dummy_shutdown_handler_0));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(dummy_shutdown_handler_1));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(dummy_shutdown_handler_2));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(dummy_shutdown_handler_3));
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(dummy_shutdown_handler_4));
|
||||
|
||||
TEST_ASSERT_EQUAL(esp_register_shutdown_handler(jump_back_shutdown_handler), ESP_ERR_NO_MEM);
|
||||
TEST_ASSERT_EQUAL(ESP_OK, esp_register_shutdown_handler(jump_back_shutdown_handler));
|
||||
|
||||
cleanup();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user