diagnostics: return text buffer from test_show_locus [PR116613]

As work towards supporting multiple diagnostic outputs (where each
output has its own pretty_printer), avoid referencing dc.m_printer
throughout the selftests of diagnostic-show-locus.cc.  Instead
have test_diagnostic_context::test_show_locus return the result
buffer, hiding the specifics of which printer is in use in such
test cases.

No functional change intended.

gcc/ChangeLog:
	PR other/116613
	* diagnostic-show-locus.cc
	(selftest::test_diagnostic_show_locus_unknown_location): Move call
	to dc.test_show_locus into ASSERT_STREQ, and compare against its
	result, rather than explicitly using dc.m_printer.
	(selftest::test_one_liner_simple_caret): Likewise.
	(selftest::test_one_liner_no_column): Likewise.
	(selftest::test_one_liner_caret_and_range): Likewise.
	(selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
	(selftest::test_one_liner_fixit_insert_before): Likewise.
	(selftest::test_one_liner_fixit_insert_after): Likewise.
	(selftest::test_one_liner_fixit_remove): Likewise.
	(selftest::test_one_liner_fixit_replace): Likewise.
	(selftest::test_one_liner_fixit_replace_non_equal_range):
	Likewise.
	(selftest::test_one_liner_fixit_replace_equal_secondary_range):
	Likewise.
	(selftest::test_one_liner_fixit_validation_adhoc_locations):
	Likewise.
	(selftest::test_one_liner_many_fixits_1): Likewise.
	(selftest::test_one_liner_many_fixits_2): Likewise.
	(selftest::test_one_liner_labels): Likewise.
	(selftest::test_one_liner_simple_caret_utf8): Likewise.
	(selftest::test_one_liner_multiple_carets_and_ranges_utf8):
	Likewise.
	(selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
	(selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
	(selftest::test_one_liner_fixit_remove_utf8): Likewise.
	(selftest::test_one_liner_fixit_replace_utf8): Likewise.
	(selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
	Likewise.
	(selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
	Likewise.
	(selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
	Likewise.
	(selftest::test_one_liner_many_fixits_1_utf8): Likewise.
	(selftest::test_one_liner_many_fixits_2_utf8): Likewise.
	(selftest::test_one_liner_labels_utf8): Likewise.
	(selftest::test_one_liner_colorized_utf8): Likewise.
	(selftest::test_add_location_if_nearby): Likewise.
	(selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
	(selftest::test_overlapped_fixit_printing): Likewise.
	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
	(selftest::test_overlapped_fixit_printing_utf8): Likewise.
	(selftest::test_overlapped_fixit_printing_2): Likewise.
	(selftest::test_fixit_insert_containing_newline): Likewise.
	(selftest::test_fixit_insert_containing_newline_2): Likewise.
	(selftest::test_fixit_replace_containing_newline): Likewise.
	(selftest::test_fixit_deletion_affecting_newline): Likewise.
	(selftest::test_tab_expansion): Likewise.
	(selftest::test_escaping_bytes_1): Likewise.
	(selftest::test_escaping_bytes_2): Likewise.
	(selftest::test_line_numbers_multiline_range): Likewise.
	* selftest-diagnostic.cc
	(selftest::test_diagnostic_context::test_show_locus): Return the
	formatted text of m_printer.
	* selftest-diagnostic.h
	(selftest::test_diagnostic_context::test_show_locus): Convert
	return type from void to const char *.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
This commit is contained in:
David Malcolm 2024-09-30 11:48:30 -04:00
parent e7a8fbe2fe
commit 9c14f9a9c1
3 changed files with 88 additions and 168 deletions

File diff suppressed because it is too large Load Diff

View File

@ -79,14 +79,16 @@ test_diagnostic_context::report (diagnostic_t kind,
return result;
}
/* Print RICHLOC's source and annotations to this context's m_printer. */
/* Print RICHLOC's source and annotations to this context's m_printer.
Return the text buffer from the printer. */
void
const char *
test_diagnostic_context::test_show_locus (rich_location &richloc)
{
gcc_assert (m_printer);
diagnostic_source_print_policy source_policy (*this);
source_policy.print (*m_printer, richloc, DK_ERROR, nullptr);
return pp_formatted_text (m_printer);
}
} // namespace selftest

View File

@ -53,7 +53,7 @@ class test_diagnostic_context : public diagnostic_context
int option,
const char * fmt, ...) ATTRIBUTE_GCC_DIAG(6,7);
void test_show_locus (rich_location &richloc);
const char *test_show_locus (rich_location &richloc);
};
} // namespace selftest