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 30106-3f17b77578) Lines: 605 765 79.1 %
Date: 2025-03-31 09:19:50 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 508
mpcopy 707
dvdiiz 1316
ugcdui 2737
stack_calloc_align 3300
uabsdivui_rem 15763
addss 25067
subss 25067
subuu 25067
dvdis 33912
cmprs 40996
cgetr_block 42552
sdivsi 102148
stack_calloc 109098
gc_stoi 150801
dvdui 167195
subis 170865
mulrrz 192514
Mod32 199255
Fl_ellj_pre 224655
mod16 236236
truedivis 248401
mindd 257519
Mod16 277446
cmpri 282282
affiz 282982
uutoineg 317999
cgetg_block 387268
gc_utoi 468590
dvdiu 576440
mpdiv 664843
mpaff 674880
cmpsr 819618
rdivss 839647
real2n 1060253
real_0 1064176
equalis 1096870
equalsi 1097052
addri 1101600
gc_utoipos 1123631
mpround 1216434
absrnz_equal2n 1273284
umodui 1296213
subrrz 1296706
addrrz 1307127
cmpss 1314830
Mod2 2024379
Mod8 2070313
mpcmp 2140711
gc_int 2569932
mulru 2765822
equalui 2955371
equaliu 2955372
itou_or_0 2995322
subir 3003731
maxdd 3125971
negr 3506539
cmpis 3632723
ceildivuu 3722418
cmpsi 3864706
Fl_center 4023240
absrnz_equal1 4510633
mod4 4675412
real_1_bit 4682942
maxuu 4748924
umuluu_or_0 5512404
umuluu_le 5694608
subsi 5886149
subri 6000860
affsi 6169757
truedivsi 6202031
mulrs 7181596
gc_NULL 7312026
fractor 7376737
cmpir 9233981
cmpiu 9653807
cmpui 9653807
ugcdiu 9975946
affectsign_safe 10723613
uabsdiviu_rem 11892741
addrs 12139291
smodss 12474404
mod8 12871918
rdivii 13036787
rdiviiz 13081494
mpabs_shallow 13428442
utor 13431826
affur 13431928
divii 14023544
dvdii 16095255
subrs 16295132
Fl_halve 16989898
modis 19602559
int_bit 21040362
smodis 21140226
evalvalser 21442344
itos_or_0 24019811
abscmpiu 31585597
abscmpui 31585764
gc_ulong 36264168
mulri 37881309
mpexpo 38553377
absequaliu 39804274
absequalui 41553171
Mod4 44812652
modsi 45222846
affui 45472038
stack_malloc 45912976
truedivii 45998315
Fl_div 46282613
gc_bool 48018703
umodi2n 49384093
sdivsi_rem 51425122
stack_malloc_align 54713111
affrr_fixlg 55238271
Fl_addmulmul_pre 55892807
absi_shallow 58179519
mod2 60388552
minuu 66401686
remlll_pre 75018631
evalprecp 78661677
evalvalp 81621194
Fl_triple 89637054
mpsqr 90158991
Fl_sqr 92079695
addiu 94925421
addui 98424198
mod2BIL 100963083
fixlg 103078688
mpodd 114112347
icopyspec 115579310
togglesign_safe 124549351
subiu 128702833
real_1 130243643
subui 132871670
mpshift 153142105
udivuu_rem 158851502
dvmduBIL 165138315
itou 171901364
shiftr 177878083
addis 180206132
gc_double 180647197
vali 184410355
varncmp 211329124
gc_long 238057252
mpsub 250492050
utoineg 262898491
cgetineg 263752111
rtor 297003829
addsi 305387034
muliu 370927795
Fl_double 452175331
itos 455630699
mulis 463741234
addir 474509379
real_0_bit 475050278
shiftr_inplace 475675254
affsr 490025603
stor 490323962
mpadd 570759148
negi 640933781
Fl_neg 706437146
itor 706974922
umodsu 720608568
stoi 742045298
expu 775725603
lg2prec 798928663
mpmul 832739216
rcopy 893553878
affii 908134488
mpneg 919246878
subrr 990760836
cgetg_copy 1430545870
cmpuu 1431918070
cgetr 1839198405
togglesign 1914953762
minss 1999846814
absi 2058453483
Fl_sqr_pre 2101898732
mpabs 2128834535
setabssign 2194787001
nbits2lg 2359567341
Fl_mul 2376319028
expi 2413415985
addrr 2854709839
remii 2984274770
adduu 3386265852
stackdummy 3572831754
Fl_mul_pre 3953226760
Fl_add 4305848152
leafcopy 4931712355
shift_right 5609590196
dvmdsBIL 6989659671
Fl_sub 7188233297
Fl_addmul_pre 7572832958
subii 7584959718
shift_left 7667630230
uutoi 8716313356
icopy 9015601533
maxss 9512132654
utoi 11765103481
addii 12305400359
evalexpo 13121725127
utoipos 14073708123
gc_const 15383104957
cgetipos 16237991435
cgetg 24235199774
cgeti 26953704253
new_chunk 92465899402
evallg 94399957755
set_avma 127732089541

Generated by: LCOV version 1.16