[glib: 5/7] Test the wchar_t version of pid-event subst routine
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 5/7] Test the wchar_t version of pid-event subst routine
- Date: Tue, 8 Jun 2021 12:10:48 +0000 (UTC)
commit fbd7a37e1a126bdfe638048bf5dcbd718e645fd7
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date: Sat Apr 24 20:58:37 2021 +0000
Test the wchar_t version of pid-event subst routine
Also move env setup earlier in the test, to ensure that
the child gets the envvars during initialization.
Also, don't look for exception codes in stderr, since
OutputDebugStringA() doesn't dump stuff there.
glib/tests/win32.c | 62 +++++++++++++++++++++++++++++-------------------------
1 file changed, 33 insertions(+), 29 deletions(-)
---
diff --git a/glib/tests/win32.c b/glib/tests/win32.c
index 97e5887cf..121997311 100644
--- a/glib/tests/win32.c
+++ b/glib/tests/win32.c
@@ -33,34 +33,40 @@ static char *argv0 = NULL;
static void
test_subst_pid_and_event (void)
{
- const gchar not_enough[] = "too long when %e and %p are substituted";
- gchar debugger_3[3];
- gchar debugger_not_enough[G_N_ELEMENTS (not_enough)];
- gchar debugger_enough[G_N_ELEMENTS (not_enough) + 1];
- gchar debugger_big[65535] = {0};
+ const wchar_t not_enough[] = L"too long when %e and %p are substituted";
+ wchar_t debugger_3[3];
+ wchar_t debugger_not_enough[G_N_ELEMENTS (not_enough)];
+ wchar_t debugger_enough[G_N_ELEMENTS (not_enough) + 1];
+ char *debugger_enough_utf8;
+ wchar_t debugger_big[65535] = {0};
+ char *debugger_big_utf8;
gchar *output;
guintptr be = (guintptr) 0xFFFFFFFF;
DWORD bp = G_MAXSIZE;
/* %f is not valid */
- g_assert_false (_g_win32_subst_pid_and_event (debugger_3, G_N_ELEMENTS (debugger_3),
- "%f", 0, 0));
+ g_assert_false (_g_win32_subst_pid_and_event_w (debugger_3, G_N_ELEMENTS (debugger_3),
+ L"%f", 0, 0));
- g_assert_false (_g_win32_subst_pid_and_event (debugger_3, G_N_ELEMENTS (debugger_3),
- "string longer than 10", 0, 0));
+ g_assert_false (_g_win32_subst_pid_and_event_w (debugger_3, G_N_ELEMENTS (debugger_3),
+ L"string longer than 10", 0, 0));
/* 200 is longer than %e, so the string doesn't fit by 1 byte */
- g_assert_false (_g_win32_subst_pid_and_event (debugger_not_enough, G_N_ELEMENTS (debugger_not_enough),
- "too long when %e and %p are substituted", 10, 200));
+ g_assert_false (_g_win32_subst_pid_and_event_w (debugger_not_enough, G_N_ELEMENTS (debugger_not_enough),
+ not_enough, 10, 200));
/* This should fit */
- g_assert_true (_g_win32_subst_pid_and_event (debugger_enough, G_N_ELEMENTS (debugger_enough),
- "too long when %e and %p are substituted", 10, 200));
- g_assert_cmpstr (debugger_enough, ==, "too long when 200 and 10 are substituted");
-
- g_assert_true (_g_win32_subst_pid_and_event (debugger_big, G_N_ELEMENTS (debugger_big),
- "multipl%e big %e %entries and %pids are %provided here",
bp, be));
+ g_assert_true (_g_win32_subst_pid_and_event_w (debugger_enough, G_N_ELEMENTS (debugger_enough),
+ not_enough, 10, 200));
+ debugger_enough_utf8 = g_utf16_to_utf8 (debugger_enough, -1, NULL, NULL, NULL);
+ g_assert_cmpstr (debugger_enough_utf8, ==, "too long when 200 and 10 are substituted");
+ g_free (debugger_enough_utf8);
+
+ g_assert_true (_g_win32_subst_pid_and_event_w (debugger_big, G_N_ELEMENTS (debugger_big),
+ L"multipl%e big %e %entries and %pids are %provided here",
bp, be));
+ debugger_big_utf8 = g_utf16_to_utf8 (debugger_big, -1, NULL, NULL, NULL);
output = g_strdup_printf ("multipl%llu big %llu %lluntries and %luids are %lurovided here", (guint64) be,
(guint64) be, (guint64) be, bp, bp);
- g_assert_cmpstr (debugger_big, ==, output);
+ g_assert_cmpstr (debugger_big_utf8, ==, output);
+ g_free (debugger_big_utf8);
g_free (output);
}
@@ -95,7 +101,6 @@ test_veh_crash_access_violation (void)
/* Run a test that crashes */
g_test_trap_subprocess ("/win32/subprocess/access_violation", 0, 0);
g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("Exception code=0xc0000005*");
}
static void
@@ -105,20 +110,10 @@ test_veh_crash_illegal_instruction (void)
/* Run a test that crashes */
g_test_trap_subprocess ("/win32/subprocess/illegal_instruction", 0, 0);
g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("Exception code=0xc000001d*");
}
static void
test_veh_debug (void)
-{
- /* Run a test that crashes and runs a debugger */
- g_test_trap_subprocess ("/win32/subprocess/debuggee", 0, 0);
- g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("Exception code=0xc0000005*Debugger invoked, attaching to*");
-}
-
-static void
-test_veh_debuggee (void)
{
/* Set up a debugger to be run on crash */
gchar *command = g_strdup_printf ("%s %s", argv0, "%p %e");
@@ -129,6 +124,15 @@ test_veh_debuggee (void)
*/
g_setenv ("G_DEBUGGER_OLD_CONSOLE", "1", TRUE);
g_free (command);
+ /* Run a test that crashes and runs a debugger */
+ g_test_trap_subprocess ("/win32/subprocess/debuggee", 0, 0);
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("Debugger invoked, attaching to*");
+}
+
+static void
+test_veh_debuggee (void)
+{
/* Crash */
test_access_violation ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]