From: Alejandro Colomar Date: Sat, 29 Jun 2024 17:32:32 +0000 (+0200) Subject: tests/unit/test_typetraits.c: Add tests for typetraits.h macros X-Git-Tag: 4.17.0-rc1~221 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24695e6f38df28c4b8bcb29d72f1519952ea87b0;p=thirdparty%2Fshadow.git tests/unit/test_typetraits.c: Add tests for typetraits.h macros Suggested-by: "Serge E. Hallyn" Signed-off-by: Alejandro Colomar --- diff --git a/tests/unit/Makefile.am b/tests/unit/Makefile.am index d89367a37..21490f15d 100644 --- a/tests/unit/Makefile.am +++ b/tests/unit/Makefile.am @@ -10,6 +10,7 @@ check_PROGRAMS = \ test_sprintf \ test_strncpy \ test_strtcpy \ + test_typetraits \ test_xasprintf \ test_zustr2stp @@ -115,6 +116,18 @@ test_strtcpy_LDADD = \ $(CMOCKA_LIBS) \ $(NULL) +test_typetraits_SOURCES = \ + test_typetraits.c \ + $(NULL) +test_typetraits_CFLAGS = \ + $(AM_CFLAGS) \ + $(NULL) +test_typetraits_LDFLAGS = \ + $(NULL) +test_typetraits_LDADD = \ + $(CMOCKA_LIBS) \ + $(NULL) + test_xasprintf_SOURCES = \ ../../lib/string/sprintf.c \ test_xasprintf.c \ diff --git a/tests/unit/test_typetraits.c b/tests/unit/test_typetraits.c new file mode 100644 index 000000000..4aeb616b6 --- /dev/null +++ b/tests/unit/test_typetraits.c @@ -0,0 +1,55 @@ +// SPDX-FileCopyrightText: 2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#include + +#include // Required by +#include // Required by +#include // Required by +#include // Required by +#include + +#include "typetraits.h" + + +static void test_type_max(void **state); +static void test_type_min(void **state); + + +int +main(void) +{ + const struct CMUnitTest tests[] = { + cmocka_unit_test(test_type_max), + cmocka_unit_test(test_type_min), + }; + + return cmocka_run_group_tests(tests, NULL, NULL); +} + + +static void +test_type_max(void **state) +{ + assert_true(type_max(long) == LONG_MAX); + assert_true(type_max(unsigned long) == ULONG_MAX); + assert_true(type_max(int) == INT_MAX); + assert_true(type_max(unsigned short) == USHRT_MAX); + assert_true(type_max(char) == CHAR_MAX); + assert_true(type_max(signed char) == SCHAR_MAX); + assert_true(type_max(unsigned char) == UCHAR_MAX); +} + + +static void +test_type_min(void **state) +{ + assert_true(type_min(long) == LONG_MIN); + assert_true(type_min(unsigned long) == 0); + assert_true(type_min(int) == INT_MIN); + assert_true(type_min(unsigned short) == 0); + assert_true(type_min(char) == CHAR_MIN); + assert_true(type_min(signed char) == SCHAR_MIN); + assert_true(type_min(unsigned char) == 0); +}