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) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30616-7aa4fb0184) Lines: 605 680 89.0 %
Date: 2026-01-17 09:22:32 Functions: 214 238 89.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by 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
mpfloor 0
rdivis 0
rdivsi 0
remis 0
remsi 0
remss 0
sdivss_rem 0
shiftl 0
shiftlr 0
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 665
ugcdui 2737
thuemorseu 2851
stack_calloc_align 3307
varnmin 15547
uabsdivui_rem 16693
addss 25067
subss 25067
subuu 25067
dvdis 33709
cmprs 40996
cgetr_block 43800
sdivsi 102150
stack_calloc 110347
gc_stoi 155887
dvdui 167195
subis 170919
Fl_ellj_pre 238040
mod16 241110
mindd 264338
truedivis 266966
cmpri 282310
Mod32 311108
uutoineg 362512
Mod16 389733
cgetg_block 407201
gc_utoi 468628
dvdiu 576268
mpdiv 665647
cmpsr 796101
rdivss 839647
real2n 1067017
addri 1105676
gc_utoipos 1153458
real_0 1156386
equalis 1185529
equalsi 1185711
mpround 1216582
absrnz_equal2n 1292658
umodui 1296276
cmpss 1379853
Mod8 2073697
mpcmp 2225826
Mod2 2370185
udivuu_rem 2416412
gc_int 2631188
mulru 2765892
subir 3005086
equaliu 3018201
equalui 3018203
itou_or_0 3041726
maxdd 3178302
cmpis 3634825
negr 3671218
cmpsi 3866824
ceildivuu 3899759
Fl_center 4486110
absrnz_equal1 4519923
real_1_bit 4704767
maxuu 4815344
mod4 5083824
umuluu_or_0 5525796
umuluu_le 5803291
subsi 6093465
subri 6103476
truedivsi 6202031
affsi 6373119
mulrs 7181596
fractor 7376769
gc_NULL 7961596
cmpir 9448910
ugcdiu 10113805
cmpui 10132954
cmpiu 10133104
affectsign_safe 10725569
uabsdiviu_rem 11892741
addrs 12305057
smodss 12501189
rdivii 13100658
rdiviiz 13145560
mod8 13162189
mpabs_shallow 13428463
utor 13461805
affur 13461919
divii 14041449
subrs 16475464
dvdii 16566687
Fl_halve 18758447
modis 19638526
int_bit 20950323
smodis 21176060
evalvalser 21527935
hammingu 24048456
abscmpiu 32736041
abscmpui 32736065
mulri 38033344
mpexpo 38873060
absequaliu 39660212
absequalui 41409141
itos_or_0 43598091
Mod4 43777135
modsi 45225530
affui 45473825
Fl_div 46475012
stack_malloc 46627093
truedivii 47003232
umodi2n 48920229
sdivsi_rem 51429857
gc_bool 51987161
gc_ulong 52039926
affrr_fixlg 54651298
stack_malloc_align 55498002
absi_shallow 57786811
mod2 61113279
Fl_addmulmul_pre 64515722
minuu 69330503
remlll_pre 75524414
evalprecp 78668966
evalvalp 81625616
mpsqr 91032241
Fl_triple 94072645
Fl_sqr 95860929
addiu 96153233
addui 99797299
mod2BIL 103300711
fixlg 104194166
mpodd 115077209
icopyspec 117425075
togglesign_safe 125505992
real_1 129792553
subiu 131846283
subui 136819244
mpshift 153130011
dvmduBIL 165624327
shiftr 177969787
itou 178232380
addis 181579661
gc_double 184061899
vali 190378096
varncmp 217202947
gc_long 242311219
mpsub 251585381
utoineg 293939293
cgetineg 294800188
rtor 295233541
addsi 306763922
muliu 374454457
itos 462102190
shiftr_inplace 463894694
mulis 466267365
Fl_double 467794949
addir 481392660
real_0_bit 481456760
affsr 486123056
stor 486413872
mpadd 576426538
negi 636863335
itor 714554955
Fl_neg 719052384
umodsu 723907723
stoi 772916339
expu 775313766
lg2prec 799610875
mpmul 839612599
rcopy 903123628
affii 909982263
mpneg 916758289
subrr 1000079194
cgetg_copy 1480105995
cmpuu 1492659718
cgetr 1839900803
togglesign 1911843019
minss 2008528339
absi 2068329745
mpabs 2139128877
Fl_sqr_pre 2168944745
setabssign 2205829837
nbits2lg 2367978184
Fl_mul 2418956393
expi 2448218677
addrr 2877982172
remii 3004336348
adduu 3408954110
stackdummy 3640162519
Fl_mul_pre 4079809775
Fl_add 4393833516
leafcopy 4973463400
shift_right 5627202617
dvmdsBIL 7006564881
Fl_sub 7261272675
Fl_addmul_pre 7651503190
subii 7654618120
shift_left 7675901720
uutoi 8806864795
icopy 9051658039
maxss 9700500950
utoi 11895654010
addii 12400527159
evalexpo 13131863568
utoipos 14138995881
gc_const 15508218046
cgetipos 16302186796
cgetg 24535385794
cgeti 27094064990
new_chunk 93214006034
evallg 95174796494
set_avma 128943539675

Generated by: LCOV version 1.16