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-05 08:08:07 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 6913
uabsdivui_rem 15773
addss 25067
subss 25067
subuu 25067
cgetr_block 32413
dvdis 33520
cmprs 40996
stack_calloc 91857
sdivsi 100946
gc_stoi 150825
dvdui 167195
subis 169859
Mod32 183225
mulrrz 192514
ugcdiu 211606
Fl_ellj_pre 219822
mod16 236257
uutoineg 246017
truedivis 248119
mindd 251166
Mod16 260401
affiz 266760
cgetg_block 363896
cmpri 445373
gc_utoi 468918
dvdiu 576507
cmpsr 644812
mpaff 658462
mpdiv 663944
real_0 775646
rdivss 839647
real2n 1019564
equalis 1025224
equalsi 1025406
addri 1098684
gc_utoipos 1115779
cmpss 1289805
subrrz 1296706
addrrz 1307078
absrnz_equal2n 1345503
umodui 1511727
Mod2 1717695
Mod8 1780954
mpround 1848109
ceildivuu 2012155
mpcmp 2126067
itou_or_0 2524536
gc_int 2557303
mulru 2766284
equaliu 2916502
equalui 2916504
subir 3011501
maxdd 3025063
cmpis 3491386
cmpsi 3516728
negr 3526548
Fl_center 3928664
mod4 4084383
absrnz_equal1 4205914
real_1_bit 4478607
umuluu_or_0 5378127
umuluu_le 5620307
subsi 5820454
affsi 5927066
subri 6009651
truedivsi 6197775
gc_NULL 6941151
mulrs 7114592
fractor 7353738
uabsdiviu_rem 8349446
cmpiu 8744940
cmpui 8744972
minuu 9450275
affectsign_safe 9996290
cmpir 10401979
rdivii 11899117
rdiviiz 11942210
addrs 12007537
stack_malloc 12562264
mod8 12788358
divii 13176378
utor 13242606
affur 13242693
mpabs_shallow 13431420
subrs 15989646
dvdii 16542948
Fl_halve 16886521
evalprecp 19356102
maxuu 19547995
modis 19602389
smodis 21063940
evalvalser 21353062
int_bit 21934629
itos_or_0 22427885
gc_ulong 29141014
Fl_div 33045271
mpexpo 33223913
abscmpiu 33518707
abscmpui 33518877
mulri 34230271
evalvalp 36277049
absequaliu 39879206
absequalui 41604602
Mod4 42487803
affui 44603025
modsi 45217354
truedivii 45926993
umodi2n 46430249
gc_bool 48097222
absi_shallow 49892592
sdivsi_rem 51415374
mod2 52980450
stack_malloc_align 54682166
Fl_addmulmul_pre 55582532
affrr_fixlg 56512043
remlll_pre 81822105
mpsqr 82486902
mpodd 84260087
Fl_triple 88539867
addiu 90991936
mod2BIL 92811617
addui 94272980
Fl_sqr 96590186
fixlg 104103003
icopyspec 114606737
togglesign_safe 122253627
real_1 126623347
subiu 127059020
subui 131271865
mpshift 147633546
itou 153887764
udivuu_rem 158565676
varncmp 162309778
dvmduBIL 164272107
shiftr 170222287
addis 170751594
gc_double 176829190
vali 177696700
gc_long 223793837
utoineg 247113107
cgetineg 247959974
mpsub 250209865
rtor 290485548
addsi 295917827
muliu 363633460
Fl_double 440208178
itos 452014278
shiftr_inplace 455055685
addir 472809598
mulis 482725575
affsr 486211550
real_0_bit 486514816
stor 486555081
affii 588121645
mpadd 588912391
negi 593795146
itor 684940399
absi 691522826
Fl_neg 697562201
umodsu 715943186
stoi 717726153
mpabs 760997993
expu 776184827
lg2prec 793242105
setabssign 832829683
mpmul 840419877
mpneg 864056392
rcopy 905421047
subrr 958701917
cgetg_copy 1221508929
cmpuu 1440997978
minss 1646619158
cgetr 1801526783
togglesign 1826829304
expi 1986393575
Fl_sqr_pre 1993557417
Fl_mul 2262818259
nbits2lg 2336927063
remii 2474486686
addrr 2826289207
adduu 3125816913
stackdummy 3306282343
Fl_mul_pre 3326728007
leafcopy 3504793138
Fl_add 4077501527
shift_right 5481174230
Fl_sub 6727907018
dvmdsBIL 6813238051
Fl_addmul_pre 7062049162
shift_left 7130004954
subii 7506418724
icopy 7651972932
uutoi 7948811006
maxss 9057326313
addii 10323748607
utoi 10661017696
utoipos 12649857795
evalexpo 12775932482
gc_const 13951115227
cgetipos 14569081831
cgetg 23256379219
cgeti 24447866946
new_chunk 84031204611
evallg 87083491523
set_avma 116380790670

Generated by: LCOV version 1.14