Message ID | ZAG/euZxYFFWr5N9@tucnak |
---|---|
State | New |
Headers | show |
Series | diagnostics: Fix up selftests with $COLUMNS < 42 [PR108973] | expand |
On Fri, 2023-03-03 at 10:35 +0100, Jakub Jelinek wrote: > 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 <jakub@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); > } Thanks for working on this. Patch is OK, but I wonder if it would even better to just hardcode caret_max_width as 80 here, to better eliminate that influence from from the environment in the unit tests? I think all of the tests that modify caret_max_width do so after the ctor has run. Dave
--- 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 ()