[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
warnings in unit tests
From: |
Bruno Haible |
Subject: |
warnings in unit tests |
Date: |
Tue, 08 Jun 2021 04:40:52 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-210-generic; KDE/5.18.0; x86_64; ; ) |
Hi Jim,
> > > > @@ -183,6 +183,9 @@ main ()
> > > > *(volatile int *) (page + 0x678) = 42;
> > > > break;
> > > > case 3:
> > > > +#if 6 < __GNUC__
> > > > +# pragma GCC diagnostic ignored "-Wnull-dereference"
> > > > +#endif
> > > > *(volatile int *) 0 = 42;
> > > > break;
> > > > case 4:
> > >
> > > We shouldn't spend time eliminating warnings from test code.
> > >
> > > The goal is to have a good coverage of the lib/* code with unit tests.
> > > That means, we need to
> > > - make it easy to write unit tests,
> > > - not make it time-consuming to maintain them.
> > >
> > > Eliminating warnings from lib/* code is useful, to avoid bugs in the
> > > programs. But eliminating warnings from tests/* code goes against the
> > > goal of increasing test coverage.
>
> Hi Bruno,
> Isn't this code exceptional enough to merit three lines of warning
> suppression?
No. Good unit tests do exceptional things, like calling close(-1), passing
NULL pointers to various functions, and other things that e.g. Coverity
warns about.
> I would like to continue to use -Werror with most warning options even
> in test code,
> as long as the cost is low. This feels like a very low one-time cost.
No, the cost is not low. Dmitry's patch also changed the linkage of 11
functions. He did so to silence warnings (-Wmissing-prototypes) which are
1) not part of '-Wall',
2) just pointless for tests [my opinion as maintainer of most of these
tests].
I don't want the maintainers of packages that use Gnulib to push costs
onto Gnulib, when it is just for their personal preference.
The tests in Gnulib are there to evaluate the reliability of Gnulib's
modules on a particular platform. The more test coverage we have, the
better.
Warnings in the unit tests are not problems. Test *failures* are problems.
gnulib-tool has options --with-tests and --tests-base, that allow a
package to ship the Gnulib tests and thus help Gnulib (by having more
people run the unit tests and report possible test failures).
If a package maintainer insists on having warning-free builds, I kindly
ask them to not bundle the Gnulib tests any more — because requiring
warning-free tests from Gnulib is more of an impediment than of a help.
For those package maintainers who are OK to accept warnings in the
Gnulib tests directory, on the other hand, I repeat my offer to
automatically add -Wno-error in the tests/Makefile.am of that directory.
Bruno
- Re: new module 'sigsegv', Dmitry V. Levin, 2021/06/06
- Re: new module 'sigsegv', Bruno Haible, 2021/06/06
- Re: new module 'sigsegv', Dmitry V. Levin, 2021/06/07
- Re: new module 'sigsegv', Jim Meyering, 2021/06/07
- warnings in unit tests,
Bruno Haible <=
- Re: warnings in unit tests, Jim Meyering, 2021/06/08
- Re: warnings in unit tests, Bruno Haible, 2021/06/08
- Re: warnings in unit tests, Dmitry V. Levin, 2021/06/08
- Re: warnings in unit tests, Bruno Haible, 2021/06/10
- Message not available
- Re: warnings in unit tests, Bruno Haible, 2021/06/08
- Re: warnings in unit tests, Paul Eggert, 2021/06/08
- Re: warnings in unit tests, Dmitry V. Levin, 2021/06/09
- Re: warnings in unit tests, Bruno Haible, 2021/06/09
- Re: warnings in unit tests, Bruno Haible, 2021/06/10
- Re: warnings in unit tests, Bernhard Voelker, 2021/06/09