From 11f42cef53ea31e4eee313f551faca32ac7aafcd Mon Sep 17 00:00:00 2001 From: Christopher Friedt Date: Fri, 25 Aug 2023 08:03:33 -0400 Subject: [PATCH] tests: lib: c_lib: tests for C11 call_once() Add tests for C11 call_once(). Signed-off-by: Christopher Friedt --- tests/lib/c_lib/thrd/src/once.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tests/lib/c_lib/thrd/src/once.c 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);