| /* |
| * 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); |