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.16.2 lcov report (development 29115-f22e516b23) Lines: 604 765 79.0 %
Date: 2024-05-07 08:07:52 Functions: 218 285 76.5 %
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
real_m2n 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
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 393
divrrz 504
mpcopy 707
stack_calloc_align 956
ugcdui 2737
dvdiiz 5431
smodss 6914
uabsdivui_rem 15773
addss 25067
subss 25067
subuu 25067
cgetr_block 32402
dvdis 33520
cmprs 40996
stack_calloc 91841
sdivsi 100945
gc_stoi 150827
dvdui 167195
subis 169859
Mod32 183225
mulrrz 192514
ugcdiu 210986
Fl_ellj_pre 219841
mod16 236257
uutoineg 246314
truedivis 248142
mindd 251166
Mod16 260401
affiz 266760
cgetg_block 363839
cmpri 445374
gc_utoi 468998
dvdiu 576508
cmpsr 644812
mpaff 658462
mpdiv 663942
real_0 775653
rdivss 839647
real2n 1019558
equalis 1024767
equalsi 1024949
addri 1098696
gc_utoipos 1115768
cmpss 1289805
subrrz 1296706
addrrz 1307078
absrnz_equal2n 1345486
umodui 1511727
Mod2 1717695
Mod8 1780954
mpround 1848108
ceildivuu 2015538
mpcmp 2126067
itou_or_0 2524538
gc_int 2557309
mulru 2766284
equaliu 2916493
equalui 2916493
subir 3011497
maxdd 3025229
cmpis 3491351
cmpsi 3516697
negr 3526490
Fl_center 3928611
mod4 4084385
absrnz_equal1 4205893
real_1_bit 4478416
umuluu_or_0 5356330
umuluu_le 5620307
subsi 5820422
affsi 5926793
subri 5952050
truedivsi 6197775
gc_NULL 6944937
mulrs 7114592
fractor 7353735
uabsdiviu_rem 8349446
cmpiu 8745111
cmpui 8745128
minuu 9450226
affectsign_safe 9996193
cmpir 10421332
rdivii 11897837
rdiviiz 11942437
addrs 12006817
stack_malloc 12562206
mod8 12788189
divii 13162048
utor 13242604
affur 13242696
mpabs_shallow 13431420
subrs 15988735
dvdii 16542261
Fl_halve 16881693
evalprecp 19356261
maxuu 19547750
modis 19602389
smodis 21063940
evalvalser 21353062
int_bit 21913837
itos_or_0 22427864
gc_ulong 29154549
Fl_div 33024285
mpexpo 33217656
abscmpiu 33291359
abscmpui 33291532
mulri 34230217
evalvalp 36276495
absequaliu 39879182
absequalui 41604579
Mod4 42486479
affui 44603023
modsi 45217310
truedivii 45897966
umodi2n 46428985
gc_bool 48096209
absi_shallow 49664114
sdivsi_rem 51415332
mod2 52980606
stack_malloc_align 54677249
Fl_addmulmul_pre 55566667
affrr_fixlg 56509946
remlll_pre 81793975
mpsqr 82485981
mpodd 84260709
Fl_triple 88642431
addiu 90543172
mod2BIL 92811128
addui 93824168
Fl_sqr 96550090
fixlg 104100867
icopyspec 114606312
togglesign_safe 122263938
real_1 126575860
subiu 127055131
subui 131268028
mpshift 147619706
itou 153887095
udivuu_rem 158565677
varncmp 162309536
dvmduBIL 164291791
shiftr 170209091
addis 170722525
gc_double 176769913
vali 177696283
gc_long 223794163
utoineg 247113760
cgetineg 247960547
mpsub 250190526
rtor 290477330
addsi 295892144
muliu 363532126
Fl_double 440451236
itos 451965596
shiftr_inplace 454961977
addir 472779280
mulis 482704516
affsr 486169248
stor 486517477
real_0_bit 489179413
affii 588117350
mpadd 591289278
negi 593774238
itor 684800727
absi 691491468
Fl_neg 697539422
umodsu 716012267
stoi 717362759
mpabs 760996701
expu 776143605
lg2prec 793144650
setabssign 832826755
mpmul 842774973
mpneg 864004916
rcopy 905173890
subrr 958657936
cgetg_copy 1221459964
cmpuu 1440990469
minss 1646594651
cgetr 1801238545
togglesign 1826668310
expi 1986323550
Fl_sqr_pre 1992113498
Fl_mul 2262329561
nbits2lg 2338735728
remii 2473646449
addrr 2828081336
adduu 3125080815
stackdummy 3304781319
Fl_mul_pre 3325764442
leafcopy 3504418353
Fl_add 4077864337
shift_right 5480162770
Fl_sub 6724628650
dvmdsBIL 6812058930
Fl_addmul_pre 7070626734
shift_left 7129176939
subii 7505812187
icopy 7651543489
uutoi 7946119940
maxss 9053275069
addii 10321952408
utoi 10657553537
utoipos 12646171916
evalexpo 12775996264
gc_const 13950816507
cgetipos 14564804693
cgetg 23254596000
cgeti 24440070389
new_chunk 84015706284
evallg 87067947210
set_avma 116361424194

Generated by: LCOV version 1.14