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.
This commit is contained in:
Florian Weimer 2018-06-26 12:05:21 +02:00
parent c402355dfa
commit 5c0202af4b
4 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,10 @@
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]

View File

@ -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)

View File

@ -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

View File

@ -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. */
};