]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: Make sure test_fdset_close_others does not affect logging fds
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 21 Apr 2024 19:21:10 +0000 (21:21 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 22 Apr 2024 07:42:29 +0000 (09:42 +0200)
src/test/test-fdset.c

index 8f00e598fdd676728843bac01c488e1be80a7fa8..cfbd8e270a8792051fc133e9e065cfda00a0a62a 100644 (file)
@@ -116,9 +116,18 @@ TEST(fdset_close_others) {
         copyfd = fdset_put_dup(fdset, fd);
         assert_se(copyfd >= 0);
 
+        /* fdset_close_others() will close any logging file descriptors as well, so close them beforehand
+         * and reopen them again afterwards. */
+        log_close();
         assert_se(fdset_close_others(fdset) >= 0);
+
         flags = fcntl(fd, F_GETFD);
         assert_se(flags < 0);
+
+        /* Open log again after checking that fd is invalid, since reopening the log might make fd a valid
+         * file descriptor again. */
+        (void) log_open();
+
         flags = fcntl(copyfd, F_GETFD);
         assert_se(flags >= 0);
 }