From a3128bf01289a243a9e0ebb4e34c23bcb04cb938 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Fri, 15 Jan 2021 13:26:39 -0500 Subject: [PATCH] bootstrap: fix failing diagnostic selftest on Windows [PR98696] In one of the selftests in g:f10960558540636800cf5d3d6355969621fbc17e I didn't consider that paths can contain backslashes, which happens for the tempfiles on Windows hosts. gcc/ChangeLog: PR bootstrap/98696 * diagnostic.c (selftest::test_print_parseable_fixits_bytes_vs_display_columns): Escape the tempfile name when constructing the expected output. --- gcc/diagnostic.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index a024bc206f3..246d75256cf 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -2188,7 +2188,12 @@ test_print_parseable_fixits_bytes_vs_display_columns () where.m_finish = linemap_position_for_column (line_table, 17); richloc.add_fixit_replace (where, "color"); - const int buf_len = strlen (fname) + 100; + /* Escape fname. */ + pretty_printer tmp_pp; + print_escaped_string (&tmp_pp, fname); + char *escaped_fname = xstrdup (pp_formatted_text (&tmp_pp)); + + const int buf_len = strlen (escaped_fname) + 100; char *const expected = XNEWVEC (char, buf_len); { @@ -2196,7 +2201,7 @@ test_print_parseable_fixits_bytes_vs_display_columns () print_parseable_fixits (&pp, &richloc, DIAGNOSTICS_COLUMN_UNIT_BYTE, tabstop); snprintf (expected, buf_len, - "fix-it:\"%s\":{1:12-1:18}:\"color\"\n", fname); + "fix-it:%s:{1:12-1:18}:\"color\"\n", escaped_fname); ASSERT_STREQ (expected, pp_formatted_text (&pp)); } { @@ -2204,11 +2209,12 @@ test_print_parseable_fixits_bytes_vs_display_columns () print_parseable_fixits (&pp, &richloc, DIAGNOSTICS_COLUMN_UNIT_DISPLAY, tabstop); snprintf (expected, buf_len, - "fix-it:\"%s\":{1:10-1:16}:\"color\"\n", fname); + "fix-it:%s:{1:10-1:16}:\"color\"\n", escaped_fname); ASSERT_STREQ (expected, pp_formatted_text (&pp)); } XDELETEVEC (expected); + free (escaped_fname); } /* Verify that -- 2.30.2