X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-ipcrm.c;h=2a3852b8922dd303fd43c24ea7972323a4019402;hb=b0118a799cb47c331d976d9d43ce0c5130b13cdc;hp=4944bf6ad930e2b6e15790d501a3fed92c93d2c6;hpb=66cdd0f2d0670b054bd27dad16fcb5838b11dde3;p=elogind.git diff --git a/src/test/test-ipcrm.c b/src/test/test-ipcrm.c index 4944bf6ad..2a3852b89 100644 --- a/src/test/test-ipcrm.c +++ b/src/test/test-ipcrm.c @@ -1,5 +1,3 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ - /*** This file is part of systemd. @@ -19,14 +17,26 @@ along with systemd; If not, see . ***/ -#include "util.h" #include "clean-ipc.h" +#include "user-util.h" +#include "util.h" int main(int argc, char *argv[]) { uid_t uid; - - assert_se(argc == 2); - assert_se(parse_uid(argv[1], &uid) >= 0); - - return clean_ipc(uid) < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + int r; +#if 0 /// not configurable in elogind + const char* name = argv[1] ?: NOBODY_USER_NAME; +#else + const char* name = argv[1] ?: "nobody"; +#endif // 0 + + r = get_user_creds(&name, &uid, NULL, NULL, NULL); + if (r < 0) { + log_full_errno(r == -ESRCH ? LOG_NOTICE : LOG_ERR, + r, "Failed to resolve \"%s\": %m", name); + return r == -ESRCH ? EXIT_TEST_SKIP : EXIT_FAILURE; + } + + r = clean_ipc_by_uid(uid); + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; }