From a14af47e64ca811c17470e021b22d05a16f4d46e Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Tue, 10 Aug 2021 17:03:12 +0200 Subject: basic/env-util: add a mode where we pull in the variable value from environment --- src/test/test-env-util.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/test/test-env-util.c') diff --git a/src/test/test-env-util.c b/src/test/test-env-util.c index 91c3c252de..c689d5590e 100644 --- a/src/test/test-env-util.c +++ b/src/test/test-env-util.c @@ -105,6 +105,7 @@ static void test_strv_env_replace_strdup(void) { assert_se(strv_env_replace_strdup(&a, "a=a") == 1); assert_se(strv_env_replace_strdup(&a, "b=b") == 1); assert_se(strv_env_replace_strdup(&a, "a=A") == 0); + assert_se(strv_env_replace_strdup(&a, "c") == -EINVAL); assert_se(strv_length(a) == 2); strv_sort(a); @@ -112,6 +113,27 @@ static void test_strv_env_replace_strdup(void) { assert_se(streq(a[1], "b=b")); } +static void test_strv_env_replace_strdup_passthrough(void) { + log_info("/* %s */", __func__); + + _cleanup_strv_free_ char **a = NULL; + + assert_se(putenv((char*) "a=a") == 0); + assert_se(putenv((char*) "b=") == 0); + assert_se(unsetenv("c") == 0); + + assert_se(strv_env_replace_strdup_passthrough(&a, "a") == 1); + assert_se(strv_env_replace_strdup_passthrough(&a, "b") == 1); + assert_se(strv_env_replace_strdup_passthrough(&a, "c") == 1); + assert_se(strv_env_replace_strdup_passthrough(&a, "a") == 0); + assert_se(strv_env_replace_strdup_passthrough(&a, "$a") == -EINVAL); + + assert_se(strv_length(a) == 3); + assert_se(streq(a[0], "a=a")); + assert_se(streq(a[1], "b=")); + assert_se(streq(a[2], "c=")); +} + static void test_strv_env_assign(void) { log_info("/* %s */", __func__); @@ -415,6 +437,7 @@ int main(int argc, char *argv[]) { test_strv_env_unset(); test_strv_env_merge(); test_strv_env_replace_strdup(); + test_strv_env_replace_strdup_passthrough(); test_strv_env_assign(); test_env_strv_get_n(); test_replace_env(false); -- cgit v1.2.3