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 30772-246cd0a587) Lines: 605 680 89.0 %
Date: 2026-03-29 09:27:34 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
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 665
ugcdui 2737
thuemorseu 3313
stack_calloc_align 3325
varnmin 10374
uabsdivui_rem 16693
absr 19040
addss 25067
subss 25067
subuu 25067
dvdis 33737
cmprs 40996
cgetr_block 44234
sdivsi 102150
stack_calloc 110695
gc_stoi 155898
dvdui 167195
subis 171740
Fl_ellj_pre 238034
mindd 264380
truedivis 268372
cmpri 284263
mod16 307027
Mod32 311108
uutoineg 364103
Mod16 389733
cgetg_block 426065
gc_utoi 468866
dvdiu 576272
mpdiv 665506
umodui 711392
cmpsr 796099
rdivss 839647
real2n 1068600
addri 1106253
equalis 1151188
equalsi 1151370
gc_utoipos 1153588
real_0 1157741
mpround 1216585
absrnz_equal2n 1300261
cmpss 1392943
Mod8 2074034
mpcmp 2226372
Mod2 2370198
udivuu_rem 2418379
gc_int 2742540
mulru 2765892
subir 3004949
equaliu 3021722
equalui 3021722
itou_or_0 3147021
maxdd 3211439
cmpis 3634591
negr 3682498
cmpsi 3866590
ceildivuu 3903323
Fl_center 4486093
absrnz_equal1 4553834
real_1_bit 4713964
mod4 5141032
subri 6057703
subsi 6184739
truedivsi 6202031
umuluu_or_0 6261943
affsi 6446106
maxuu 6611145
mulrs 7181596
fractor 7379015
umuluu_le 7617880
gc_NULL 7962896
cmpir 9458399
ugcdiu 10319786
affectsign_safe 10729663
uabsdiviu_rem 11892741
addrs 12360957
smodss 12498624
cmpui 12981871
cmpiu 12982027
rdivii 13106967
rdiviiz 13150153
mpabs_shallow 13428463
divii 14047643
utor 14335054
affur 14335174
mod8 15586368
subrs 16536238
dvdii 16882811
Fl_halve 18787718
modis 19638526
int_bit 20915077
smodis 21176088
hammingu 24048686
evalvalser 24359582
abscmpiu 32364959
abscmpui 32365067
mulri 38284711
mpexpo 38874023
absequaliu 39547049
absequalui 41297041
Mod4 43855446
itos_or_0 44911585
modsi 45242127
affui 45491533
Fl_div 46814785
stack_malloc 46928644
umodi2n 48998827
sdivsi_rem 51446456
gc_ulong 52088583
truedivii 54704812
stack_malloc_align 55532512
affrr_fixlg 56108274
absi_shallow 56412394
gc_bool 56759713
mod2 62589934
Fl_addmulmul_pre 64617710
minuu 69668174
remlll_pre 75744973
evalprecp 78670237
evalvalp 81626905
Fl_triple 87375031
mpsqr 91035398
addiu 96772124
Fl_sqr 99463824
addui 100847298
fixlg 105719005
mod2BIL 107446093
mpodd 116093406
icopyspec 117797012
subiu 133394768
real_1 133615754
subui 138370654
mpshift 153595499
togglesign_safe 157291150
dvmduBIL 163324439
itou 179081136
gc_double 184151297
shiftr 187924709
vali 190832889
addis 194713171
varncmp 198760115
gc_long 242624065
mpsub 251553096
utoineg 297820623
cgetineg 298681382
rtor 303765933
addsi 319899457
muliu 373174099
Fl_double 442658746
mulis 467120081
shiftr_inplace 467195946
itos 476264185
addir 483028618
real_0_bit 484221913
affsr 501206725
stor 501616512
mpadd 574577695
negi 640841214
itor 716783473
Fl_neg 729181231
umodsu 734162240
expu 796841542
stoi 799014056
lg2prec 815806159
mpmul 838774235
rcopy 916744909
mpneg 926505911
affii 964722362
subrr 1006369281
cgetg_copy 1490138866
cmpuu 1490486304
cgetr 1875850905
togglesign 1953540901
minss 2026648273
absi 2067003582
mpabs 2137973860
setabssign 2205035349
Fl_sqr_pre 2340108797
nbits2lg 2404445701
expi 2424593994
Fl_mul 2437593602
addrr 2933625104
remii 3061886065
adduu 3447851672
stackdummy 3682009392
Fl_mul_pre 4232624275
leafcopy 5061005436
shift_right 5735009240
Fl_add 6139376482
dvmdsBIL 7152399136
Fl_sub 7391203739
Fl_addmul_pre 7675533922
subii 7719240862
shift_left 7796410099
uutoi 8934904009
icopy 9153241374
maxss 9700679903
utoi 12050183074
addii 12535715538
evalexpo 13397894622
utoipos 14268272183
gc_const 15648334364
cgetipos 16457348560
cgetg 25531108848
cgeti 27468704122
new_chunk 95134471267
evallg 96849313297
set_avma 131362059155

Generated by: LCOV version 1.16