mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-14 08:16:24 +01:00
glib/tests/spawn-singlethread: Improve test for Windows
Use a Windows-style .bat script for the test_spawn_script() test, at least when the code is built with Visual C++ (due to differences in how scripts are written for shells and Windows cmd.exe), and account for Windows-style line endings for that test too. Let the MinGW builds (which are normally done in an MSYS BASH-style shell) continue to use the *NIX-style script for that test. https://bugzilla.gnome.org/show_bug.cgi?id=711047
This commit is contained in:
parent
b27a2d436b
commit
a7707ec60b
@ -22,6 +22,7 @@ dist_test_data = \
|
|||||||
|
|
||||||
dist_test_extra_scripts = \
|
dist_test_extra_scripts = \
|
||||||
echo-script \
|
echo-script \
|
||||||
|
echo-script.bat \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
test_extra_programs = \
|
test_extra_programs = \
|
||||||
|
2
glib/tests/echo-script.bat
Normal file
2
glib/tests/echo-script.bat
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
@echo off
|
||||||
|
echo echo
|
@ -26,6 +26,22 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#define LINEEND "\r\n"
|
||||||
|
#else
|
||||||
|
#define LINEEND "\n"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* MinGW builds are likely done using a BASH-style shell, so run the
|
||||||
|
* normal script there, as on non-Windows builds, as it is more likely
|
||||||
|
* that one will run 'make check' in such shells to test the code
|
||||||
|
*/
|
||||||
|
#if defined (G_OS_WIN32) && defined (_MSC_VER)
|
||||||
|
#define SCRIPT_EXT ".bat"
|
||||||
|
#else
|
||||||
|
#define SCRIPT_EXT
|
||||||
|
#endif
|
||||||
|
|
||||||
static char *echo_prog_path;
|
static char *echo_prog_path;
|
||||||
static char *echo_script_path;
|
static char *echo_script_path;
|
||||||
|
|
||||||
@ -179,7 +195,7 @@ test_spawn_script (void)
|
|||||||
|
|
||||||
g_spawn_sync (NULL, (char**)argv->pdata, NULL, 0, NULL, NULL, &stdout_str, NULL, &estatus, &error);
|
g_spawn_sync (NULL, (char**)argv->pdata, NULL, 0, NULL, NULL, &stdout_str, NULL, &estatus, &error);
|
||||||
g_assert_no_error (error);
|
g_assert_no_error (error);
|
||||||
g_assert_cmpstr ("echo\n", ==, stdout_str);
|
g_assert_cmpstr ("echo" LINEEND, ==, stdout_str);
|
||||||
g_free (stdout_str);
|
g_free (stdout_str);
|
||||||
g_ptr_array_free (argv, TRUE);
|
g_ptr_array_free (argv, TRUE);
|
||||||
}
|
}
|
||||||
@ -200,11 +216,11 @@ main (int argc,
|
|||||||
g_free (echo_prog_path);
|
g_free (echo_prog_path);
|
||||||
echo_prog_path = g_build_filename (dirname, "lt-test-spawn-echo" EXEEXT, NULL);
|
echo_prog_path = g_build_filename (dirname, "lt-test-spawn-echo" EXEEXT, NULL);
|
||||||
}
|
}
|
||||||
echo_script_path = g_build_filename (dirname, "echo-script", NULL);
|
echo_script_path = g_build_filename (dirname, "echo-script" SCRIPT_EXT, NULL);
|
||||||
if (!g_file_test (echo_script_path, G_FILE_TEST_EXISTS))
|
if (!g_file_test (echo_script_path, G_FILE_TEST_EXISTS))
|
||||||
{
|
{
|
||||||
g_free (echo_script_path);
|
g_free (echo_script_path);
|
||||||
echo_script_path = g_test_build_filename (G_TEST_DIST, "echo-script", NULL);
|
echo_script_path = g_test_build_filename (G_TEST_DIST, "echo-script" SCRIPT_EXT, NULL);
|
||||||
}
|
}
|
||||||
g_free (dirname);
|
g_free (dirname);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user