/* * Copyright (c) 2023, Meta * * SPDX-License-Identifier: Apache-2.0 */ #include "thrd.h" #include <stdint.h> #include <threads.h> #include <zephyr/ztest.h> static size_t number_of_calls; static once_flag flag = ONCE_FLAG_INIT; static void once_func(void) { number_of_calls++; } ZTEST(libc_once, test_call_once) { zassert_equal(number_of_calls, 0); call_once(&flag, once_func); call_once(&flag, once_func); call_once(&flag, once_func); zassert_equal(number_of_calls, 1); } ZTEST_SUITE(libc_once, NULL, NULL, NULL, NULL, NULL);