[systemd-devel] [PATCH 4/8] tests: add test for fdset_iterate

Ronny Chevalier chevalier.ronny at gmail.com
Sat Aug 16 05:19:08 PDT 2014


---
 src/test/test-fdset.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/src/test/test-fdset.c b/src/test/test-fdset.c
index 3b77415..91df7eb 100644
--- a/src/test/test-fdset.c
+++ b/src/test/test-fdset.c
@@ -126,12 +126,41 @@ static void test_fdset_remove(void) {
         unlink(name);
 }
 
+static void test_fdset_iterate(void) {
+        int fd = -1;
+        FDSet *fdset = NULL;
+        char name[] = "/tmp/test-fdset_iterate.XXXXXX";
+        Iterator i;
+        int c = 0;
+        int a;
+
+        fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+        assert_se(fd >= 0);
+
+        fdset = fdset_new();
+        assert_se(fdset);
+        assert_se(fdset_put(fdset, fd) >= 0);
+        assert_se(fdset_put(fdset, fd) >= 0);
+        assert_se(fdset_put(fdset, fd) >= 0);
+
+        FDSET_FOREACH(a, fdset, i) {
+                c++;
+                assert_se(a == fd);
+        }
+        assert_se(c == 1);
+
+        fdset_free(fdset);
+
+        unlink(name);
+}
+
 int main(int argc, char *argv[]) {
         test_fdset_new_fill();
         test_fdset_put_dup();
         test_fdset_cloexec();
         test_fdset_close_others();
         test_fdset_remove();
+        test_fdset_iterate();
 
         return 0;
 }
-- 
2.0.4



More information about the systemd-devel mailing list