From: Yu Watanabe Date: Tue, 11 Mar 2025 21:44:21 +0000 (+0900) Subject: test: add test cases for hostname_substitute_wildcards() X-Git-Tag: v258-rc1~1103^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=851c706e74acf0f76ee39e0c9ffa75f1e2ed1e23;p=thirdparty%2Fsystemd.git test: add test cases for hostname_substitute_wildcards() The function is indirectly tested through read_etc_hostname(), but let's also test it directly. --- diff --git a/src/test/test-hostname-setup.c b/src/test/test-hostname-setup.c index da6e3796995..8243d600e18 100644 --- a/src/test/test-hostname-setup.c +++ b/src/test/test-hostname-setup.c @@ -76,6 +76,32 @@ TEST(read_etc_hostname) { assert(hostname == (char*) 0x1234); /* does not touch argument on error */ } +TEST(hostname_substitute_wildcards) { + int r; + + r = sd_id128_get_machine(NULL); + if (ERRNO_IS_NEG_MACHINE_ID_UNSET(r)) + return (void) log_tests_skipped_errno(r, "skipping wildcard hostname tests, no machine ID defined"); + + _cleanup_free_ char *buf = NULL; + ASSERT_NOT_NULL((buf = strdup(""))); + ASSERT_OK(hostname_substitute_wildcards(buf)); + ASSERT_STREQ(buf, ""); + ASSERT_NULL((buf = mfree(buf))); + + ASSERT_NOT_NULL((buf = strdup("hogehoge"))); + ASSERT_OK(hostname_substitute_wildcards(buf)); + ASSERT_STREQ(buf, "hogehoge"); + ASSERT_NULL((buf = mfree(buf))); + + ASSERT_NOT_NULL((buf = strdup("hoge??hoge??foo?"))); + ASSERT_OK(hostname_substitute_wildcards(buf)); + log_debug("hostname_substitute_wildcards(\"hoge??hoge??foo?\"): → \"%s\"", buf); + ASSERT_EQ(fnmatch("hoge??hoge??foo?", buf, /* flags= */ 0), 0); + ASSERT_TRUE(hostname_is_valid(buf, /* flags= */ 0)); + ASSERT_NULL((buf = mfree(buf))); +} + TEST(hostname_setup) { hostname_setup(false); }