[libvirt] [PATCH] tests: reserve more fds for commandtest

Eric Blake eblake at redhat.com
Tue Feb 5 16:17:48 UTC 2013


Commit 39c77fe triggered random failures, depending on the platform
and what other fds leak into the testsuite (for me, it passed on
RHEL 6 but failed on Fedora 18).  The reason was that we were
expecting an fd that fell outside of our reserved range.  By reserving
a larger range, the test once again passes on all platforms.

* tests/commandtest.c (mymain): Reserve enough fds.
---

I'll wait a bit for a review, but if I don't get one, I'll push
this under the build-breaker rule.

 tests/commanddata/test3.log |  2 +-
 tests/commandtest.c         | 13 +++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/tests/commanddata/test3.log b/tests/commanddata/test3.log
index bd06371..c6da253 100644
--- a/tests/commanddata/test3.log
+++ b/tests/commanddata/test3.log
@@ -9,6 +9,6 @@ FD:0
 FD:1
 FD:2
 FD:5
-FD:8
+FD:7
 DAEMON:no
 CWD:/tmp
diff --git a/tests/commandtest.c b/tests/commandtest.c
index f4e335f..93c6333 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -1,7 +1,7 @@
 /*
  * commandtest.c: Test the libCommand API
  *
- * Copyright (C) 2010-2012 Red Hat, Inc.
+ * Copyright (C) 2010-2013 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -960,7 +960,10 @@ mymain(void)
         dup2(fd, 3) < 0 ||
         dup2(fd, 4) < 0 ||
         dup2(fd, 5) < 0 ||
-        (fd > 5 && VIR_CLOSE(fd) < 0))
+        dup2(fd, 6) < 0 ||
+        dup2(fd, 7) < 0 ||
+        dup2(fd, 8) < 0 ||
+        (fd > 8 && VIR_CLOSE(fd) < 0))
         return EXIT_FAILURE;

     /* Prime the debug/verbose settings from the env vars,
@@ -978,6 +981,12 @@ mymain(void)
     VIR_FORCE_CLOSE(fd);
     fd = 5;
     VIR_FORCE_CLOSE(fd);
+    fd = 6;
+    VIR_FORCE_CLOSE(fd);
+    fd = 7;
+    VIR_FORCE_CLOSE(fd);
+    fd = 8;
+    VIR_FORCE_CLOSE(fd);

     virEventRegisterDefaultImpl();
     if (VIR_ALLOC(test) < 0) {
-- 
1.8.1




More information about the libvir-list mailing list