On test-suite coverage
Maxim Konovalov
maxim at nginx.com
Fri Jan 14 16:33:20 UTC 2022
Hi Hugo,
This is great to see your interest to nginx tests.
On 14.01.2022 18:45, Hugo Lefeuvre wrote:
> Hello!
>
> As part of a research project, I measured the coverage achieved by Nginx's
> test-suite using gcov. Taking a look at the results, my colleagues and
> myself were somewhat surprised to realize that the coverage capped at about
> 70% line coverage and 81% function coverage; we expected something closer
> to 90% line coverage. core/nginx.c for example only gets 268 lines / 584
This is more or less in line with our numbers. Just from today report
for mainline: 77.8% for lines coverage and 93.1% for functions. These
figures include njs code though.
> covered. Similarly, more than half of core/ngx_resover.c (1042 lines /
> 2138) is not covered.
> > I was wondering if I did something wrong in my measurements, if this is a
> known weakness of the test-suite, and in the latter case, if this is
> something that the Nginx project is open to receiving contributions on.
>
Probably not a weakness but unjustified expectations? :-)
I think the biggest non-covered part comes from various errors paths.
Some of them could be hard to trigger. For example, for memory
allocation failures we use separate nodes with modified ngx_palloc.c
which enables random memory allocation errors. This is not a part of
the standard test suite though.
Anyway, any meaningful contributions in this area will be highly
appreciated.
http://nginx.org/en/docs/contributing_changes.html
There are several things to keep in mind: we want to keep the suite
compact as it is now and be able to have it integrated into CI/CD
systems easily.
Thanks,
Maxim
--
Maxim Konovalov
More information about the nginx-devel
mailing list