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 % |
1356 / 1486 |
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 |
|
95.1 % |
445 / 468 |
100.0 % |
28 / 28 |
FpE.c |
|
91.5 % |
1093 / 1195 |
93.8 % |
121 / 129 |
FpV.c |
|
76.4 % |
733 / 959 |
79.4 % |
108 / 136 |
FpX.c |
|
91.0 % |
1635 / 1797 |
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.4 % |
1620 / 1773 |
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.6 % |
2751 / 3142 |
93.4 % |
296 / 317 |
alglin2.c |
|
90.4 % |
1061 / 1174 |
93.4 % |
85 / 91 |
alglin3.c |
|
92.4 % |
550 / 595 |
88.7 % |
47 / 53 |
aprcl.c |
|
82.4 % |
580 / 704 |
96.0 % |
48 / 50 |
arith1.c |
|
91.2 % |
2072 / 2272 |
93.9 % |
216 / 230 |
arith2.c |
|
93.9 % |
524 / 558 |
93.4 % |
71 / 76 |
base1.c |
|
94.7 % |
1720 / 1816 |
88.6 % |
140 / 158 |
base2.c |
|
94.7 % |
2213 / 2338 |
97.7 % |
168 / 172 |
base3.c |
|
95.0 % |
2065 / 2174 |
95.4 % |
227 / 238 |
base4.c |
|
91.9 % |
1695 / 1845 |
91.9 % |
170 / 185 |
base5.c |
|
68.8 % |
1098 / 1597 |
85.4 % |
76 / 89 |
bb_group.c |
|
93.7 % |
532 / 568 |
100.0 % |
36 / 36 |
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 % |
1190 / 1262 |
92.5 % |
74 / 80 |
bibli2.c |
|
95.4 % |
1255 / 1315 |
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 % |
1508 / 1614 |
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.5 % |
331 / 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.2 % |
476 / 500 |
93.2 % |
41 / 44 |
ecpp.c |
|
92.9 % |
748 / 805 |
96.9 % |
95 / 98 |
ellanal.c |
|
87.0 % |
683 / 785 |
92.8 % |
64 / 69 |
elliptic.c |
|
94.0 % |
4373 / 4654 |
97.7 % |
388 / 397 |
ellisog.c |
|
98.5 % |
1015 / 1030 |
100.0 % |
88 / 88 |
ellpadic.c |
|
96.2 % |
588 / 611 |
100.0 % |
47 / 47 |
ellpadiclambdamu.c |
|
100.0 % |
113 / 113 |
100.0 % |
7 / 7 |
ellrank.c |
|
93.3 % |
1151 / 1234 |
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 |
|
94.0 % |
1937 / 2061 |
100.0 % |
101 / 101 |
gen2.c |
|
88.1 % |
1577 / 1789 |
93.1 % |
148 / 159 |
gen3.c |
|
92.3 % |
2431 / 2633 |
95.5 % |
232 / 243 |
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 % |
869 / 915 |
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 % |
855 / 866 |
100.0 % |
61 / 61 |
lambert.c |
|
89.8 % |
237 / 264 |
81.8 % |
18 / 22 |
lerch.c |
|
96.4 % |
352 / 365 |
100.0 % |
23 / 23 |
lfun.c |
|
97.5 % |
1591 / 1632 |
100.0 % |
163 / 163 |
lfunlarge.c |
|
92.5 % |
479 / 518 |
97.3 % |
73 / 75 |
lfunquad.c |
|
96.8 % |
337 / 348 |
97.7 % |
42 / 43 |
lfunutils.c |
|
90.7 % |
1806 / 1992 |
93.7 % |
177 / 189 |
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 % |
7543 / 7749 |
99.2 % |
766 / 772 |
modsym.c |
|
93.2 % |
2826 / 3031 |
98.3 % |
294 / 299 |
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.2 % |
1026 / 1113 |
94.1 % |
112 / 119 |
polarit1.c |
|
95.8 % |
319 / 333 |
100.0 % |
32 / 32 |
polarit2.c |
|
90.4 % |
2242 / 2479 |
95.3 % |
204 / 214 |
polarit3.c |
|
90.0 % |
1764 / 1960 |
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 % |
1480 / 1543 |
97.5 % |
116 / 119 |
subcyclo.c |
|
92.8 % |
609 / 656 |
93.9 % |
46 / 49 |
subfield.c |
|
98.1 % |
940 / 958 |
100.0 % |
49 / 49 |
subgroup.c |
|
96.0 % |
356 / 371 |
100.0 % |
24 / 24 |
trans1.c |
|
97.2 % |
2260 / 2325 |
99.4 % |
166 / 167 |
trans2.c |
|
96.0 % |
1260 / 1313 |
97.9 % |
95 / 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 |