summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runner/runner_tests.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index 1fc09688..c09cda70 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -208,8 +208,27 @@ igt_main
{
struct settings *settings = malloc(sizeof(*settings));
- igt_fixture
+ igt_fixture {
+ int i;
+
+ /*
+ * Let's close all the non-standard fds ahead of executing
+ * anything, so we can test for descriptor leakage caused by
+ * any of the igt_runner code-paths exercised here.
+ *
+ * See file-descriptor-leakage subtest at the end.
+ *
+ * Some libraries (looking at you, GnuTLS) may leave fds opened
+ * after the implicitly called library constructor. We don't
+ * have full control over them as they may be dependencies of
+ * our dependencies and may get pulled in if the user's and
+ * distribution's compile/configure/USE are just right.
+ */
+ for (i = 3; i < 400; i++)
+ close(i);
+
init_settings(settings);
+ }
igt_subtest("default-settings") {
const char *argv[] = { "runner",