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 |
 |
|
 |
|
|
|
|
|
|
Filename  |
Line Coverage  |
Functions  |
F2v.c |
|
82.3 % |
524 / 637 |
72.7 % |
48 / 66 |
F2x.c |
|
83.3 % |
1438 / 1727 |
86.6 % |
175 / 202 |
F2xqE.c |
|
93.7 % |
419 / 447 |
94.8 % |
55 / 58 |
FF.c |
|
92.6 % |
1345 / 1453 |
94.6 % |
139 / 147 |
Fle.c |
|
93.6 % |
438 / 468 |
90.5 % |
57 / 63 |
Flv.c |
|
98.0 % |
746 / 761 |
96.8 % |
60 / 62 |
Flx.c |
|
89.1 % |
2131 / 2392 |
88.5 % |
253 / 286 |
FlxX.c |
|
89.3 % |
1099 / 1230 |
89.4 % |
127 / 142 |
FlxqE.c |
|
97.3 % |
797 / 819 |
98.8 % |
79 / 80 |
Flxq_log.c |
|
95.3 % |
445 / 467 |
100.0 % |
28 / 28 |
FpE.c |
|
91.7 % |
985 / 1074 |
93.0 % |
106 / 114 |
FpV.c |
|
78.5 % |
747 / 951 |
84.2 % |
112 / 133 |
FpX.c |
|
91.1 % |
1431 / 1570 |
94.5 % |
171 / 181 |
FpXQX_factor.c |
|
83.2 % |
1590 / 1910 |
84.5 % |
125 / 148 |
FpXX.c |
|
83.9 % |
915 / 1091 |
87.9 % |
109 / 124 |
FpX_factor.c |
|
91.8 % |
1245 / 1356 |
91.5 % |
107 / 117 |
Hensel.c |
|
92.8 % |
632 / 681 |
92.6 % |
63 / 68 |
QX_factor.c |
|
96.4 % |
772 / 801 |
97.9 % |
46 / 47 |
Qfb.c |
|
88.6 % |
930 / 1050 |
91.8 % |
112 / 122 |
RgV.c |
|
88.9 % |
519 / 584 |
91.3 % |
94 / 103 |
RgX.c |
|
89.5 % |
1549 / 1730 |
91.2 % |
186 / 204 |
Ser.c |
|
99.3 % |
140 / 141 |
100.0 % |
18 / 18 |
ZG.c |
|
60.3 % |
44 / 73 |
57.1 % |
8 / 14 |
ZV.c |
|
89.0 % |
779 / 875 |
92.4 % |
121 / 131 |
ZX.c |
|
89.3 % |
690 / 773 |
92.9 % |
91 / 98 |
alglin1.c |
|
86.7 % |
2742 / 3163 |
93.0 % |
291 / 313 |
alglin2.c |
|
90.2 % |
1016 / 1126 |
92.9 % |
79 / 85 |
alglin3.c |
|
92.6 % |
529 / 571 |
88.7 % |
47 / 53 |
aprcl.c |
|
85.0 % |
600 / 706 |
98.0 % |
50 / 51 |
arith1.c |
|
93.0 % |
3170 / 3408 |
94.6 % |
283 / 299 |
arith2.c |
|
88.7 % |
606 / 683 |
91.6 % |
87 / 95 |
base1.c |
|
94.5 % |
1638 / 1733 |
87.7 % |
128 / 146 |
base2.c |
|
94.7 % |
2161 / 2282 |
97.7 % |
167 / 171 |
base3.c |
|
93.5 % |
1856 / 1986 |
94.5 % |
207 / 219 |
base4.c |
|
89.2 % |
1580 / 1771 |
89.6 % |
155 / 173 |
base5.c |
|
92.8 % |
1079 / 1163 |
94.9 % |
75 / 79 |
bb_group.c |
|
93.6 % |
540 / 577 |
100.0 % |
36 / 36 |
bb_hnf.c |
|
94.0 % |
630 / 670 |
92.7 % |
51 / 55 |
bern.c |
|
91.2 % |
289 / 317 |
96.8 % |
30 / 31 |
bibli1.c |
|
95.1 % |
1058 / 1112 |
91.9 % |
68 / 74 |
bibli2.c |
|
95.2 % |
1182 / 1242 |
94.8 % |
110 / 116 |
bit.c |
|
96.7 % |
408 / 422 |
94.4 % |
34 / 36 |
bnflog.c |
|
97.8 % |
273 / 279 |
100.0 % |
26 / 26 |
bnfunits.c |
|
96.4 % |
216 / 224 |
100.0 % |
14 / 14 |
buch1.c |
|
94.6 % |
636 / 672 |
91.5 % |
43 / 47 |
buch2.c |
|
92.0 % |
2172 / 2362 |
92.6 % |
150 / 162 |
buch3.c |
|
94.2 % |
1513 / 1606 |
95.2 % |
118 / 124 |
buch4.c |
|
95.9 % |
141 / 147 |
100.0 % |
8 / 8 |
char.c |
|
97.2 % |
807 / 830 |
100.0 % |
63 / 63 |
concat.c |
|
90.3 % |
324 / 359 |
100.0 % |
15 / 15 |
crvwtors.c |
|
83.2 % |
283 / 340 |
82.8 % |
24 / 29 |
dirichlet.c |
|
91.8 % |
312 / 340 |
100.0 % |
21 / 21 |
ecpp.c |
|
92.3 % |
705 / 764 |
96.8 % |
90 / 93 |
ellanal.c |
|
91.5 % |
657 / 718 |
93.4 % |
57 / 61 |
elliptic.c |
|
93.8 % |
4155 / 4432 |
98.2 % |
374 / 381 |
ellisog.c |
|
98.8 % |
952 / 964 |
100.0 % |
79 / 79 |
ellpadic.c |
|
96.0 % |
583 / 607 |
100.0 % |
47 / 47 |
ellpadiclambdamu.c |
|
100.0 % |
113 / 113 |
100.0 % |
7 / 7 |
ellrank.c |
|
89.7 % |
807 / 900 |
89.6 % |
69 / 77 |
ellsea.c |
|
95.5 % |
1157 / 1212 |
96.8 % |
90 / 93 |
elltors.c |
|
95.5 % |
424 / 444 |
92.6 % |
25 / 27 |
galconj.c |
|
81.2 % |
1834 / 2260 |
76.9 % |
113 / 147 |
gen1.c |
|
94.7 % |
1822 / 1923 |
100.0 % |
94 / 94 |
gen2.c |
|
87.9 % |
1514 / 1722 |
93.4 % |
141 / 151 |
gen3.c |
|
92.5 % |
2442 / 2640 |
95.8 % |
227 / 237 |
hnf_snf.c |
|
90.3 % |
1512 / 1674 |
90.5 % |
86 / 95 |
hyperell.c |
|
92.1 % |
488 / 530 |
97.7 % |
42 / 43 |
hypergeom.c |
|
99.7 % |
668 / 670 |
100.0 % |
70 / 70 |
ifactor1.c |
|
81.2 % |
1505 / 1854 |
86.5 % |
90 / 104 |
kummer.c |
|
98.5 % |
849 / 862 |
100.0 % |
61 / 61 |
lfun.c |
|
96.1 % |
1426 / 1484 |
99.4 % |
157 / 158 |
lfunquad.c |
|
96.9 % |
342 / 353 |
97.7 % |
43 / 44 |
lfunutils.c |
|
93.1 % |
1610 / 1729 |
95.0 % |
153 / 161 |
lll.c |
|
95.6 % |
1196 / 1251 |
97.8 % |
90 / 92 |
map.c |
|
99.1 % |
219 / 221 |
100.0 % |
27 / 27 |
matperm.c |
|
100.0 % |
78 / 78 |
100.0 % |
4 / 4 |
mellininv.c |
|
97.8 % |
352 / 360 |
100.0 % |
37 / 37 |
mftrace.c |
|
97.6 % |
7535 / 7722 |
99.4 % |
766 / 771 |
modsym.c |
|
93.2 % |
2819 / 3025 |
98.3 % |
294 / 299 |
msfarey.c |
|
96.8 % |
184 / 190 |
100.0 % |
17 / 17 |
nffactor.c |
|
95.4 % |
1144 / 1199 |
98.6 % |
69 / 70 |
perm.c |
|
79.9 % |
714 / 894 |
85.6 % |
83 / 97 |
polarit1.c |
|
95.7 % |
315 / 329 |
100.0 % |
32 / 32 |
polarit2.c |
|
89.9 % |
2158 / 2401 |
94.8 % |
199 / 210 |
polarit3.c |
|
89.7 % |
1722 / 1920 |
92.8 % |
181 / 195 |
polclass.c |
|
97.1 % |
833 / 858 |
98.3 % |
58 / 59 |
polmodular.c |
|
97.1 % |
2314 / 2384 |
100.0 % |
143 / 143 |
prime.c |
|
87.9 % |
645 / 734 |
92.0 % |
69 / 75 |
qfisom.c |
|
97.9 % |
871 / 890 |
100.0 % |
55 / 55 |
qfsolve.c |
|
98.3 % |
590 / 600 |
100.0 % |
32 / 32 |
ramanujantau.c |
|
97.3 % |
107 / 110 |
100.0 % |
12 / 12 |
random.c |
|
100.0 % |
152 / 152 |
100.0 % |
17 / 17 |
rootpol.c |
|
95.8 % |
1476 / 1541 |
97.5 % |
116 / 119 |
subcyclo.c |
|
94.6 % |
541 / 572 |
97.6 % |
40 / 41 |
subfield.c |
|
97.0 % |
922 / 951 |
100.0 % |
48 / 48 |
subgroup.c |
|
96.0 % |
356 / 371 |
100.0 % |
24 / 24 |
trans1.c |
|
97.1 % |
2223 / 2289 |
98.8 % |
164 / 166 |
trans2.c |
|
95.9 % |
1196 / 1247 |
97.9 % |
92 / 94 |
trans3.c |
|
93.5 % |
1941 / 2077 |
97.8 % |
136 / 139 |
volcano.c |
|
96.8 % |
332 / 343 |
100.0 % |
22 / 22 |
zetamult.c |
|
96.6 % |
544 / 563 |
100.0 % |
40 / 40 |