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:

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
Current view: top level - kernel/none - level1.h (source / functions) Coverage Total Hit
Test: PARI/GP v2.18.1 lcov report (development 31042-0fbe168e69) Lines: 88.5 % 684 605
Test Date: 2026-07-23 17:04:59 Functions: 89.6 % 241 216
Legend: Lines:     hit not hit

Function Name Sort by function name Hit count Sort by function hit count
Mod64 0
affectsign 0
divsi_rem 0
divss 0
divss_rem 0
dvdiiz 0
dvdisz 0
dvdiuz 0
dvmdis 0
dvmdsi 0
dvmdss 0
get_avma 0
mod64 0
modss 0
mpceil 0
mpdiv 0
mpfloor 0
rdivis 0
rdivsi 0
remis 0
remsi 0
remss 0
sdivss_rem 0
shiftl 0
shiftlr 0
mptrunc 49
real_m2n 126
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 665
ugcdui 2737
thuemorseu 3313
stack_calloc_align 3325
divmpr 3759
absr 20510
addss 25081
subss 25081
subuu 25081
varnmin 26180
dvdis 33765
cmprs 40996
cgetr_block 44727
sdivsi 102165
stack_calloc 110641
uabsdivui_rem 128889
gc_stoi 155898
dvdui 167545
subis 171754
Fl_ellj_pre 242734
mindd 265749
truedivis 268440
cmpri 303853
mod16 308662
Mod32 311157
uutoineg 365874
Mod16 389789
cgetg_block 430325
gc_utoi 467771
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857545
real2n 1070081
addri 1111723
equalis 1149916
equalsi 1150098
gc_utoipos 1155329
real_0 1160749
divrmp 1202999
mpround 1216174
cmpss 1416033
cmpir 1730069
absrnz_equal2n 1842427
mpcmp 2163105
udivuu_rem 2418435
mulru 2765059
gc_int 2818119
subir 3030786
equaliu 3042309
equalui 3042309
maxdd 3218166
Mod8 3247314
Mod2 3533481
ceildivuu 3917034
negr 3961207
Fl_center 4490059
absrnz_equal1 4559202
itou_or_0 4917784
real_1_bit 4955383
cmpis 5993292
truedivsi 6202318
cmpsi 6225291
subsi 6245224
umuluu_or_0 6354289
affsi 6484711
maxuu 6603111
mulrs 7181596
fractor 7389437
mod4 7470820
umuluu_le 7618608
gc_NULL 7910768
ugcdiu 10312782
affectsign_safe 10756600
addrs 12387776
cmpiu 12999446
cmpui 12999446
rdivii 13134317
rdiviiz 13173944
utor 13344596
affur 13344736
mpabs_shallow 13428280
smodss 13998082
subri 14333360
mod8 15674921
divii 15867768
subrs 16573441
dvdii 17072406
modis 19638526
Fl_halve 20602613
int_bit 21029848
smodis 21176116
hammingu 24078784
evalvalser 25309350
uabsdiviu_rem 25949953
abscmpiu 32865244
abscmpui 32865244
mpexpo 37846690
itos_or_0 44913572
modsi 45242188
absequaliu 45591199
stack_malloc 46711620
absequalui 47340930
affui 47850644
Fl_div 49584092
Mod4 50399119
sdivsi_rem 51446802
gc_ulong 52320022
mulri 53048218
truedivii 54910283
gc_bool 55261798
stack_malloc_align 55666583
affrr_fixlg 56699519
minuu 57525497
umodi2n 57880958
absi_shallow 60811604
mod2 65777210
Fl_addmulmul_pre 74215677
evalprecp 78703554
remlll_pre 79168024
evalvalp 81660157
mpsqr 91863612
Fl_triple 100165010
addiu 102222221
addui 106295978
fixlg 106536969
Fl_sqr 108115284
mod2BIL 113287416
mpodd 118010217
icopyspec 119685611
subiu 133453569
subui 138448872
real_1 144102007
mpshift 153963668
togglesign_safe 157533307
dvmduBIL 173120719
itou 180891853
vali 193216002
addis 195206232
gc_double 198803777
varncmp 218513393
gc_long 243065203
mpsub 273997151
utoineg 300130856
cgetineg 301050415
rtor 308811757
cmpuu 318024191
addsi 320394950
shiftr 363696412
muliu 379190275
mulis 470657510
shiftr_inplace 472339492
itos 477708673
addir 490343164
real_0_bit 501714549
affsr 507931194
stor 507931194
Fl_double 521331450
mpadd 599825097
negi 661250537
umodsu 734427382
Fl_neg 741571145
itor 752608005
stoi 775953866
lg2prec 838566048
mpmul 891412621
mpneg 951670555
expu 979965227
affii 1002068619
subrr 1062184871
rcopy 1105107009
cgetg_copy 1490614409
cgetr 1945289041
togglesign 1995761834
minss 2060200799
absi 2076228406
mpabs 2118301083
setabssign 2186875635
expi 2487267218
nbits2lg 2517475294
Fl_mul 2549945700
Fl_sqr_pre 2564381561
addrr 3029488227
remii 3103483413
adduu 3539486944
stackdummy 3740876226
Fl_mul_pre 4446430611
leafcopy 5282488903
shift_right 5941026382
Fl_add 6560485923
dvmdsBIL 7366043249
maxss 7486005178
Fl_sub 7693157347
shift_left 7840594002
subii 7998570437
Fl_addmul_pre 8204874665
uutoi 9221450532
icopy 9368321144
utoi 12422690193
addii 13116198615
evalexpo 13975745934
utoipos 14655443295
gc_const 15920757398
cgetipos 16891357678
cgetg 26270823393
cgeti 28619617094
new_chunk 98579159083
evallg 100004113898
set_avma 135948268425

Generated by: LCOV version 2.0-1