diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2025-08-04 19:38:07 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2025-08-04 19:38:07 +0000 |
| commit | 7be913e00d79b3bf740049797fbc3f6ab8193995 (patch) | |
| tree | c59bfc11728e9182ba7d13ef44de2e374d2b0764 /lib/libutil++/tests | |
| parent | 2bb9180bb5d0054bf79529d6a1cb56b61a94629a (diff) | |
Diffstat (limited to 'lib/libutil++/tests')
| -rw-r--r-- | lib/libutil++/tests/Makefile | 3 | ||||
| -rw-r--r-- | lib/libutil++/tests/pidfile_test.cc | 44 |
2 files changed, 47 insertions, 0 deletions
diff --git a/lib/libutil++/tests/Makefile b/lib/libutil++/tests/Makefile index 81b7be4f5660..e7720d122f36 100644 --- a/lib/libutil++/tests/Makefile +++ b/lib/libutil++/tests/Makefile @@ -1,9 +1,12 @@ PACKAGE= tests +ATF_TESTS_CXX+= pidfile_test ATF_TESTS_CXX+= stringf_test ATF_TESTS_CXX+= up_test CFLAGS+= -I${SRCTOP}/lib/libutil++ LIBADD+= util++ +LIBADD.pidfile_test+= util + .include <bsd.test.mk> diff --git a/lib/libutil++/tests/pidfile_test.cc b/lib/libutil++/tests/pidfile_test.cc new file mode 100644 index 000000000000..067f10e8fab8 --- /dev/null +++ b/lib/libutil++/tests/pidfile_test.cc @@ -0,0 +1,44 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025 Chelsio Communications, Inc. + * Written by: John Baldwin <jhb@FreeBSD.org> + */ + +#include <atf-c++.hpp> +#include <sys/stat.h> +#include <libutil.h> + +#include <libutil++.hh> + +ATF_TEST_CASE_WITHOUT_HEAD(basic); +ATF_TEST_CASE_BODY(basic) +{ + pid_t other; + struct pidfh *pfh = pidfile_open("test_pidfile", 0600, &other); + ATF_REQUIRE(pfh != nullptr); + ATF_REQUIRE(pidfile_fileno(pfh) >= 0); + + struct stat sb; + ATF_REQUIRE(fstat(pidfile_fileno(pfh), &sb) == 0); + ATF_REQUIRE_EQ(0, sb.st_size); + + freebsd::pidfile pf(pfh); + ATF_REQUIRE_EQ(pidfile_fileno(pfh), pf.fileno()); + + ATF_REQUIRE(pf.write() == 0); + + ATF_REQUIRE(fstat(pf.fileno(), &sb) == 0); + ATF_REQUIRE(sb.st_size > 0); + + ATF_REQUIRE(pf.close() == 0); + ATF_REQUIRE(pf.fileno() == -1); + ATF_REQUIRE_EQ(EDOOFUS, errno); + + ATF_REQUIRE(unlink("test_pidfile") == 0); +} + +ATF_INIT_TEST_CASES(tcs) +{ + ATF_ADD_TEST_CASE(tcs, basic); +} |
