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-18 08:06:58 Functions: 218 285 76.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4077031434
Fl_addmul_pre 7074428938
Fl_addmulmul_pre 55572856
Fl_center 3928665
Fl_div 33004287
Fl_double 440466400
Fl_ellj_pre 219833
Fl_halve 16889006
Fl_mul 2261853693
Fl_mul_pre 3336217940
Fl_neg 697509657
Fl_sqr 96572592
Fl_sqr_pre 1993795199
Fl_sub 6727271821
Fl_triple 88615178
Mod16 260401
Mod2 1717695
Mod32 183225
Mod4 42485682
Mod64 0
Mod8 1780954
abscmpiu 33217489
abscmpui 33217684
absequaliu 39879207
absequalui 41604602
absi 691523571
absi_shallow 49591136
absr 140
absrnz_equal1 4205875
absrnz_equal2n 1345481
addii 10323371237
addiiz 0
addir 472796378
addirz 0
addis 170770224
addiu 90392886
addri 1098676
addriz 0
addrr 2827002996
addrrz 1307078
addrs 12008181
addsi 295934299
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 93673884
adduu 3124369546
affectsign 0
affectsign_safe 9997205
affii 588119381
affiz 266760
affrr_fixlg 56512220
affsi 5926873
affsr 486202511
affsz 0
affui 44603025
affur 13242724
ceildivuu 2015151
cgetg 23255248903
cgetg_block 363836
cgetg_copy 1221567205
cgeti 24442655359
cgetineg 247956767
cgetipos 14564036971
cgetr 1801368870
cgetr_block 32411
cmpir 10401374
cmpis 3491446
cmpiu 8744225
cmpri 445375
cmprs 40996
cmpsi 3516791
cmpsr 644812
cmpss 1289805
cmpui 8744246
cmpuu 1441012079
divii 13161328
diviiz 0
divirz 0
divisz 0
divriz 0
divrrz 504
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdii 16534987
dvdiiz 5431
dvdis 33520
dvdisz 0
dvdiu 576507
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6813010507
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 164248916
equalis 1025694
equaliu 2916491
equalsi 1025876
equalui 2916489
evalexpo 12776830922
evallg 87073717527
evalprecp 19356949
evalvalp 36278503
evalvalser 21353062
expi 1986072386
expu 776174931
fixlg 104103163
fractor 7353735
gc_NULL 6941042
gc_bool 48088364
gc_const 13951492234
gc_double 176791625
gc_int 2557293
gc_long 223794928
gc_stoi 150826
gc_ulong 29159135
gc_utoi 469015
gc_utoipos 1115782
get_avma 0
icopy 7652189788
icopyspec 114606837
int_bit 21921857
itor 684853851
itos 451965557
itos_or_0 22428013
itou 153889445
itou_or_0 2524529
leafcopy 3504981763
lg2prec 793189530
maxdd 3025020
maxss 9057157515
maxuu 19548038
mindd 251169
minss 1646418509
minuu 9450330
mod16 236258
mod2 52979937
mod2BIL 92808405
mod32 259
mod4 4084379
mod64 0
mod8 12788063
modis 19602389
modisz 0
modsi 45217315
modsiz 0
modss 0
modssz 0
mpabs 760996176
mpabs_shallow 13431420
mpadd 589485476
mpaddz 0
mpaff 658462
mpceil 0
mpcmp 2126049
mpcopy 707
mpdiv 663924
mpexpo 33227120
mpfloor 0
mpmul 840984791
mpmulz 0
mpneg 864054711
mpodd 84259199
mpround 1848109
mpshift 147634682
mpsqr 82487800
mpsub 250167398
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 482706249
muliu 363558903
mulri 34230211
mulriz 0
mulrrz 192514
mulrs 7114592
mulru 2766284
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2337107503
negi 593805911
negr 3526394
new_chunk 84029047558
rcopy 905561247
rdivii 11898992
rdiviiz 11943874
rdivis 0
rdivsi 0
rdivss 839647
real2n 1019549
real_0 775659
real_0_bit 487337861
real_1 126593157
real_1_bit 4478535
real_m1 393
real_m2n 0
remii 2474086211
remiiz 0
remis 0
remisz 0
remlll_pre 81795958
remsi 0
remsiz 0
remss 0
remssz 0
rtor 290485012
sdivsi 100947
sdivsi_rem 51415336
sdivss_rem 0
set_avma 116380133630
setabssign 832826575
shift_left 7130077442
shift_right 5481072357
shiftl 0
shiftlr 0
shiftr 170219899
shiftr_inplace 455061621
smodis 21063940
smodss 6914
stack_calloc 91847
stack_calloc_align 956
stack_malloc 12562304
stack_malloc_align 54685236
stackdummy 3304667568
stoi 717602027
stor 486548922
subii 7506607570
subiiz 28
subir 3011489
subirz 0
subis 169860
subisz 0
subiu 127057787
subri 5959907
subriz 0
subrr 958660076
subrrz 1296706
subrs 15990236
subrsz 0
subsi 5820434
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 131270805
subuu 25067
togglesign 1826789599
togglesign_safe 122238331
truedivii 45890047
truedivis 248122
truedivsi 6197775
uabsdiviu_rem 8349446
uabsdivui_rem 15773
udivuu_rem 158565677
ugcdiu 211610
ugcdui 2737
umodi2n 46428825
umodsu 715996590
umodui 1511727
umuluu_le 5620307
umuluu_or_0 5379400
utoi 10656284765
utoineg 247110061
utoipos 12645118801
utor 13242603
uutoi 7945469809
uutoineg 246308
vali 177697102
varncmp 162310123
varnmax 203
varnmin 0

Generated by: LCOV version 1.14