mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-31 04:43:06 +02:00
gtestutils: Print commented TAP output if running a subprocess
If a gtest process is run as a child of another process, we should not print the TAP output in plain mode or we'll break the parent results. We can instead just comment their output so that it gets ignored by TAP parsers.
This commit is contained in:
parent
28299eb467
commit
07ff0f7460
@ -1000,7 +1000,7 @@ g_test_log (GTestLogType lbit,
|
|||||||
case G_TEST_LOG_START_BINARY:
|
case G_TEST_LOG_START_BINARY:
|
||||||
if (test_tap_log)
|
if (test_tap_log)
|
||||||
{
|
{
|
||||||
if (!test_in_forked_child && !test_is_subtest)
|
if (!test_is_subtest && !test_in_subprocess && !test_in_forked_child)
|
||||||
g_print ("TAP version 13\n");
|
g_print ("TAP version 13\n");
|
||||||
|
|
||||||
g_print ("# random seed: %s\n", string2);
|
g_print ("# random seed: %s\n", string2);
|
||||||
@ -1018,7 +1018,7 @@ g_test_log (GTestLogType lbit,
|
|||||||
if (string1[0] != 0)
|
if (string1[0] != 0)
|
||||||
g_print ("# Start of %s tests\n", string1);
|
g_print ("# Start of %s tests\n", string1);
|
||||||
else if (test_paths == NULL)
|
else if (test_paths == NULL)
|
||||||
g_print ("1..%d\n", test_count);
|
g_print ("%s1..%d\n", test_is_subtest ? "# " : "", test_count);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case G_TEST_LOG_STOP_SUITE:
|
case G_TEST_LOG_STOP_SUITE:
|
||||||
@ -1030,7 +1030,7 @@ g_test_log (GTestLogType lbit,
|
|||||||
if (string1[0] != 0)
|
if (string1[0] != 0)
|
||||||
g_print ("# End of %s tests\n", string1);
|
g_print ("# End of %s tests\n", string1);
|
||||||
else if (test_paths != NULL)
|
else if (test_paths != NULL)
|
||||||
g_print ("1..%d\n", test_run_count);
|
g_print ("%s1..%d\n", test_is_subtest ? "# " : "", test_run_count);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case G_TEST_LOG_STOP_CASE:
|
case G_TEST_LOG_STOP_CASE:
|
||||||
@ -1051,6 +1051,9 @@ g_test_log (GTestLogType lbit,
|
|||||||
else
|
else
|
||||||
tap_output = g_string_new ("ok");
|
tap_output = g_string_new ("ok");
|
||||||
|
|
||||||
|
if (test_is_subtest)
|
||||||
|
g_string_prepend (tap_output, "# ");
|
||||||
|
|
||||||
g_string_append_printf (tap_output, " %d %s", test_run_count, string1);
|
g_string_append_printf (tap_output, " %d %s", test_run_count, string1);
|
||||||
if (result == G_TEST_RUN_INCOMPLETE)
|
if (result == G_TEST_RUN_INCOMPLETE)
|
||||||
g_string_append_printf (tap_output, " # TODO %s", string2 ? string2 : "");
|
g_string_append_printf (tap_output, " # TODO %s", string2 ? string2 : "");
|
||||||
@ -1060,7 +1063,7 @@ g_test_log (GTestLogType lbit,
|
|||||||
g_string_append_printf (tap_output, " - %s", string2);
|
g_string_append_printf (tap_output, " - %s", string2);
|
||||||
|
|
||||||
g_print ("%s\n", tap_output->str);
|
g_print ("%s\n", tap_output->str);
|
||||||
g_string_free (tap_output, TRUE);
|
g_string_free (g_steal_pointer (&tap_output), TRUE);
|
||||||
}
|
}
|
||||||
else if (g_test_verbose ())
|
else if (g_test_verbose ())
|
||||||
g_print ("GTest: result: %s\n", g_test_result_names[result]);
|
g_print ("GTest: result: %s\n", g_test_result_names[result]);
|
||||||
@ -1069,7 +1072,7 @@ g_test_log (GTestLogType lbit,
|
|||||||
if (fail && test_mode_fatal)
|
if (fail && test_mode_fatal)
|
||||||
{
|
{
|
||||||
if (test_tap_log)
|
if (test_tap_log)
|
||||||
g_print ("Bail out!\n");
|
g_print ("%sBail out!\n", test_is_subtest ? "# " : "");
|
||||||
g_abort ();
|
g_abort ();
|
||||||
}
|
}
|
||||||
if (result == G_TEST_RUN_SKIPPED || result == G_TEST_RUN_INCOMPLETE)
|
if (result == G_TEST_RUN_SKIPPED || result == G_TEST_RUN_INCOMPLETE)
|
||||||
@ -1077,7 +1080,10 @@ g_test_log (GTestLogType lbit,
|
|||||||
break;
|
break;
|
||||||
case G_TEST_LOG_SKIP_CASE:
|
case G_TEST_LOG_SKIP_CASE:
|
||||||
if (test_tap_log)
|
if (test_tap_log)
|
||||||
g_print ("ok %d %s # SKIP\n", test_run_count, string1);
|
{
|
||||||
|
g_print ("%sok %d %s # SKIP\n", test_is_subtest ? "# " : "",
|
||||||
|
test_run_count, string1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case G_TEST_LOG_MIN_RESULT:
|
case G_TEST_LOG_MIN_RESULT:
|
||||||
if (test_tap_log)
|
if (test_tap_log)
|
||||||
@ -1129,7 +1135,7 @@ g_test_log (GTestLogType lbit,
|
|||||||
break;
|
break;
|
||||||
case G_TEST_LOG_ERROR:
|
case G_TEST_LOG_ERROR:
|
||||||
if (test_tap_log)
|
if (test_tap_log)
|
||||||
g_print ("Bail out! %s\n", string1);
|
g_print ("%sBail out! %s\n", test_is_subtest ? "# " : "", string1);
|
||||||
else if (g_test_verbose ())
|
else if (g_test_verbose ())
|
||||||
g_print ("(ERROR: %s)\n", string1);
|
g_print ("(ERROR: %s)\n", string1);
|
||||||
break;
|
break;
|
||||||
|
@ -1670,7 +1670,7 @@ test_tap_message (void)
|
|||||||
g_spawn_check_wait_status (status, &error);
|
g_spawn_check_wait_status (status, &error);
|
||||||
g_assert_no_error (error);
|
g_assert_no_error (error);
|
||||||
|
|
||||||
const char *expected_tap_header = "\n1..1\n";
|
const char *expected_tap_header = "\n# 1..1\n";
|
||||||
const char *interesting_lines = strstr (output, expected_tap_header);
|
const char *interesting_lines = strstr (output, expected_tap_header);
|
||||||
g_assert_nonnull (interesting_lines);
|
g_assert_nonnull (interesting_lines);
|
||||||
interesting_lines += strlen (expected_tap_header);
|
interesting_lines += strlen (expected_tap_header);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user