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 |
|
86.7 % |
542 / 625 |
80.6 % |
54 / 67 |
F2x.c |
|
86.3 % |
1497 / 1735 |
89.7 % |
183 / 204 |
F2xqE.c |
|
93.7 % |
419 / 447 |
94.8 % |
55 / 58 |
F3v.c |
|
83.5 % |
152 / 182 |
76.7 % |
23 / 30 |
FF.c |
|
92.4 % |
1345 / 1455 |
94.6 % |
139 / 147 |
Fle.c |
|
93.2 % |
438 / 470 |
89.1 % |
57 / 64 |
Flv.c |
|
97.2 % |
737 / 758 |
93.5 % |
58 / 62 |
Flx.c |
|
90.1 % |
2154 / 2390 |
89.6 % |
258 / 288 |
FlxX.c |
|
88.8 % |
1097 / 1236 |
87.6 % |
127 / 145 |
FlxqE.c |
|
97.3 % |
797 / 819 |
98.8 % |
79 / 80 |
Flxq_log.c |
|
96.4 % |
450 / 467 |
100.0 % |
28 / 28 |
FpE.c |
|
91.7 % |
985 / 1074 |
93.0 % |
106 / 114 |
FpV.c |
|
78.2 % |
752 / 962 |
83.6 % |
112 / 134 |
FpX.c |
|
90.7 % |
1426 / 1573 |
93.0 % |
174 / 187 |
FpXQX_factor.c |
|
83.4 % |
1606 / 1926 |
84.6 % |
126 / 149 |
FpXX.c |
|
83.5 % |
916 / 1097 |
86.6 % |
110 / 127 |
FpX_factor.c |
|
92.5 % |
1294 / 1399 |
93.3 % |
111 / 119 |
QX_factor.c |
|
96.4 % |
772 / 801 |
97.9 % |
46 / 47 |
Qfb.c |
|
89.2 % |
943 / 1057 |
91.3 % |
115 / 126 |
RgV.c |
|
88.0 % |
508 / 577 |
91.3 % |
94 / 103 |
RgX.c |
|
90.8 % |
1605 / 1768 |
91.2 % |
198 / 217 |
Ser.c |
|
98.8 % |
162 / 164 |
100.0 % |
21 / 21 |
ZG.c |
|
60.3 % |
44 / 73 |
57.1 % |
8 / 14 |
ZV.c |
|
89.0 % |
779 / 875 |
92.4 % |
122 / 132 |
ZX.c |
|
88.5 % |
700 / 791 |
88.8 % |
95 / 107 |
Zp.c |
|
88.8 % |
764 / 860 |
92.4 % |
73 / 79 |
alglin1.c |
|
86.6 % |
2742 / 3165 |
93.0 % |
292 / 314 |
alglin2.c |
|
90.0 % |
1015 / 1128 |
93.0 % |
80 / 86 |
alglin3.c |
|
92.6 % |
529 / 571 |
88.7 % |
47 / 53 |
aprcl.c |
|
85.0 % |
600 / 706 |
98.0 % |
50 / 51 |
arith1.c |
|
92.4 % |
1979 / 2141 |
94.9 % |
206 / 217 |
arith2.c |
|
88.9 % |
496 / 558 |
89.5 % |
68 / 76 |
base1.c |
|
95.1 % |
1717 / 1806 |
89.2 % |
140 / 157 |
base2.c |
|
94.9 % |
2187 / 2304 |
97.7 % |
167 / 171 |
base3.c |
|
93.9 % |
1982 / 2111 |
94.5 % |
225 / 238 |
base4.c |
|
89.6 % |
1592 / 1776 |
89.7 % |
156 / 174 |
base5.c |
|
94.2 % |
1097 / 1164 |
96.2 % |
76 / 79 |
bb_group.c |
|
93.5 % |
532 / 569 |
100.0 % |
36 / 36 |
bb_hnf.c |
|
94.1 % |
624 / 663 |
92.7 % |
51 / 55 |
bern.c |
|
94.9 % |
333 / 351 |
97.1 % |
34 / 35 |
bibli1.c |
|
95.3 % |
1084 / 1138 |
92.1 % |
70 / 76 |
bibli2.c |
|
95.3 % |
1190 / 1249 |
94.9 % |
111 / 117 |
bit.c |
|
96.7 % |
408 / 422 |
94.4 % |
34 / 36 |
bnflog.c |
|
97.8 % |
272 / 278 |
100.0 % |
26 / 26 |
bnfunits.c |
|
96.4 % |
217 / 225 |
100.0 % |
14 / 14 |
buch1.c |
|
94.7 % |
641 / 677 |
92.0 % |
46 / 50 |
buch2.c |
|
92.0 % |
2170 / 2358 |
93.2 % |
150 / 161 |
buch3.c |
|
93.5 % |
1519 / 1625 |
96.1 % |
122 / 127 |
buch4.c |
|
95.9 % |
141 / 147 |
100.0 % |
8 / 8 |
char.c |
|
96.4 % |
812 / 842 |
100.0 % |
63 / 63 |
concat.c |
|
91.6 % |
328 / 358 |
100.0 % |
15 / 15 |
crvwtors.c |
|
84.9 % |
275 / 324 |
83.3 % |
25 / 30 |
digits.c |
|
93.1 % |
162 / 174 |
100.0 % |
23 / 23 |
dirichlet.c |
|
91.5 % |
313 / 342 |
100.0 % |
21 / 21 |
ecpp.c |
|
93.0 % |
756 / 813 |
97.0 % |
96 / 99 |
ellanal.c |
|
92.1 % |
726 / 788 |
94.4 % |
67 / 71 |
elliptic.c |
|
93.6 % |
4226 / 4515 |
98.2 % |
380 / 387 |
ellisog.c |
|
98.7 % |
943 / 955 |
100.0 % |
80 / 80 |
ellpadic.c |
|
96.2 % |
588 / 611 |
100.0 % |
47 / 47 |
ellpadiclambdamu.c |
|
100.0 % |
113 / 113 |
100.0 % |
7 / 7 |
ellrank.c |
|
93.4 % |
1107 / 1185 |
93.8 % |
105 / 112 |
ellsea.c |
|
95.5 % |
1156 / 1211 |
96.8 % |
90 / 93 |
elltors.c |
|
95.5 % |
424 / 444 |
92.6 % |
25 / 27 |
galconj.c |
|
83.4 % |
1905 / 2284 |
78.8 % |
119 / 151 |
gen1.c |
|
94.0 % |
1911 / 2032 |
100.0 % |
98 / 98 |
gen2.c |
|
89.1 % |
1566 / 1757 |
94.8 % |
146 / 154 |
gen3.c |
|
92.5 % |
2410 / 2605 |
95.9 % |
231 / 241 |
grossenchar.c |
|
98.7 % |
1032 / 1046 |
100.0 % |
65 / 65 |
hgm.c |
|
96.9 % |
1214 / 1253 |
100.0 % |
139 / 139 |
hnf_snf.c |
|
90.0 % |
1552 / 1725 |
90.0 % |
90 / 100 |
hyperell.c |
|
97.3 % |
807 / 829 |
100.0 % |
70 / 70 |
hypergeom.c |
|
98.7 % |
666 / 675 |
100.0 % |
70 / 70 |
ifactor1.c |
|
82.2 % |
1528 / 1860 |
86.8 % |
92 / 106 |
ispower.c |
|
93.2 % |
686 / 736 |
94.9 % |
37 / 39 |
kummer.c |
|
98.7 % |
855 / 866 |
100.0 % |
61 / 61 |
lambert.c |
|
89.6 % |
233 / 260 |
81.8 % |
18 / 22 |
lerch.c |
|
96.2 % |
329 / 342 |
100.0 % |
20 / 20 |
lfun.c |
|
97.7 % |
1461 / 1496 |
99.4 % |
158 / 159 |
lfunquad.c |
|
96.9 % |
342 / 353 |
97.7 % |
43 / 44 |
lfunutils.c |
|
92.2 % |
1746 / 1893 |
94.4 % |
168 / 178 |
lll.c |
|
95.9 % |
1203 / 1254 |
98.9 % |
92 / 93 |
map.c |
|
99.1 % |
219 / 221 |
100.0 % |
27 / 27 |
matperm.c |
|
100.0 % |
78 / 78 |
100.0 % |
4 / 4 |
mellininv.c |
|
98.8 % |
334 / 338 |
100.0 % |
36 / 36 |
mftrace.c |
|
97.3 % |
7529 / 7739 |
99.2 % |
766 / 772 |
modsym.c |
|
93.2 % |
2823 / 3029 |
98.3 % |
294 / 299 |
msfarey.c |
|
96.9 % |
187 / 193 |
100.0 % |
17 / 17 |
nffactor.c |
|
93.4 % |
1220 / 1306 |
96.1 % |
74 / 77 |
nflist.c |
|
96.5 % |
3102 / 3216 |
98.1 % |
312 / 318 |
nflistQT.c |
|
97.0 % |
164 / 169 |
100.0 % |
12 / 12 |
pclgp.c |
|
75.4 % |
1832 / 2430 |
82.9 % |
155 / 187 |
perm.c |
|
91.7 % |
952 / 1038 |
93.7 % |
104 / 111 |
polarit1.c |
|
95.8 % |
319 / 333 |
100.0 % |
32 / 32 |
polarit2.c |
|
90.5 % |
2169 / 2397 |
95.1 % |
193 / 203 |
polarit3.c |
|
90.0 % |
1738 / 1931 |
93.4 % |
185 / 198 |
polclass.c |
|
96.7 % |
800 / 827 |
98.3 % |
58 / 59 |
polmodular.c |
|
97.1 % |
2308 / 2378 |
100.0 % |
143 / 143 |
prime.c |
|
88.7 % |
653 / 736 |
92.1 % |
70 / 76 |
qfisom.c |
|
98.1 % |
871 / 888 |
100.0 % |
55 / 55 |
qfsolve.c |
|
98.4 % |
604 / 614 |
100.0 % |
33 / 33 |
quad.c |
|
92.3 % |
631 / 684 |
96.3 % |
52 / 54 |
ramanujantau.c |
|
97.3 % |
107 / 110 |
100.0 % |
12 / 12 |
random.c |
|
100.0 % |
157 / 157 |
100.0 % |
17 / 17 |
rootpol.c |
|
95.9 % |
1477 / 1540 |
97.5 % |
116 / 119 |
subcyclo.c |
|
92.3 % |
564 / 611 |
93.3 % |
42 / 45 |
subfield.c |
|
98.1 % |
940 / 958 |
98.0 % |
48 / 49 |
subgroup.c |
|
96.0 % |
356 / 371 |
100.0 % |
24 / 24 |
trans1.c |
|
97.0 % |
2229 / 2299 |
99.4 % |
165 / 166 |
trans2.c |
|
96.2 % |
1211 / 1259 |
97.8 % |
91 / 93 |
trans3.c |
|
93.2 % |
1684 / 1807 |
97.6 % |
124 / 127 |
volcano.c |
|
98.5 % |
338 / 343 |
100.0 % |
22 / 22 |
zetamult.c |
|
96.7 % |
562 / 581 |
100.0 % |
41 / 41 |