You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.3 KiB
88 lines
3.3 KiB
From 01df4d485c8a6f3493a83a2a61572e9f2bccb649 Mon Sep 17 00:00:00 2001 |
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> |
|
Date: Wed, 19 Jan 2022 09:39:55 +0100 |
|
Subject: [PATCH] test-load-fragment: add a basic test for |
|
config_parse_unit_env_file() |
|
|
|
(cherry picked from commit 3ef86964ed151aa2464701eef46d665adfd70895) |
|
|
|
Related: #2017035 |
|
--- |
|
src/test/test-load-fragment.c | 64 +++++++++++++++++++++++++++++++++++ |
|
1 file changed, 64 insertions(+) |
|
|
|
diff --git a/src/test/test-load-fragment.c b/src/test/test-load-fragment.c |
|
index 1bd68c7e0a..fbe4744333 100644 |
|
--- a/src/test/test-load-fragment.c |
|
+++ b/src/test/test-load-fragment.c |
|
@@ -773,6 +773,70 @@ TEST(config_parse_pass_environ) { |
|
assert_se(streq(passenv[0], "normal_name")); |
|
} |
|
|
|
+TEST(config_parse_unit_env_file) { |
|
+ /* int config_parse_unit_env_file( |
|
+ const char *unit, |
|
+ const char *filename, |
|
+ unsigned line, |
|
+ const char *section, |
|
+ unsigned section_line, |
|
+ const char *lvalue, |
|
+ int ltype, |
|
+ const char *rvalue, |
|
+ void *data, |
|
+ void *userdata) */ |
|
+ |
|
+ _cleanup_(manager_freep) Manager *m = NULL; |
|
+ Unit *u; |
|
+ _cleanup_strv_free_ char **files = NULL; |
|
+ int r; |
|
+ |
|
+ r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_MINIMAL, &m); |
|
+ if (manager_errno_skip_test(r)) { |
|
+ log_notice_errno(r, "Skipping test: manager_new: %m"); |
|
+ return; |
|
+ } |
|
+ |
|
+ assert_se(r >= 0); |
|
+ assert_se(manager_startup(m, NULL, NULL, NULL) >= 0); |
|
+ |
|
+ assert_se(u = unit_new(m, sizeof(Service))); |
|
+ assert_se(unit_add_name(u, "foobar.service") == 0); |
|
+ |
|
+ r = config_parse_unit_env_file(u->id, "fake", 1, "section", 1, |
|
+ "EnvironmentFile", 0, "not-absolute", |
|
+ &files, u); |
|
+ assert_se(r == 0); |
|
+ assert_se(strv_length(files) == 0); |
|
+ |
|
+ r = config_parse_unit_env_file(u->id, "fake", 1, "section", 1, |
|
+ "EnvironmentFile", 0, "/absolute1", |
|
+ &files, u); |
|
+ assert_se(r == 0); |
|
+ assert_se(strv_length(files) == 1); |
|
+ |
|
+ r = config_parse_unit_env_file(u->id, "fake", 1, "section", 1, |
|
+ "EnvironmentFile", 0, "/absolute2", |
|
+ &files, u); |
|
+ assert_se(r == 0); |
|
+ assert_se(strv_length(files) == 2); |
|
+ assert_se(streq(files[0], "/absolute1")); |
|
+ assert_se(streq(files[1], "/absolute2")); |
|
+ |
|
+ r = config_parse_unit_env_file(u->id, "fake", 1, "section", 1, |
|
+ "EnvironmentFile", 0, "", |
|
+ &files, u); |
|
+ assert_se(r == 0); |
|
+ assert_se(strv_isempty(files)); |
|
+ |
|
+ r = config_parse_unit_env_file(u->id, "fake", 1, "section", 1, |
|
+ "EnvironmentFile", 0, "/path/%n.conf", |
|
+ &files, u); |
|
+ assert_se(r == 0); |
|
+ assert_se(strv_length(files) == 1); |
|
+ assert_se(streq(files[0], "/path/foobar.service.conf")); |
|
+} |
|
+ |
|
TEST(unit_dump_config_items) { |
|
unit_dump_config_items(stdout); |
|
}
|
|
|