From ce1e32ec342cd81102dc4db6d749f7c50f569133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= Date: Sat, 9 Jun 2018 00:00:58 +0000 Subject: [PATCH] Force binary mode for stdout in printf tests This allows test calls to produce output with \n line separators on Windows, instead of \r\n. Reduces the number of ifdefs, since all checks can be done against one template on all platforms. --- glib/tests/test-printf.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/glib/tests/test-printf.c b/glib/tests/test-printf.c index 377e3b5e7..486ae6d4f 100644 --- a/glib/tests/test-printf.c +++ b/glib/tests/test-printf.c @@ -24,6 +24,10 @@ #include #include "glib.h" #include "gstdio.h" +#ifdef G_OS_WIN32 +#include +#include +#endif static void test_retval_and_trunc (void) @@ -637,11 +641,7 @@ test_positional_params2 (void) } g_test_trap_subprocess (NULL, 0, 0); g_test_trap_assert_passed (); -#ifndef G_OS_WIN32 g_test_trap_assert_stdout ("a b\n ab\nabcabc\n"); -#else - g_test_trap_assert_stdout ("a b\r\n ab\r\nabcabc\r\n"); -#endif } static void @@ -858,25 +858,17 @@ _Pragma ("GCC diagnostic pop") static void test_64bit2 (void) { -#ifndef G_OS_WIN32 g_test_trap_subprocess ("/printf/test-64bit/subprocess/base", 0, 0); g_test_trap_assert_passed (); g_test_trap_assert_stdout ("123456\n-123456\n123456\n" "361100\n0361100\n1e240\n" "0x1e240\n1E240\n"); - -#else - g_test_trap_subprocess ("/printf/test-64bit/subprocess/base", 0, 0); - g_test_trap_assert_passed (); - g_test_trap_assert_stdout ("123456\r\n-123456\r\n123456\r\n" - "361100\r\n0361100\r\n1e240\r\n" - "0x1e240\r\n1E240\r\n"); - +#ifdef G_OS_WIN32 g_test_trap_subprocess ("/printf/test-64bit/subprocess/win32", 0, 0); g_test_trap_assert_passed (); - g_test_trap_assert_stdout ("123456\r\n-123456\r\n123456\r\n" - "361100\r\n0361100\r\n1e240\r\n" - "0x1e240\r\n1E240\r\n"); + g_test_trap_assert_stdout ("123456\n-123456\n123456\n" + "361100\n0361100\n1e240\n" + "0x1e240\n1E240\n"); #endif } @@ -907,6 +899,13 @@ int main (int argc, char *argv[]) { +#ifdef G_OS_WIN32 + /* Ensure binary mode for stdout, this way + * tests produce \n line endings on Windows instead of the + * default \r\n. + */ + _setmode (fileno (stdout), _O_BINARY); +#endif g_test_init (&argc, &argv, NULL); g_test_add_func ("/snprintf/retval-and-trunc", test_retval_and_trunc);