summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/test-exec-util.c12
-rw-r--r--src/test/test-fileio.c40
2 files changed, 50 insertions, 2 deletions
diff --git a/src/test/test-exec-util.c b/src/test/test-exec-util.c
index 94fe042aa9..482b0751b9 100644
--- a/src/test/test-exec-util.c
+++ b/src/test/test-exec-util.c
@@ -305,8 +305,16 @@ static void test_environment_gathering(void) {
"echo A=$A:24\n"
"echo B=12\n"
"echo C=000\n"
- "echo C=001\n" /* variable overwriting */
- "echo PATH=$PATH:/no/such/file", /* variable from manager */
+ "echo C=001\n" /* variable overwriting */
+ /* various invalid entries */
+ "echo unset A\n"
+ "echo unset A=\n"
+ "echo unset A=B\n"
+ "echo unset \n"
+ "echo A B=C\n"
+ "echo A\n"
+ /* test variable assignment without newline */
+ "echo PATH=$PATH:/no/such/file", /* no newline */
WRITE_STRING_FILE_CREATE) == 0);
assert_se(chmod(name, 0755) == 0);
diff --git a/src/test/test-fileio.c b/src/test/test-fileio.c
index c204cbae22..b117335db8 100644
--- a/src/test/test-fileio.c
+++ b/src/test/test-fileio.c
@@ -263,6 +263,45 @@ static void test_merge_env_file(void) {
assert_se(a[6] == NULL);
}
+static void test_merge_env_file_invalid(void) {
+ char t[] = "/tmp/test-fileio-XXXXXX";
+ int fd, r;
+ FILE *f;
+ _cleanup_strv_free_ char **a = NULL;
+ char **i;
+
+ fd = mkostemp_safe(t);
+ assert_se(fd >= 0);
+
+ log_info("/* %s (%s) */", __func__, t);
+
+ f = fdopen(fd, "w");
+ assert_se(f);
+
+ r = write_string_stream(f,
+ "unset one \n"
+ "unset one= \n"
+ "unset one=1 \n"
+ "one \n"
+ "one = \n"
+ "one two =\n"
+ "\x20two=\n"
+ "#comment=comment\n"
+ ";comment2=comment2\n"
+ "#\n"
+ "\n\n" /* empty line */
+ , false);
+ assert(r >= 0);
+
+ r = merge_env_file(&a, NULL, t);
+ assert_se(r >= 0);
+
+ STRV_FOREACH(i, a)
+ log_info("Got: <%s>", *i);
+
+ assert_se(strv_isempty(a));
+}
+
static void test_executable_is_script(void) {
char t[] = "/tmp/test-executable-XXXXXX";
int fd, r;
@@ -620,6 +659,7 @@ int main(int argc, char *argv[]) {
test_parse_env_file();
test_parse_multiline_env_file();
test_merge_env_file();
+ test_merge_env_file_invalid();
test_executable_is_script();
test_status_field();
test_capeff();