]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-fileio: test test strings with shell, too 17027/head
authorLennart Poettering <lennart@poettering.net>
Fri, 11 Sep 2020 15:43:05 +0000 (17:43 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 14 Sep 2020 10:26:41 +0000 (12:26 +0200)
src/test/test-fileio.c

index 3e6413ec47e0f9c64d5ba32718c6abd78f9cbf16..9c0b3533c24b2d6824f9cbefb1c0df8d442b7ee5 100644 (file)
@@ -151,6 +151,18 @@ static void test_parse_env_file(void) {
         assert_se(r >= 0);
 }
 
+static void test_one_shell_var(const char *file, const char *variable, const char *value) {
+        _cleanup_free_ char *cmd = NULL, *from_shell = NULL;
+        _cleanup_fclose_ FILE *f = NULL;
+        size_t sz;
+
+        assert_se(cmd = strjoin(". ", file, " && /bin/echo -n \"$", variable, "\""));
+        assert_se(f = popen(cmd, "re"));
+        assert_se(read_full_stream(f, &from_shell, &sz) >= 0);
+        assert_se(sz == strlen(value));
+        assert_se(streq(from_shell, value));
+}
+
 static void test_parse_multiline_env_file(void) {
         _cleanup_(unlink_tempfilep) char
                 t[] = "/tmp/test-fileio-in-XXXXXX",
@@ -176,6 +188,10 @@ static void test_parse_multiline_env_file(void) {
         assert_se(fflush_and_check(f) >= 0);
         fclose(f);
 
+        test_one_shell_var(t, "one", "BAR    VAR\tGAR");
+        test_one_shell_var(t, "two", "bar    var\tgar");
+        test_one_shell_var(t, "tri", "bar     var \tgar ");
+
         r = load_env_file(NULL, t, &a);
         assert_se(r >= 0);