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.0 lcov report (development 29806-4d001396c7) Lines: 605 765 79.1 %
Date: 2024-12-21 09:08:57 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
ugcdui 2737
dvdiiz 3246
stack_calloc_align 3318
uabsdivui_rem 15833
addss 25067
subss 25067
subuu 25067
dvdis 33569
cmprs 40996
cgetr_block 42523
sdivsi 102149
stack_calloc 109142
gc_stoi 150960
dvdui 167195
subis 170943
mulrrz 192514
Mod32 199255
ugcdiu 211406
Fl_ellj_pre 223494
mod16 236392
truedivis 249245
mindd 254899
Mod16 277446
cmpri 282127
affiz 282555
uutoineg 319161
cgetg_block 372688
gc_utoi 469253
dvdiu 576530
mpdiv 665059
mpaff 674453
cmpsr 814592
rdivss 839647
real2n 1058367
real_0 1064962
addri 1102260
equalis 1103786
equalsi 1103967
gc_utoipos 1119784
mpround 1215575
absrnz_equal2n 1276397
umodui 1289578
subrrz 1296706
cmpss 1300662
addrrz 1307127
Mod2 2024379
Mod8 2070075
mpcmp 2141121
gc_int 2567029
mulru 2766389
equaliu 2948864
equalui 2948871
itou_or_0 2995326
subir 3003829
maxdd 3123553
negr 3508929
ceildivuu 3718202
Fl_center 4023555
cmpis 4091535
cmpsi 4322669
absrnz_equal1 4507803
mod4 4674211
real_1_bit 4674599
maxuu 4749329
umuluu_or_0 5506996
umuluu_le 5630478
subsi 5894921
subri 5989177
affsi 6167928
truedivsi 6201919
gc_NULL 6958929
mulrs 7181596
fractor 7374795
cmpir 9236481
cmpiu 9666204
cmpui 9666252
affectsign_safe 10518063
uabsdiviu_rem 11892741
addrs 12130284
smodss 12445483
mod8 12904696
rdivii 13001651
rdiviiz 13046766
utor 13418107
affur 13418218
mpabs_shallow 13431858
divii 14001856
subrs 16281237
dvdii 16551362
Fl_halve 16964994
modis 19602559
smodis 21139673
evalvalser 21442008
int_bit 21605880
itos_or_0 24006703
Fl_div 33059177
abscmpiu 35707902
abscmpui 35707960
gc_ulong 36252537
mulri 37872684
mpexpo 38569888
absequaliu 41840044
absequalui 43588472
Mod4 44558479
evalprecp 44639407
modsi 45222622
affui 45447944
truedivii 46004470
stack_malloc 46110596
gc_bool 48391863
umodi2n 49129801
sdivsi_rem 51424786
stack_malloc_align 54706300
affrr_fixlg 55168826
Fl_addmulmul_pre 55917509
mod2 60274631
absi_shallow 61378411
remlll_pre 74931641
minuu 76211101
evalvalp 78779981
Fl_triple 89709055
mpsqr 90062060
Fl_sqr 92045990
addiu 97818162
mod2BIL 100820247
addui 101294698
fixlg 102930711
mpodd 112560020
icopyspec 115276340
togglesign_safe 124572182
subiu 128807481
real_1 130091092
subui 132979614
mpshift 152884664
udivuu_rem 158853294
varncmp 163729878
dvmduBIL 166288284
itou 174776633
shiftr 177548810
addis 179625369
gc_double 179876305
vali 184165473
gc_long 239796436
mpsub 250210985
utoineg 262877191
cgetineg 263732765
rtor 296467619
addsi 304806575
muliu 354691318
Fl_double 448575216
itos 455583930
mulis 463843308
real_0_bit 473948554
addir 474052192
shiftr_inplace 475068637
affsr 489311933
stor 489612912
mpadd 570311641
negi 619855557
itor 705407786
Fl_neg 705897110
umodsu 720702253
stoi 734571740
expu 781759070
lg2prec 797992920
mpmul 832045611
rcopy 892408053
mpneg 897932139
affii 924078567
subrr 988575728
cgetg_copy 1294119234
cmpuu 1432318969
minss 1687266160
cgetr 1835882320
togglesign 1915340455
Fl_sqr_pre 2052965347
absi 2056076465
mpabs 2126339701
expi 2127792220
setabssign 2192542652
nbits2lg 2355922572
Fl_mul 2366356483
remii 2533556798
addrr 2850862689
adduu 3387293723
stackdummy 3446718585
Fl_mul_pre 3930773784
Fl_add 4296678904
leafcopy 4907789709
shift_right 5593950663
dvmdsBIL 6980563226
Fl_sub 7186581040
shift_left 7378489015
Fl_addmul_pre 7459016293
subii 7509809661
uutoi 8625072646
icopy 8855702002
maxss 9543821006
utoi 11641065535
addii 12103283349
evalexpo 13102665270
utoipos 13890046020
gc_const 14576606458
cgetipos 16003675969
cgetg 24008083282
cgeti 26097588385
new_chunk 90247954871
evallg 92413290576
set_avma 124621072707

Generated by: LCOV version 1.16