diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-10-20 18:02:54 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-10-20 18:06:28 +0200 |
commit | bb4febf4c15800da368f161c07d0f77e2604e503 (patch) | |
tree | 907b7c6d5427bc00b84c977c690218d5299621cf /src/test/test-ipcrm.c | |
parent | aecdef08be06d0881e0bc996361a46fe34dc9a4b (diff) | |
download | systemd-bb4febf4c15800da368f161c07d0f77e2604e503.tar.gz |
test-ipcrm: modernize, skip test on permission errors
I now get:
$ build/test-ipcrm
Failed to enter shared memory directory /dev/shm/multipath: Permission denied
test-ipcrm: No privileges, skipping tests.
Diffstat (limited to 'src/test/test-ipcrm.c')
-rw-r--r-- | src/test/test-ipcrm.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/test/test-ipcrm.c b/src/test/test-ipcrm.c index 4b658a0bdb..4565d65676 100644 --- a/src/test/test-ipcrm.c +++ b/src/test/test-ipcrm.c @@ -1,11 +1,12 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ #include "clean-ipc.h" -#include "user-util.h" +#include "errno-util.h" +#include "main-func.h" #include "tests.h" -#include "util.h" +#include "user-util.h" -int main(int argc, char *argv[]) { +static int run(int argc, char *argv[]) { uid_t uid; int r; const char* name = argv[1] ?: NOBODY_USER_NAME; @@ -15,11 +16,14 @@ int main(int argc, char *argv[]) { r = get_user_creds(&name, &uid, NULL, NULL, NULL, 0); if (r == -ESRCH) return log_tests_skipped("Failed to resolve user"); - if (r < 0) { - log_error_errno(r, "Failed to resolve \"%s\": %m", name); - return EXIT_FAILURE; - } + if (r < 0) + return log_error_errno(r, "Failed to resolve \"%s\": %m", name); r = clean_ipc_by_uid(uid); - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + if (ERRNO_IS_PRIVILEGE(r)) + return log_tests_skipped("No privileges"); + + return r; } + +DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE(run); |