diff --git a/lib/common/tests/utils/Makefile.am b/lib/common/tests/utils/Makefile.am index b264a9a1e1..610254ef65 100644 --- a/lib/common/tests/utils/Makefile.am +++ b/lib/common/tests/utils/Makefile.am @@ -1,34 +1,35 @@ # # Copyright 2020-2022 the Pacemaker project contributors # # The version control history for this file may have further details. # # This source code is licensed under the GNU General Public License version 2 # or later (GPLv2+) WITHOUT ANY WARRANTY. # AM_CPPFLAGS = -I$(top_srcdir)/include \ -I$(top_builddir)/include \ -I$(top_srcdir)/lib/common LDADD = $(top_builddir)/lib/common/libcrmcommon_test.la \ -lcmocka AM_CFLAGS = -DPCMK__UNIT_TESTING AM_LDFLAGS = $(LDFLAGS_WRAP) include $(top_srcdir)/mk/tap.mk # Add "_test" to the end of all test program names to simplify .gitignore. check_PROGRAMS = \ compare_version_test \ crm_meta_name_test \ crm_meta_value_test \ crm_user_lookup_test \ pcmk_daemon_user_test \ pcmk_str_is_infinity_test \ - pcmk_str_is_minus_infinity_test + pcmk_str_is_minus_infinity_test \ + pcmk__getpid_s_test if WRAPPABLE_UNAME check_PROGRAMS += pcmk_hostname_test endif TESTS = $(check_PROGRAMS) diff --git a/lib/common/tests/utils/pcmk__getpid_s_test.c b/lib/common/tests/utils/pcmk__getpid_s_test.c new file mode 100644 index 0000000000..2015401e0f --- /dev/null +++ b/lib/common/tests/utils/pcmk__getpid_s_test.c @@ -0,0 +1,46 @@ +/* + * Copyright 2022 the Pacemaker project contributors + * + * The version control history for this file may have further details. + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + +#include + +#include + +#include "mock_private.h" + +#include +#include + +static void +pcmk__getpid_s_test(void **state) +{ + char *retval; + + // Set getpid() return value + pcmk__mock_getpid = true; + will_return(__wrap_getpid, 1234); + + retval = pcmk__getpid_s(); + assert_non_null(retval); + assert_string_equal("1234", retval); + + free(retval); + + pcmk__mock_getpid = false; +} + +int +main(int argc, char **argv) +{ + const struct CMUnitTest tests[] = { + cmocka_unit_test(pcmk__getpid_s_test), + }; + + cmocka_set_message_output(CM_OUTPUT_TAP); + return cmocka_run_group_tests(tests, NULL, NULL); +}