chiark / gitweb /
sd-rtnl: fix bogus warning about dropping 20 bytes from multi-part messages
[elogind.git] / src / test / test-util.c
index 01b0192c1c912d223909758e967164a0fb55bc25..1602aa63937c68bdcf3699e011a4db0557ea7d19 100644 (file)
@@ -490,13 +490,15 @@ static void test_u64log2(void) {
 
 static void test_get_process_comm(void) {
         struct stat st;
-        _cleanup_free_ char *a = NULL, *c = NULL, *d = NULL, *f = NULL, *i = NULL;
+        _cleanup_free_ char *a = NULL, *c = NULL, *d = NULL, *f = NULL, *i = NULL, *cwd = NULL, *root = NULL;
+        _cleanup_free_ char *env = NULL;
         unsigned long long b;
         pid_t e;
         uid_t u;
         gid_t g;
         dev_t h;
         int r;
+        pid_t me;
 
         if (stat("/proc/1/comm", &st) == 0) {
                 assert_se(get_process_comm(1, &a) >= 0);
@@ -532,6 +534,20 @@ static void test_get_process_comm(void) {
         log_info("pid1 gid: "GID_FMT, g);
         assert_se(g == 0);
 
+        me = getpid();
+
+        r = get_process_cwd(me, &cwd);
+        assert_se(r >= 0 || r == -EACCES);
+        log_info("pid1 cwd: '%s'", cwd);
+
+        r = get_process_root(me, &root);
+        assert_se(r >= 0 || r == -EACCES);
+        log_info("pid1 root: '%s'", root);
+
+        r = get_process_environ(me, &env);
+        assert_se(r >= 0 || r == -EACCES);
+        log_info("self strlen(environ): '%zd'", strlen(env));
+
         assert_se(get_ctty_devnr(1, &h) == -ENOENT);
 
         getenv_for_pid(1, "PATH", &i);
@@ -1217,6 +1233,7 @@ static void test_unquote_first_word(void) {
         p = original = "\'fooo";
         assert_se(unquote_first_word(&p, &t, true) > 0);
         assert_se(streq(t, "fooo"));
+        free(t);
         assert_se(p == original + 5);
 
         p = original = "yay\'foo\'bar";