summaryrefslogtreecommitdiff
path: root/src/test/test-ipcrm.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-10-20 18:02:54 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-10-20 18:06:28 +0200
commitbb4febf4c15800da368f161c07d0f77e2604e503 (patch)
tree907b7c6d5427bc00b84c977c690218d5299621cf /src/test/test-ipcrm.c
parentaecdef08be06d0881e0bc996361a46fe34dc9a4b (diff)
downloadsystemd-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.c20
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);