]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Move tests for *serialize_environment into test-serialize.c 10536/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 26 Oct 2018 10:30:04 +0000 (12:30 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 26 Oct 2018 11:17:49 +0000 (13:17 +0200)
The implementation is in serialize.c.

src/test/test-env-util.c
src/test/test-serialize.c

index 815fb340af415d93282605b7d419ee0294611981..ee9734fd66379660fbbc0546c69b4e4b29105947 100644 (file)
@@ -306,61 +306,6 @@ static void test_env_assignment_is_valid(void) {
         assert_se(!env_assignment_is_valid("głąb=printf \"\x1b]0;<mock-chroot>\x07<mock-chroot>\""));
 }
 
-static void test_deserialize_environment(void) {
-        _cleanup_strv_free_ char **env;
-
-        assert_se(env = strv_new("A=1", NULL));
-
-        assert_se(deserialize_environment("B=2", &env) >= 0);
-        assert_se(deserialize_environment("FOO%%=a\\177b\\nc\\td e", &env) >= 0);
-
-        assert_se(strv_equal(env, STRV_MAKE("A=1", "B=2", "FOO%%=a\177b\nc\td e")));
-
-        assert_se(deserialize_environment("foo\\", &env) < 0);
-        assert_se(deserialize_environment("bar\\_baz", &env) < 0);
-}
-
-static void test_serialize_environment(void) {
-        _cleanup_strv_free_ char **env = NULL, **env2 = NULL;
-        _cleanup_(unlink_tempfilep) char fn[] = "/tmp/test-env-util.XXXXXXX";
-        _cleanup_fclose_ FILE *f = NULL;
-        int r;
-
-        assert_se(env = strv_new("A=1",
-                                 "B=2",
-                                 "C=ąęółń",
-                                 "D=D=a\\x0Ab",
-                                 "FOO%%=a\177b\nc\td e",
-                                 NULL));
-
-        assert_se(fmkostemp_safe(fn, "r+", &f) == 0);
-        assert_se(serialize_strv(f, "env", env) == 1);
-        assert_se(fflush_and_check(f) == 0);
-
-        rewind(f);
-
-        for (;;) {
-                _cleanup_free_ char *line = NULL;
-                const char *l;
-
-                r = read_line(f, LONG_LINE_MAX, &line);
-                assert_se(r >= 0);
-
-                if (r == 0)
-                        break;
-
-                l = strstrip(line);
-
-                assert_se(startswith(l, "env="));
-
-                r = deserialize_environment(l+4, &env2);
-                assert_se(r >= 0);
-        }
-        assert_se(feof(f));
-
-        assert_se(strv_equal(env, env2));
-}
-
 int main(int argc, char *argv[]) {
         test_strv_env_delete();
         test_strv_env_get();
@@ -377,8 +322,6 @@ int main(int argc, char *argv[]) {
         test_env_name_is_valid();
         test_env_value_is_valid();
         test_env_assignment_is_valid();
-        test_deserialize_environment();
-        test_serialize_environment();
 
         return 0;
 }
index e38b48fdbc3b4e519d1c2d251c2c7c97fa9f3684..b70eb3daa777aa25468146438791e9410a322567 100644 (file)
@@ -133,6 +133,65 @@ static void test_serialize_strv(void) {
         assert_se(strv_equal(strv, strv2));
 }
 
+static void test_deserialize_environment(void) {
+        _cleanup_strv_free_ char **env;
+
+        log_info("/* %s */", __func__);
+
+        assert_se(env = strv_new("A=1", NULL));
+
+        assert_se(deserialize_environment("B=2", &env) >= 0);
+        assert_se(deserialize_environment("FOO%%=a\\177b\\nc\\td e", &env) >= 0);
+
+        assert_se(strv_equal(env, STRV_MAKE("A=1", "B=2", "FOO%%=a\177b\nc\td e")));
+
+        assert_se(deserialize_environment("foo\\", &env) < 0);
+        assert_se(deserialize_environment("bar\\_baz", &env) < 0);
+}
+
+static void test_serialize_environment(void) {
+        _cleanup_strv_free_ char **env = NULL, **env2 = NULL;
+        _cleanup_(unlink_tempfilep) char fn[] = "/tmp/test-env-util.XXXXXXX";
+        _cleanup_fclose_ FILE *f = NULL;
+        int r;
+
+        assert_se(fmkostemp_safe(fn, "r+", &f) == 0);
+        log_info("/* %s (%s) */", __func__, fn);
+
+        assert_se(env = strv_new("A=1",
+                                 "B=2",
+                                 "C=ąęółń",
+                                 "D=D=a\\x0Ab",
+                                 "FOO%%=a\177b\nc\td e",
+                                 NULL));
+
+        assert_se(serialize_strv(f, "env", env) == 1);
+        assert_se(fflush_and_check(f) == 0);
+
+        rewind(f);
+
+        for (;;) {
+                _cleanup_free_ char *line = NULL;
+                const char *l;
+
+                r = read_line(f, LONG_LINE_MAX, &line);
+                assert_se(r >= 0);
+
+                if (r == 0)
+                        break;
+
+                l = strstrip(line);
+
+                assert_se(startswith(l, "env="));
+
+                r = deserialize_environment(l+4, &env2);
+                assert_se(r >= 0);
+        }
+        assert_se(feof(f));
+
+        assert_se(strv_equal(env, env2));
+}
+
 int main(int argc, char *argv[]) {
         test_setup_logging(LOG_INFO);
 
@@ -143,6 +202,8 @@ int main(int argc, char *argv[]) {
         test_serialize_item_escaped();
         test_serialize_usec();
         test_serialize_strv();
+        test_deserialize_environment();
+        test_serialize_environment();
 
         return EXIT_SUCCESS;
 }