Merge branch 'bugfix/c3_init_priority' into 'master'

fix[cxx/system]: init_priority ordering on RISCV

Closes IDF-2206 and IDFGH-4527

See merge request espressif/esp-idf!11660
This commit is contained in:
Angus Gratton
2021-01-13 12:52:21 +08:00
3 changed files with 44 additions and 10 deletions

View File

@@ -180,17 +180,17 @@ struct PriorityInitTest
int PriorityInitTest::order = 0;
// init_priority objects are initialized from the lowest to the heighest priority number
// Default init_priority is always the lowest
PriorityInitTest g_static_init_priority_test3;
PriorityInitTest g_static_init_priority_test2 __attribute__((init_priority(1000)));
PriorityInitTest g_static_init_priority_test1 __attribute__((init_priority(999)));
// Default init_priority is always the lowest (highest priority number)
PriorityInitTest g_static_init_priority_test2;
PriorityInitTest g_static_init_priority_test1 __attribute__((init_priority(1000)));
PriorityInitTest g_static_init_priority_test0 __attribute__((init_priority(999)));
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C3)
// TODO ESP32C3 IDF-2206
TEST_CASE("init_priority extension works", "[cxx]")
{
TEST_ASSERT_EQUAL(0, g_static_init_priority_test1.index);
TEST_ASSERT_EQUAL(1, g_static_init_priority_test2.index);
TEST_ASSERT_EQUAL(2, g_static_init_priority_test3.index);
TEST_ASSERT_EQUAL(0, g_static_init_priority_test0.index);
TEST_ASSERT_EQUAL(1, g_static_init_priority_test1.index);
TEST_ASSERT_EQUAL(2, g_static_init_priority_test2.index);
}
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C3)