user-util: add mangle_gecos() call for turning strings into fields suitable as GECOS fields

This commit is contained in:
Lennart Poettering
2020-08-07 17:36:11 +02:00
parent c1c28fe2f7
commit b10fd796f5
3 changed files with 52 additions and 0 deletions
+20
View File
@@ -452,6 +452,25 @@ static void test_parse_uid_range(void) {
assert_se(parse_uid_range(" 01", &a, &b) == -EINVAL && a == 4 && b == 5);
}
static void test_mangle_gecos_one(const char *input, const char *expected) {
_cleanup_free_ char *p = NULL;
assert_se(p = mangle_gecos(input));
assert_se(streq(p, expected));
assert_se(valid_gecos(p));
}
static void test_mangle_gecos(void) {
test_mangle_gecos_one("", "");
test_mangle_gecos_one("root", "root");
test_mangle_gecos_one("wuff\nwuff", "wuff wuff");
test_mangle_gecos_one("wuff:wuff", "wuff wuff");
test_mangle_gecos_one("wuff\r\n:wuff", "wuff wuff");
test_mangle_gecos_one("\n--wüff-wäff-wöff::", " --wüff-wäff-wöff ");
test_mangle_gecos_one("\xc3\x28", " (");
test_mangle_gecos_one("\xe2\x28\xa1", " ( ");
}
int main(int argc, char *argv[]) {
test_uid_to_name_one(0, "root");
test_uid_to_name_one(UID_NOBODY, NOBODY_USER_NAME);
@@ -482,6 +501,7 @@ int main(int argc, char *argv[]) {
test_valid_user_group_name_or_numeric_relaxed();
test_valid_user_group_name_or_numeric();
test_valid_gecos();
test_mangle_gecos();
test_valid_home();
test_make_salt();