From: Teemu Toivola Date: Sat, 29 Jun 2019 16:39:18 +0000 (+0300) Subject: make test execution possible even when current user or group doesn't exist X-Git-Tag: v2.3~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4cf5000590173f3ca3dcbbe1eebe6e479051ef36;p=vnstat make test execution possible even when current user or group doesn't exist --- diff --git a/tests/id_tests.c b/tests/id_tests.c index ddb4511..9f7bc25 100644 --- a/tests/id_tests.c +++ b/tests/id_tests.c @@ -69,9 +69,17 @@ END_TEST START_TEST(setuser_with_current_user) { char temp[16]; - suppress_output(); - snprintf(temp, 16, "%d", getuser("")); - setuser(temp); + struct passwd *pw; + + pw = getpwuid(getuid()); + + if (pw != NULL) { + suppress_output(); + snprintf(temp, 16, "%d", getuser("")); + setuser(temp); + } else { + printf("Note: skipping test setuser_with_current_user due to non-existing user\n"); + } } END_TEST @@ -85,9 +93,17 @@ END_TEST START_TEST(setgroup_with_current_group) { char temp[16]; - suppress_output(); - snprintf(temp, 16, "%d", getgroup("")); - setgroup(temp); + struct group *gr; + + gr = getgrgid(getgid()); + + if (gr != NULL) { + suppress_output(); + snprintf(temp, 16, "%d", getgroup("")); + setgroup(temp); + } else { + printf("Note: skipping test setgroup_with_current_group due to non-existing group\n"); + } } END_TEST