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 29884-9d10e5cf54) Lines: 605 765 79.1 %
Date: 2025-01-20 09:10:26 Functions: 219 285 76.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Mod64 0
addiiz 0
addirz 0
addriz 0
addsiz 0
addsrz 0
addssz 0
affectsign 0
affsz 0
diviiz 0
divirz 0
divisz 0
divriz 0
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdisz 0
dvdiuz 0
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
get_avma 0
mod64 0
modisz 0
modsiz 0
modss 0
modssz 0
mpaddz 0
mpceil 0
mpfloor 0
mpmulz 0
mpsubz 0
muliiz 0
mulirz 0
mulriz 0
mulsiz 0
mulsrz 0
mulssz 0
rdivis 0
rdivsi 0
remiiz 0
remis 0
remisz 0
remsi 0
remsiz 0
remss 0
remssz 0
sdivss_rem 0
shiftl 0
shiftlr 0
subirz 0
subisz 0
subriz 0
subrsz 0
subsiz 0
subsrz 0
subssz 0
varnmin 0
subiiz 28
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
divrrz 501
mpcopy 707
dvdiiz 1325
ugcdui 2737
stack_calloc_align 3312
uabsdivui_rem 15742
addss 25067
subss 25067
subuu 25067
dvdis 33569
cmprs 40996
cgetr_block 42535
sdivsi 102149
stack_calloc 109217
gc_stoi 150913
dvdui 167195
subis 170943
mulrrz 192514
Mod32 199255
ugcdiu 211810
Fl_ellj_pre 223474
mod16 236389
truedivis 248846
mindd 254920
Mod16 277446
cmpri 282155
affiz 282555
uutoineg 319308
cgetg_block 380834
gc_utoi 468521
dvdiu 576537
mpdiv 665391
mpaff 674453
cmpsr 814595
rdivss 839647
real2n 1059854
real_0 1065154
addri 1102598
equalis 1103931
equalsi 1104113
gc_utoipos 1122852
mpround 1215575
absrnz_equal2n 1275341
umodui 1293038
subrrz 1296706
cmpss 1300662
addrrz 1307127
Mod2 2024379
Mod8 2070075
mpcmp 2141543
gc_int 2574082
mulru 2765612
equaliu 2948906
equalui 2948909
itou_or_0 2995320
subir 3003892
maxdd 3129967
negr 3506073
cmpis 3660796
ceildivuu 3715068
cmpsi 3892147
Fl_center 4023799
absrnz_equal1 4506270
mod4 4674869
real_1_bit 4680807
maxuu 4749198
umuluu_or_0 5510044
umuluu_le 5630478
subsi 5894910
subri 6014146
affsi 6173363
truedivsi 6202031
mulrs 7181596
gc_NULL 7319021
fractor 7374788
cmpir 9221440
cmpiu 9659491
cmpui 9659497
affectsign_safe 10650910
uabsdiviu_rem 11892741
addrs 12128939
smodss 12462223
mod8 12905363
rdivii 13004095
rdiviiz 13049089
utor 13421399
affur 13421518
mpabs_shallow 13428442
divii 14012647
dvdii 16118062
subrs 16284741
Fl_halve 16986353
modis 19602559
smodis 21139779
int_bit 21391583
evalvalser 21442162
itos_or_0 24013576
Fl_div 33065908
abscmpiu 34750947
abscmpui 34750964
gc_ulong 36225144
mulri 37872665
mpexpo 38559923
absequaliu 39797470
absequalui 41545595
evalprecp 44639493
Mod4 44720520
modsi 45222586
affui 45448522
stack_malloc 45919092
truedivii 46020045
gc_bool 48027917
umodi2n 49291808
sdivsi_rem 51424864
stack_malloc_align 54720292
affrr_fixlg 55171090
Fl_addmulmul_pre 55762585
absi_shallow 60439001
mod2 60495353
minuu 66338131
remlll_pre 74995105
evalvalp 78779802
Fl_triple 90121413
mpsqr 90154438
Fl_sqr 92062773
addiu 100267641
mod2BIL 101086970
fixlg 102970400
addui 103739371
mpodd 113361266
icopyspec 115486552
togglesign_safe 124570413
subiu 128438254
real_1 130147807
subui 132610349
mpshift 152968333
udivuu_rem 158851348
varncmp 163672566
dvmduBIL 166193332
itou 171665084
shiftr 177603444
addis 180181958
gc_double 180676832
vali 184509288
gc_long 238714117
mpsub 250405429
utoineg 263161186
cgetineg 264020817
rtor 296669157
addsi 305360258
muliu 369200874
Fl_double 452911934
itos 455501907
mulis 463749891
real_0_bit 473034306
addir 474261862
shiftr_inplace 475329051
affsr 489249104
stor 489576555
mpadd 568780057
negi 619093541
Fl_neg 706168557
itor 706444113
umodsu 720710054
stoi 734892315
expu 772667559
lg2prec 797876941
mpmul 830673822
rcopy 893138243
mpneg 897204783
affii 924161976
subrr 989565233
cgetg_copy 1289565310
cmpuu 1432566900
minss 1672272262
cgetr 1837242668
togglesign 1915669734
absi 2055721508
Fl_sqr_pre 2098080392
mpabs 2126063160
expi 2130895475
setabssign 2192086343
nbits2lg 2355930195
Fl_mul 2372318024
remii 2530964532
addrr 2851177672
adduu 3391420428
stackdummy 3443516904
Fl_mul_pre 3928751621
Fl_add 4293613882
leafcopy 4906367569
shift_right 5602340856
dvmdsBIL 6983720611
Fl_sub 7217682170
shift_left 7379073089
Fl_addmul_pre 7449409082
subii 7502366124
uutoi 8615118988
icopy 8849287021
maxss 9541152731
utoi 11642393851
addii 12096585165
evalexpo 13105329842
utoipos 13884227931
gc_const 14563939279
cgetipos 15993590751
cgetg 23988129841
cgeti 26066477964
new_chunk 90189494414
evallg 92332012170
set_avma 124509322828

Generated by: LCOV version 1.16