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