diff --git a/tests/lib/c_lib/thrd/src/once.c b/tests/lib/c_lib/thrd/src/once.c new file mode 100644 index 000000000000000..e239206d9b41ab7 --- /dev/null +++ b/tests/lib/c_lib/thrd/src/once.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2023, Meta + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "thrd.h" + +#include +#include + +#include + +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);