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.4 % |
554 / 634 |
80.9 % |
55 / 68 |
F2x.c |
|
83.7 % |
1544 / 1845 |
89.7 % |
192 / 214 |
F2xqE.c |
|
93.7 % |
419 / 447 |
94.8 % |
55 / 58 |
F3v.c |
|
83.5 % |
152 / 182 |
76.7 % |
23 / 30 |
FF.c |
|
91.3 % |
1349 / 1477 |
93.4 % |
141 / 151 |
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 |
|
81.1 % |
1195 / 1473 |
76.4 % |
149 / 195 |
FlxqE.c |
|
93.4 % |
865 / 926 |
94.5 % |
86 / 91 |
Flxq_log.c |
|
94.7 % |
443 / 468 |
100.0 % |
28 / 28 |
FpE.c |
|
91.1 % |
1089 / 1195 |
93.8 % |
121 / 129 |
FpV.c |
|
76.5 % |
735 / 961 |
79.6 % |
109 / 137 |
FpX.c |
|
90.9 % |
1626 / 1788 |
93.4 % |
184 / 197 |
FpXQX_factor.c |
|
82.5 % |
1614 / 1957 |
82.5 % |
127 / 154 |
FpXX.c |
|
78.0 % |
955 / 1224 |
85.1 % |
114 / 134 |
FpX_factor.c |
|
91.7 % |
1308 / 1426 |
91.9 % |
114 / 124 |
QX_factor.c |
|
96.5 % |
773 / 801 |
97.8 % |
44 / 45 |
Qfb.c |
|
90.0 % |
1102 / 1224 |
93.6 % |
131 / 140 |
RgV.c |
|
88.1 % |
509 / 578 |
91.3 % |
95 / 104 |
RgX.c |
|
91.3 % |
1612 / 1765 |
91.7 % |
200 / 218 |
Ser.c |
|
98.8 % |
162 / 164 |
100.0 % |
21 / 21 |
ZG.c |
|
60.3 % |
44 / 73 |
57.1 % |
8 / 14 |
ZV.c |
|
85.3 % |
800 / 938 |
87.8 % |
122 / 139 |
ZX.c |
|
88.5 % |
700 / 791 |
88.8 % |
95 / 107 |
Zp.c |
|
85.3 % |
734 / 860 |
87.3 % |
69 / 79 |
alglin1.c |
|
87.5 % |
2725 / 3116 |
93.4 % |
296 / 317 |
alglin2.c |
|
90.6 % |
1052 / 1161 |
93.4 % |
85 / 91 |
alglin3.c |
|
92.3 % |
536 / 581 |
89.3 % |
50 / 56 |
aprcl.c |
|
82.2 % |
579 / 704 |
96.0 % |
48 / 50 |
arith1.c |
|
91.2 % |
2076 / 2276 |
94.0 % |
218 / 232 |
arith2.c |
|
93.9 % |
524 / 558 |
93.4 % |
71 / 76 |
base1.c |
|
94.7 % |
1720 / 1816 |
88.6 % |
140 / 158 |
base2.c |
|
94.6 % |
2204 / 2329 |
97.7 % |
170 / 174 |
base3.c |
|
95.0 % |
2061 / 2170 |
95.4 % |
227 / 238 |
base4.c |
|
91.9 % |
1696 / 1845 |
91.9 % |
170 / 185 |
base5.c |
|
68.8 % |
1098 / 1597 |
85.4 % |
76 / 89 |
bb_group.c |
|
93.9 % |
551 / 587 |
100.0 % |
37 / 37 |
bb_hnf.c |
|
96.8 % |
643 / 664 |
96.4 % |
53 / 55 |
bern.c |
|
95.0 % |
340 / 358 |
97.2 % |
35 / 36 |
bibli1.c |
|
94.3 % |
1188 / 1260 |
92.5 % |
74 / 80 |
bibli2.c |
|
95.4 % |
1235 / 1295 |
95.9 % |
116 / 121 |
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 |
|
95.5 % |
679 / 711 |
92.7 % |
51 / 55 |
buch2.c |
|
91.7 % |
2197 / 2397 |
93.4 % |
155 / 166 |
buch3.c |
|
93.4 % |
1504 / 1610 |
96.0 % |
120 / 125 |
buch4.c |
|
95.9 % |
140 / 146 |
100.0 % |
8 / 8 |
char.c |
|
95.7 % |
820 / 857 |
100.0 % |
63 / 63 |
concat.c |
|
92.2 % |
330 / 358 |
100.0 % |
15 / 15 |
crvwtors.c |
|
84.8 % |
274 / 323 |
83.3 % |
25 / 30 |
digits.c |
|
95.6 % |
195 / 204 |
100.0 % |
27 / 27 |
dirichlet.c |
|
95.4 % |
481 / 504 |
93.3 % |
42 / 45 |
ecpp.c |
|
92.9 % |
748 / 805 |
96.9 % |
95 / 98 |
ellanal.c |
|
87.0 % |
683 / 785 |
92.8 % |
64 / 69 |
elliptic.c |
|
93.9 % |
4421 / 4707 |
97.5 % |
398 / 408 |
ellisog.c |
|
98.5 % |
1012 / 1027 |
100.0 % |
89 / 89 |
ellpadic.c |
|
96.2 % |
588 / 611 |
100.0 % |
47 / 47 |
ellpadiclambdamu.c |
|
100.0 % |
113 / 113 |
100.0 % |
7 / 7 |
ellrank.c |
|
93.3 % |
1153 / 1236 |
93.9 % |
108 / 115 |
ellsea.c |
|
95.9 % |
1208 / 1260 |
96.9 % |
94 / 97 |
elltors.c |
|
95.7 % |
421 / 440 |
92.3 % |
24 / 26 |
factcyclo.c |
|
84.9 % |
916 / 1079 |
90.6 % |
77 / 85 |
galconj.c |
|
83.3 % |
1917 / 2301 |
79.1 % |
121 / 153 |
gen1.c |
|
93.9 % |
1898 / 2022 |
100.0 % |
102 / 102 |
gen2.c |
|
88.1 % |
1569 / 1780 |
93.1 % |
148 / 159 |
gen3.c |
|
92.3 % |
2427 / 2629 |
95.5 % |
234 / 245 |
grossenchar.c |
|
98.6 % |
1033 / 1048 |
100.0 % |
66 / 66 |
hgm.c |
|
96.9 % |
1219 / 1258 |
100.0 % |
139 / 139 |
hnf_snf.c |
|
90.2 % |
1612 / 1788 |
90.7 % |
97 / 107 |
hyperell.c |
|
95.0 % |
866 / 912 |
98.7 % |
74 / 75 |
hypergeom.c |
|
99.4 % |
682 / 686 |
100.0 % |
69 / 69 |
ifactor1.c |
|
82.3 % |
1578 / 1918 |
86.9 % |
93 / 107 |
ispower.c |
|
93.2 % |
685 / 735 |
94.9 % |
37 / 39 |
kummer.c |
|
98.7 % |
850 / 861 |
100.0 % |
60 / 60 |
lambert.c |
|
89.8 % |
237 / 264 |
81.8 % |
18 / 22 |
lerch.c |
|
96.5 % |
354 / 367 |
100.0 % |
23 / 23 |
lfun.c |
|
97.5 % |
1591 / 1632 |
100.0 % |
163 / 163 |
lfunlarge.c |
|
92.6 % |
474 / 512 |
97.3 % |
73 / 75 |
lfunquad.c |
|
96.8 % |
337 / 348 |
97.7 % |
42 / 43 |
lfunutils.c |
|
90.7 % |
1805 / 1991 |
93.8 % |
180 / 192 |
lll.c |
|
81.3 % |
1330 / 1636 |
97.7 % |
125 / 128 |
map.c |
|
99.2 % |
240 / 242 |
100.0 % |
30 / 30 |
matperm.c |
|
100.0 % |
78 / 78 |
100.0 % |
4 / 4 |
mellininv.c |
|
98.6 % |
349 / 354 |
100.0 % |
40 / 40 |
mftrace.c |
|
97.3 % |
7496 / 7702 |
99.2 % |
769 / 775 |
modsym.c |
|
93.3 % |
2817 / 3018 |
98.0 % |
296 / 302 |
mpqs.c |
|
82.6 % |
695 / 841 |
89.5 % |
34 / 38 |
msfarey.c |
|
96.9 % |
187 / 193 |
100.0 % |
17 / 17 |
nffactor.c |
|
93.1 % |
1223 / 1314 |
94.9 % |
75 / 79 |
nflist.c |
|
96.3 % |
3111 / 3230 |
97.8 % |
316 / 323 |
nflistQT.c |
|
97.0 % |
164 / 169 |
100.0 % |
12 / 12 |
pclgp.c |
|
77.2 % |
1838 / 2381 |
85.0 % |
153 / 180 |
perm.c |
|
92.1 % |
1019 / 1106 |
94.1 % |
112 / 119 |
polarit1.c |
|
95.8 % |
316 / 330 |
100.0 % |
32 / 32 |
polarit2.c |
|
90.6 % |
2234 / 2466 |
95.4 % |
209 / 219 |
polarit3.c |
|
90.1 % |
1761 / 1955 |
93.0 % |
187 / 201 |
polclass.c |
|
97.5 % |
825 / 846 |
98.6 % |
72 / 73 |
polmodular.c |
|
97.0 % |
2281 / 2352 |
100.0 % |
142 / 142 |
prime.c |
|
91.1 % |
644 / 707 |
92.2 % |
71 / 77 |
qfisom.c |
|
98.1 % |
871 / 888 |
100.0 % |
55 / 55 |
qfsolve.c |
|
98.3 % |
623 / 634 |
100.0 % |
34 / 34 |
quad.c |
|
96.1 % |
687 / 715 |
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 % |
1468 / 1530 |
97.5 % |
116 / 119 |
subcyclo.c |
|
92.8 % |
609 / 656 |
93.9 % |
46 / 49 |
subfield.c |
|
98.1 % |
928 / 946 |
100.0 % |
51 / 51 |
subgroup.c |
|
96.0 % |
356 / 371 |
100.0 % |
24 / 24 |
trans1.c |
|
97.2 % |
2252 / 2317 |
99.4 % |
166 / 167 |
trans2.c |
|
96.1 % |
1262 / 1313 |
99.0 % |
96 / 97 |
trans3.c |
|
93.3 % |
1742 / 1867 |
97.7 % |
126 / 129 |
volcano.c |
|
98.6 % |
340 / 345 |
100.0 % |
28 / 28 |
zetamult.c |
|
96.9 % |
560 / 578 |
97.6 % |
40 / 41 |