summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2018-06-26 12:05:21 +0200
committerFlorian Weimer <fweimer@redhat.com>2018-06-26 12:30:50 +0200
commit5c0202af4b3d588c04bcec7baf05706b21cd7416 (patch)
treeb716158811f494de86285576f5708192045d79b8
parentc402355dfa7807b8e0adb27c009135a7e2b9f1b0 (diff)
downloadglibc-5c0202af4b3d588c04bcec7baf05706b21cd7416.tar.gz
support: Add TEST_NO_SETVBUF
This is sometimes needed for testing stdio streams, where the setvbuf call in the test driver could interfere with the test.
-rw-r--r--ChangeLog7
-rw-r--r--support/support_test_main.c3
-rw-r--r--support/test-driver.c4
-rw-r--r--support/test-driver.h1
4 files changed, 14 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 664928d5fe..9843e137f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2018-06-26 Florian Weimer <fweimer@redhat.com>
+ * support/support_test_main.c (support_test_main): Only call
+ setvbuf if not disables.
+ * support/test-driver.c (main): Check TEST_NO_SETVBUF.
+ * support/test-driver.h (struct test_config): Add no_setvbuf member.
+
+2018-06-26 Florian Weimer <fweimer@redhat.com>
+
[BZ #23313]
* libio/vtables.c (check_stdfiles_vtables): New ELF constructor.
diff --git a/support/support_test_main.c b/support/support_test_main.c
index 396385729b..23429779ac 100644
--- a/support/support_test_main.c
+++ b/support/support_test_main.c
@@ -270,7 +270,8 @@ support_test_main (int argc, char **argv, const struct test_config *config)
timeout = DEFAULT_TIMEOUT;
/* Make sure we see all message, even those on stdout. */
- setvbuf (stdout, NULL, _IONBF, 0);
+ if (!config->no_setvbuf)
+ setvbuf (stdout, NULL, _IONBF, 0);
/* Make sure temporary files are deleted. */
if (support_delete_temp_files != NULL)
diff --git a/support/test-driver.c b/support/test-driver.c
index 09c8783e4f..9798f16227 100644
--- a/support/test-driver.c
+++ b/support/test-driver.c
@@ -140,6 +140,10 @@ main (int argc, char **argv)
test_config.no_mallopt = 1;
#endif
+#ifdef TEST_NO_SETVBUF
+ test_config.no_setvbuf = 1;
+#endif
+
#ifdef TIMEOUT
test_config.timeout = TIMEOUT;
#endif
diff --git a/support/test-driver.h b/support/test-driver.h
index 1708d68d60..549179b254 100644
--- a/support/test-driver.h
+++ b/support/test-driver.h
@@ -35,6 +35,7 @@ struct test_config
int expected_status; /* Expected exit status. */
int expected_signal; /* If non-zero, expect termination by signal. */
char no_mallopt; /* Boolean flag to disable mallopt. */
+ char no_setvbuf; /* Boolean flag to disable setvbuf. */
const char *optstring; /* Short command line options. */
};