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 30702-bddb8d6928) Lines: 605 680 89.0 %
Date: 2026-02-23 02:23:56 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 38
absr 100
real_m2n 108
varnmax 174
mod32 187
dvdsi 286
real_m1 381
mpcopy 564
ugcdui 2346
thuemorseu 2444
stack_calloc_align 2644
cgetr_block 3656
varnmin 12624
uabsdivui_rem 12827
addss 21486
subss 21486
subuu 21486
dvdis 28836
cmprs 34919
cgetg_block 44861
sdivsi 87241
stack_calloc 91302
gc_stoi 133336
subis 142886
dvdui 143306
mod16 174008
Fl_ellj_pre 179549
mindd 204608
truedivis 228035
cmpri 230086
Mod32 266664
uutoineg 315862
Mod16 327088
gc_utoi 401718
dvdiu 494022
mpdiv 523653
rdivss 599747
cmpsr 673153
real2n 905385
mpround 921326
addri 925505
real_0 961142
gc_utoipos 979913
equalis 983728
equalsi 983859
cmpss 1059249
absrnz_equal2n 1077438
umodui 1108941
Mod8 1673139
mpcmp 1851601
gc_int 1911030
mulru 1992801
Mod2 2027970
udivuu_rem 2066551
subir 2202564
itou_or_0 2524613
equaliu 2550044
equalui 2550044
maxdd 2692033
negr 3090526
cmpis 3107502
ceildivuu 3185921
cmpsi 3306214
Fl_center 3490150
absrnz_equal1 3830341
real_1_bit 4000883
maxuu 4126632
mod4 4295323
umuluu_or_0 4368282
subsi 4728433
umuluu_le 4853944
mulrs 5084091
subri 5104585
affsi 5253328
truedivsi 5316014
fractor 5523309
gc_NULL 6665495
cmpiu 6856031
cmpui 6856031
cmpir 7832183
affectsign_safe 8533286
ugcdiu 8647289
mpabs_shallow 9598030
mod8 10062309
uabsdiviu_rem 10193778
rdivii 10340988
rdiviiz 10372549
addrs 10476621
smodss 10732377
utor 10813077
affur 10813177
divii 11181201
dvdii 12794185
subrs 14028272
Fl_halve 14465234
int_bit 15987481
modis 16833310
smodis 17967081
evalvalser 18411676
hammingu 20484723
abscmpiu 28174563
abscmpui 28174563
mpexpo 31873531
mulri 32472753
modsi 33316618
absequaliu 33543225
affui 33744700
absequalui 35042269
Mod4 36592377
stack_malloc 37021281
itos_or_0 37245339
truedivii 37343919
sdivsi_rem 38634594
Fl_div 39579886
umodi2n 40887322
gc_bool 41164113
minuu 41329927
gc_ulong 42676272
affrr_fixlg 45236720
stack_malloc_align 45873505
absi_shallow 49068409
Fl_addmulmul_pre 49744743
mod2 50132098
remlll_pre 65177969
evalprecp 67423419
evalvalp 69956491
Fl_triple 72562056
mpsqr 74633286
Fl_sqr 77231707
addiu 82778221
mod2BIL 83589747
addui 84919076
fixlg 87398918
mpodd 97319059
togglesign_safe 97350039
icopyspec 101614223
real_1 107775595
subiu 111827354
subui 115992049
mpshift 129958449
dvmduBIL 136111929
addis 143162871
gc_double 150241869
itou 150810051
shiftr 151126326
vali 162429792
varncmp 182156248
gc_long 190789933
mpsub 205174842
utoineg 246271069
cgetineg 247101103
rtor 247432141
addsi 250290470
muliu 335958691
Fl_double 356321675
itos 368276512
shiftr_inplace 382810432
mulis 387284599
addir 402044393
real_0_bit 402281083
affsr 407829404
stor 407829404
mpadd 474988720
negi 522198706
stoi 584152154
itor 591932732
Fl_neg 616999750
umodsu 626746196
expu 650206445
lg2prec 671096114
mpmul 691309038
affii 745381709
mpneg 753921196
rcopy 758961228
subrr 831503293
cmpuu 1197049916
cgetg_copy 1245562598
cgetr 1531895652
togglesign 1570911798
minss 1643243574
Fl_sqr_pre 1688500016
absi 1725083305
mpabs 1782965872
setabssign 1838701737
Fl_mul 1938757473
expi 1949005283
nbits2lg 1962151908
remii 2360748725
addrr 2410570040
adduu 2766750132
stackdummy 3040167622
Fl_mul_pre 3425206185
Fl_add 3624683547
leafcopy 4150529382
shift_right 4776038530
dvmdsBIL 5851557934
Fl_sub 5852691965
subii 6099872227
Fl_addmul_pre 6693434313
shift_left 6725820075
uutoi 6869283830
icopy 7150163424
maxss 7936918294
utoi 9422835451
addii 10395165499
evalexpo 11017660427
utoipos 11240063535
cgetipos 13098920927
gc_const 13900323115
cgetg 20491881291
cgeti 20877332073
new_chunk 77216071081
evallg 78695982629
set_avma 108014489104

Generated by: LCOV version 1.16