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 30744-52374ab6cf) Lines: 605 680 89.0 %
Date: 2026-03-17 09:26:37 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 3313
stack_calloc_align 3325
varnmin 10374
uabsdivui_rem 16693
addss 25067
subss 25067
subuu 25067
dvdis 33730
cmprs 40996
cgetr_block 44275
sdivsi 102149
stack_calloc 110689
gc_stoi 155899
dvdui 167195
subis 171739
Fl_ellj_pre 238064
mindd 264381
truedivis 268372
cmpri 284263
mod16 307027
Mod32 311108
uutoineg 363338
Mod16 389733
cgetg_block 426289
gc_utoi 468778
dvdiu 576279
mpdiv 665535
cmpsr 797306
rdivss 839647
real2n 1068605
addri 1106311
equalis 1151177
equalsi 1151359
gc_utoipos 1153606
real_0 1157741
mpround 1216572
umodui 1290953
absrnz_equal2n 1300356
cmpss 1392943
Mod8 2074241
mpcmp 2226362
Mod2 2370283
udivuu_rem 2418379
gc_int 2742568
mulru 2765892
subir 3004980
equaliu 3021725
equalui 3021725
itou_or_0 3147025
maxdd 3211542
cmpis 3634432
negr 3682884
cmpsi 3866433
ceildivuu 3904045
Fl_center 4486194
absrnz_equal1 4553133
real_1_bit 4714083
mod4 5140958
subri 6098744
subsi 6184697
truedivsi 6202031
umuluu_or_0 6244492
affsi 6446297
maxuu 6611191
mulrs 7181596
fractor 7379024
umuluu_le 7617880
gc_NULL 7962428
cmpir 9441959
ugcdiu 10320042
affectsign_safe 10731505
uabsdiviu_rem 11892741
addrs 12360704
smodss 12569747
cmpui 12987867
cmpiu 12987939
rdivii 13109420
rdiviiz 13151491
mpabs_shallow 13428463
divii 14066989
utor 14334968
affur 14335092
mod8 15590087
subrs 16536525
dvdii 16887339
Fl_halve 18820114
modis 19638526
int_bit 20961203
smodis 21176081
hammingu 24048798
evalvalser 24359582
abscmpiu 32368248
abscmpui 32368321
mulri 38284729
mpexpo 38876524
absequaliu 39540600
absequalui 41290598
Mod4 43861301
itos_or_0 44912502
modsi 45242112
affui 45491533
Fl_div 46849140
stack_malloc 46928916
umodi2n 49005802
sdivsi_rem 51446442
gc_ulong 52083851
truedivii 54779373
stack_malloc_align 55536349
affrr_fixlg 56111543
gc_bool 56163674
absi_shallow 56418859
mod2 61682271
Fl_addmulmul_pre 64642632
minuu 69623325
remlll_pre 76202478
evalprecp 78675146
evalvalp 81631682
mpsqr 91035420
Fl_triple 91436651
addiu 96789736
Fl_sqr 99520066
addui 100864780
fixlg 105722315
mod2BIL 106547288
mpodd 115186915
icopyspec 117798039
subiu 133395261
real_1 133643305
subui 138371298
mpshift 153582849
togglesign_safe 157375805
dvmduBIL 161343184
itou 179067581
gc_double 184211699
shiftr 187869040
vali 190836037
addis 194698366
varncmp 198759114
gc_long 242631290
mpsub 251607768
utoineg 297845651
cgetineg 298706328
rtor 303760913
addsi 319885690
muliu 376491087
Fl_double 453675080
mulis 467138311
shiftr_inplace 467572812
itos 476377536
real_0_bit 482274079
addir 483078552
affsr 501413182
stor 501760399
mpadd 572880720
negi 640905273
itor 717359403
Fl_neg 723527169
umodsu 734150426
expu 796768393
stoi 797191871
lg2prec 816500687
mpmul 837188157
rcopy 916800693
mpneg 926517390
affii 965749966
subrr 1006565929
cgetg_copy 1481820914
cmpuu 1490478448
cgetr 1876528877
togglesign 1953839884
minss 2026587625
absi 2067094765
mpabs 2138048941
setabssign 2205132674
Fl_sqr_pre 2352249544
nbits2lg 2403250576
expi 2423677928
Fl_mul 2439178992
addrr 2932301015
remii 3060038950
adduu 3447979751
stackdummy 3659785491
Fl_mul_pre 4240551681
leafcopy 5003470616
shift_right 5737776849
Fl_add 6151465410
dvmdsBIL 7154144124
Fl_sub 7411154228
Fl_addmul_pre 7682878708
subii 7718941610
shift_left 7799951592
uutoi 8947439605
icopy 9067630438
maxss 9705207202
utoi 12062523068
addii 12549974423
evalexpo 13403264882
utoipos 14280081799
gc_const 15649129379
cgetipos 16458758286
cgetg 25456415542
cgeti 27486816123
new_chunk 94924726649
evallg 96707329195
set_avma 131159727915

Generated by: LCOV version 1.16