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 |
|
87.5 % |
555 / 634 |
80.9 % |
55 / 68 |
F2x.c |
|
83.7 % |
1532 / 1831 |
89.1 % |
188 / 211 |
F2xqE.c |
|
93.7 % |
419 / 447 |
94.8 % |
55 / 58 |
F3v.c |
|
83.5 % |
152 / 182 |
76.7 % |
23 / 30 |
FF.c |
|
91.2 % |
1344 / 1473 |
93.2 % |
138 / 148 |
Fle.c |
|
93.6 % |
427 / 456 |
89.1 % |
57 / 64 |
Flv.c |
|
97.2 % |
737 / 758 |
93.5 % |
58 / 62 |
Flx.c |
|
88.6 % |
2402 / 2712 |
86.5 % |
296 / 342 |
FlxX.c |
|
82.1 % |
1195 / 1455 |
76.8 % |
149 / 194 |
FlxqE.c |
|
93.4 % |
865 / 926 |
94.5 % |
86 / 91 |
Flxq_log.c |
|
95.9 % |
449 / 468 |
100.0 % |
28 / 28 |
FpE.c |
|
91.4 % |
1092 / 1195 |
93.8 % |
121 / 129 |
FpV.c |
|
77.1 % |
743 / 964 |
81.5 % |
110 / 135 |
FpX.c |
|
91.1 % |
1631 / 1791 |
93.4 % |
184 / 197 |
FpXQX_factor.c |
|
82.9 % |
1614 / 1946 |
83.0 % |
127 / 153 |
FpXX.c |
|
78.3 % |
951 / 1215 |
85.1 % |
114 / 134 |
FpX_factor.c |
|
91.7 % |
1307 / 1425 |
91.9 % |
114 / 124 |
QX_factor.c |
|
96.5 % |
772 / 800 |
97.8 % |
44 / 45 |
Qfb.c |
|
92.2 % |
986 / 1069 |
93.0 % |
119 / 128 |
RgV.c |
|
88.1 % |
509 / 578 |
91.3 % |
95 / 104 |
RgX.c |
|
91.0 % |
1610 / 1770 |
91.3 % |
199 / 218 |
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 |
|
87.3 % |
2770 / 3172 |
93.0 % |
292 / 314 |
alglin2.c |
|
90.2 % |
1029 / 1141 |
93.1 % |
81 / 87 |
alglin3.c |
|
92.3 % |
537 / 582 |
88.7 % |
47 / 53 |
aprcl.c |
|
84.8 % |
599 / 706 |
98.0 % |
50 / 51 |
arith1.c |
|
90.7 % |
2057 / 2267 |
93.8 % |
210 / 224 |
arith2.c |
|
93.9 % |
524 / 558 |
93.4 % |
71 / 76 |
base1.c |
|
95.1 % |
1713 / 1802 |
89.1 % |
139 / 156 |
base2.c |
|
94.9 % |
2200 / 2319 |
97.7 % |
168 / 172 |
base3.c |
|
93.7 % |
2038 / 2174 |
94.6 % |
228 / 241 |
base4.c |
|
91.6 % |
1643 / 1794 |
91.6 % |
164 / 179 |
base5.c |
|
94.3 % |
1098 / 1164 |
96.2 % |
76 / 79 |
bb_group.c |
|
93.8 % |
533 / 568 |
100.0 % |
36 / 36 |
bb_hnf.c |
|
94.1 % |
624 / 663 |
92.7 % |
51 / 55 |
bern.c |
|
95.0 % |
340 / 358 |
97.2 % |
35 / 36 |
bibli1.c |
|
95.4 % |
1087 / 1139 |
92.1 % |
70 / 76 |
bibli2.c |
|
95.4 % |
1251 / 1311 |
95.0 % |
114 / 120 |
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.9 % |
647 / 682 |
92.2 % |
47 / 51 |
buch2.c |
|
91.7 % |
2207 / 2406 |
93.3 % |
154 / 165 |
buch3.c |
|
93.4 % |
1511 / 1617 |
96.0 % |
120 / 125 |
buch4.c |
|
95.9 % |
141 / 147 |
100.0 % |
8 / 8 |
char.c |
|
95.7 % |
820 / 857 |
100.0 % |
63 / 63 |
concat.c |
|
92.5 % |
331 / 358 |
100.0 % |
15 / 15 |
crvwtors.c |
|
84.8 % |
274 / 323 |
83.3 % |
25 / 30 |
digits.c |
|
93.5 % |
173 / 185 |
100.0 % |
25 / 25 |
dirichlet.c |
|
95.8 % |
435 / 454 |
100.0 % |
28 / 28 |
ecpp.c |
|
92.9 % |
748 / 805 |
96.9 % |
95 / 98 |
ellanal.c |
|
92.1 % |
726 / 788 |
94.4 % |
67 / 71 |
elliptic.c |
|
93.7 % |
4275 / 4561 |
98.0 % |
383 / 391 |
ellisog.c |
|
98.7 % |
978 / 991 |
100.0 % |
85 / 85 |
ellpadic.c |
|
96.2 % |
588 / 611 |
100.0 % |
47 / 47 |
ellpadiclambdamu.c |
|
100.0 % |
113 / 113 |
100.0 % |
7 / 7 |
ellrank.c |
|
93.4 % |
1112 / 1190 |
93.8 % |
105 / 112 |
ellsea.c |
|
95.9 % |
1208 / 1260 |
96.9 % |
94 / 97 |
elltors.c |
|
95.7 % |
419 / 438 |
92.3 % |
24 / 26 |
factcyclo.c |
|
85.0 % |
915 / 1077 |
90.6 % |
77 / 85 |
galconj.c |
|
83.3 % |
1908 / 2291 |
78.9 % |
120 / 152 |
gen1.c |
|
93.9 % |
1935 / 2060 |
100.0 % |
101 / 101 |
gen2.c |
|
89.3 % |
1576 / 1764 |
94.9 % |
149 / 157 |
gen3.c |
|
92.1 % |
2408 / 2615 |
95.5 % |
231 / 242 |
grossenchar.c |
|
98.6 % |
1034 / 1049 |
100.0 % |
66 / 66 |
hgm.c |
|
96.9 % |
1218 / 1257 |
100.0 % |
139 / 139 |
hnf_snf.c |
|
90.1 % |
1557 / 1728 |
90.0 % |
90 / 100 |
hyperell.c |
|
97.4 % |
810 / 832 |
100.0 % |
70 / 70 |
hypergeom.c |
|
99.4 % |
682 / 686 |
100.0 % |
71 / 71 |
ifactor1.c |
|
82.0 % |
1555 / 1897 |
86.9 % |
93 / 107 |
ispower.c |
|
93.2 % |
686 / 736 |
94.9 % |
37 / 39 |
kummer.c |
|
98.7 % |
855 / 866 |
100.0 % |
61 / 61 |
lambert.c |
|
89.8 % |
237 / 264 |
81.8 % |
18 / 22 |
lerch.c |
|
96.2 % |
330 / 343 |
100.0 % |
20 / 20 |
lfun.c |
|
97.6 % |
1477 / 1513 |
99.4 % |
158 / 159 |
lfunquad.c |
|
96.8 % |
337 / 348 |
97.7 % |
42 / 43 |
lfunutils.c |
|
92.3 % |
1785 / 1934 |
94.6 % |
174 / 184 |
lll.c |
|
80.3 % |
1046 / 1302 |
98.0 % |
98 / 100 |
map.c |
|
99.1 % |
219 / 221 |
100.0 % |
27 / 27 |
matperm.c |
|
100.0 % |
78 / 78 |
100.0 % |
4 / 4 |
mellininv.c |
|
98.6 % |
350 / 355 |
100.0 % |
40 / 40 |
mftrace.c |
|
97.2 % |
7529 / 7742 |
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.0 % |
1221 / 1313 |
94.9 % |
75 / 79 |
nflist.c |
|
96.3 % |
3109 / 3228 |
97.8 % |
314 / 321 |
nflistQT.c |
|
97.0 % |
164 / 169 |
100.0 % |
12 / 12 |
pclgp.c |
|
77.1 % |
1835 / 2379 |
85.0 % |
153 / 180 |
perm.c |
|
92.0 % |
992 / 1078 |
93.9 % |
108 / 115 |
polarit1.c |
|
95.8 % |
319 / 333 |
100.0 % |
32 / 32 |
polarit2.c |
|
90.5 % |
2211 / 2442 |
95.2 % |
200 / 210 |
polarit3.c |
|
89.8 % |
1744 / 1943 |
92.9 % |
184 / 198 |
polclass.c |
|
97.5 % |
825 / 846 |
98.6 % |
72 / 73 |
polmodular.c |
|
97.0 % |
2281 / 2352 |
100.0 % |
142 / 142 |
prime.c |
|
91.7 % |
652 / 711 |
93.3 % |
70 / 75 |
qfisom.c |
|
98.1 % |
871 / 888 |
100.0 % |
55 / 55 |
qfsolve.c |
|
98.4 % |
613 / 623 |
100.0 % |
34 / 34 |
quad.c |
|
96.0 % |
690 / 719 |
95.0 % |
57 / 60 |
ramanujantau.c |
|
97.3 % |
107 / 110 |
100.0 % |
12 / 12 |
random.c |
|
100.0 % |
157 / 157 |
100.0 % |
17 / 17 |
rootpol.c |
|
95.9 % |
1480 / 1543 |
97.5 % |
116 / 119 |
subcyclo.c |
|
92.7 % |
608 / 656 |
93.9 % |
46 / 49 |
subfield.c |
|
98.1 % |
940 / 958 |
98.0 % |
48 / 49 |
subgroup.c |
|
96.0 % |
356 / 371 |
100.0 % |
24 / 24 |
trans1.c |
|
96.9 % |
2234 / 2305 |
99.4 % |
166 / 167 |
trans2.c |
|
96.2 % |
1211 / 1259 |
97.8 % |
91 / 93 |
trans3.c |
|
93.2 % |
1733 / 1860 |
97.7 % |
126 / 129 |
volcano.c |
|
98.6 % |
340 / 345 |
100.0 % |
28 / 28 |
zetamult.c |
|
96.7 % |
562 / 581 |
97.6 % |
40 / 41 |