summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-04-21 18:14:53 +0200
committerLennart Poettering <lennart@poettering.net>2023-04-27 12:17:58 +0200
commit1a56b0c05dc14fa91f0de24f230d9b9f35cc5b05 (patch)
treeb46f8375b718fb791fa8a3a116b6a17788546a19 /src/test
parent49c778e6bf70ebf230989ab84e9ce7f1b26beef2 (diff)
downloadsystemd-1a56b0c05dc14fa91f0de24f230d9b9f35cc5b05.tar.gz
cgroup: rework how we validate/escape cgroups
Let's clean up validation/escaping of cgroup names. i.e. split out code that tests if name needs escaping. Return proper error codes, and extend test a bit.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/test-cgroup-util.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/test/test-cgroup-util.c b/src/test/test-cgroup-util.c
index cdf911926c..4f430a1df2 100644
--- a/src/test/test-cgroup-util.c
+++ b/src/test/test-cgroup-util.c
@@ -235,14 +235,19 @@ TEST(proc) {
}
}
-static void test_escape_one(const char *s, const char *r) {
- _cleanup_free_ char *b;
+static void test_escape_one(const char *s, const char *expected) {
+ _cleanup_free_ char *b = NULL;
- b = cg_escape(s);
- assert_se(b);
- assert_se(streq(b, r));
+ assert_se(s);
+ assert_se(expected);
+
+ assert_se(cg_escape(s, &b) >= 0);
+ assert_se(streq(b, expected));
assert_se(streq(cg_unescape(b), s));
+
+ assert_se(filename_is_valid(b));
+ assert_se(!cg_needs_escape(s) || b[0] == '_');
}
TEST(escape, .sd_booted = true) {