Hi! As mentioned in the PR, GCC's diagnostics self-tests fail if $COLUMNS < 42. Guarding each self-test with if (get_terminal_width () > 41) or similar would be a maintainance nightmare (PR has a patch to do so without reformatting to make it work for $COLUMNS in [30, 41] inclusive, but I'm afraid going down to $COLUMNS 1 would mean marking everything). Furthermore, the self-tests don't really emit stuff to the terminal, but into a buffer, so using get_terminal_width () for it seems inappropriate. The following patch makes sure test_diagnostic_context constructor uses at least 80 columns wide caret max width, of course some tests override it already if they want to test for behavior in narrower cases.
Bootstrapped/regtested on x86_64-linux and i686-linux, plus tested on self-tests with $COLUMNS down to 1, ok for trunk? 2023-03-03 Jakub Jelinek <ja...@redhat.com> PR testsuite/108973 * selftest-diagnostic.cc (test_diagnostic_context::test_diagnostic_context): Ensure caret_max_width isn't smaller than 80. --- gcc/selftest-diagnostic.cc.jj 2023-01-02 09:32:31.991146491 +0100 +++ gcc/selftest-diagnostic.cc 2023-03-02 10:05:17.974321025 +0100 @@ -41,6 +41,7 @@ test_diagnostic_context::test_diagnostic show_column = true; start_span = start_span_cb; min_margin_width = 6; + caret_max_width = MAX (caret_max_width, 80); } test_diagnostic_context::~test_diagnostic_context () Jakub