Code coverage tests
This page documents the degree to which the PARI/GP source code is tested by
our public test suite, distributed with the source distribution in directory
src/test/
. This is measured by the gcov utility; we then
process gcov output using the lcov frond-end.
We test a few variants depending on Configure
flags
on the pari.math.u-bordeaux.fr
machine (x86_64
architecture), and agregate them in the final report:
- with GMP kernel
- with GMP kernel using --mt=pthread
- with native kernel, including micro-assembler code
- with native kernel, without micro-assembler
- with native kernel, without micro-assembler, disabling GCC extensions
(DISABLE_INLINE)
- with GMP kernel, emulating an
x86_32
architecture at
Configure time via setarch
The target is to exceed 90% coverage for all mathematical modules
(given that branches depending on DEBUGLEVEL
or DEBUGMEM
are not covered). This script is
run to produce the results below.
LCOV - code coverage report |
|
|
|
|
|
|
|
|
|
Directory |
Line Coverage |
Functions |
gp |
|
50.1 % |
348 / 695 |
45.9 % |
28 / 61 |
graph |
|
78.1 % |
1330 / 1703 |
76.9 % |
123 / 160 |
language |
|
79.7 % |
12189 / 15286 |
84.9 % |
1198 / 1411 |
headers |
|
91.0 % |
1448 / 1591 |
90.2 % |
651 / 722 |
basemath |
|
91.6 % |
124749 / 136152 |
93.8 % |
11404 / 12164 |
kernel/none |
|
93.3 % |
3534 / 3786 |
86.0 % |
417 / 485 |
mt |
|
93.7 % |
310 / 331 |
85.7 % |
48 / 56 |
modules |
|
95.4 % |
11231 / 11769 |
98.9 % |
750 / 758 |
kernel/gmp |
|
96.2 % |
795 / 826 |
96.7 % |
58 / 60 |