fix(esp_libc): provide picolibc timespec_get

The Picolibc headers in the ESP-IDF v6.0 toolchain declare the C11
timespec_get API, but the corresponding archives do not define it.
Provide the missing compatibility implementation through esp_libc
and cover valid and invalid time bases.
This commit is contained in:
idy
2026-08-28 08:12:23 +02:00
committed by Guillaume Souchere
parent b0b7cca32c
commit cb5c414fe8
3 changed files with 27 additions and 0 deletions
@@ -548,6 +548,17 @@ TEST_CASE("test posix_timers clock_... functions", "[newlib]")
test_posix_timers_clock();
}
TEST_CASE("timespec_get returns UTC time", "[newlib]")
{
struct timespec ts = {0};
TEST_ASSERT_EQUAL_INT(TIME_UTC, timespec_get(&ts, TIME_UTC));
TEST_ASSERT_GREATER_OR_EQUAL_INT64(0, ts.tv_sec);
TEST_ASSERT_GREATER_OR_EQUAL_INT32(0, ts.tv_nsec);
TEST_ASSERT_LESS_THAN_INT32(1000000000L, ts.tv_nsec);
TEST_ASSERT_EQUAL_INT(0, timespec_get(&ts, -1));
}
#define TEST_USE_CPU_CYCLES 1
#if TEST_USE_CPU_CYCLES && CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE
#include "esp_cpu.h"