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-04-26 08:07:25 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 32394
dvdis 33520
cmprs 40996
stack_calloc 91853
sdivsi 100946
gc_stoi 150821
dvdui 167195
subis 169859
Mod32 183225
mulrrz 192514
ugcdiu 211699
Fl_ellj_pre 219829
mod16 236258
uutoineg 246277
truedivis 248122
mindd 251163
Mod16 260401
affiz 266760
cgetg_block 363796
cmpri 445371
gc_utoi 469067
dvdiu 576510
cmpsr 644812
mpaff 658462
mpdiv 663954
real_0 775645
rdivss 839647
real2n 1019559
equalis 1024913
equalsi 1025095
addri 1098716
gc_utoipos 1115761
cmpss 1289805
subrrz 1296706
addrrz 1307078
absrnz_equal2n 1345478
umodui 1511727
Mod2 1717695
Mod8 1780954
mpround 1848103
ceildivuu 2014703
mpcmp 2126049
itou_or_0 2524533
gc_int 2557284
mulru 2766284
equaliu 2916490
equalui 2916491
subir 3011492
maxdd 3024799
cmpis 3491430
cmpsi 3516773
negr 3526495
Fl_center 3928666
mod4 4084385
absrnz_equal1 4205829
real_1_bit 4478461
umuluu_or_0 5353190
umuluu_le 5620307
subsi 5820469
subri 5904491
affsi 5926813
truedivsi 6197775
gc_NULL 6941363
mulrs 7114592
fractor 7353736
uabsdiviu_rem 8349446
cmpiu 8744710
cmpui 8744732
minuu 9449901
affectsign_safe 9997658
cmpir 10424013
rdivii 11898366
rdiviiz 11942329
addrs 12006941
stack_malloc 12561841
mod8 12787740
divii 13150351
utor 13242601
affur 13242701
mpabs_shallow 13431420
subrs 15988906
dvdii 16541136
Fl_halve 16884788
evalprecp 19355478
maxuu 19547139
modis 19602389
smodis 21063940
evalvalser 21353062
int_bit 21914460
itos_or_0 22427668
gc_ulong 29152312
Fl_div 33015170
mpexpo 33218635
abscmpiu 34110417
abscmpui 34110610
mulri 34230295
evalvalp 36275287
absequaliu 39879156
absequalui 41604551
Mod4 42480900
affui 44603024
modsi 45217314
truedivii 45853541
umodi2n 46425592
gc_bool 48091658
absi_shallow 50483293
sdivsi_rem 51415334
mod2 52980098
stack_malloc_align 54675618
Fl_addmulmul_pre 55580590
affrr_fixlg 56510667
remlll_pre 81739373
mpsqr 82483697
mpodd 84259812
Fl_triple 88569239
addiu 92183788
mod2BIL 92808670
addui 95464768
Fl_sqr 96619408
fixlg 104101555
icopyspec 114605713
togglesign_safe 122231121
real_1 126547757
subiu 127054351
subui 131267322
mpshift 147622557
itou 153886451
udivuu_rem 158565677
varncmp 162309673
dvmduBIL 164215142
shiftr 170208210
addis 170781235
gc_double 176728071
vali 177694726
gc_long 223794507
utoineg 247108252
cgetineg 247954957
mpsub 250141661
rtor 290480456
addsi 295950990
muliu 363582516
Fl_double 440070369
itos 451904661
shiftr_inplace 455043884
addir 472756482
mulis 482692143
affsr 486183624
stor 486530759
real_0_bit 490770844
affii 588115597
mpadd 592659879
negi 593771086
itor 684703450
absi 691416079
Fl_neg 697555781
umodsu 715975247
stoi 717932549
mpabs 760927180
expu 776143185
lg2prec 793100741
setabssign 832753225
mpmul 844179787
mpneg 864000252
rcopy 905195087
subrr 958590706
cgetg_copy 1221444080
cmpuu 1440999785
minss 1646418352
cgetr 1801110588
togglesign 1826576318
expi 1985987164
Fl_sqr_pre 1992804390
Fl_mul 2263980929
nbits2lg 2339927397
remii 2473811040
addrr 2829438590
adduu 3126085668
stackdummy 3309535890
Fl_mul_pre 3333439292
leafcopy 3504357844
Fl_add 4076229248
shift_right 5479910347
Fl_sub 6742627150
dvmdsBIL 6811925171
Fl_addmul_pre 7072070037
shift_left 7129136358
subii 7505673974
icopy 7650947596
uutoi 7946300320
maxss 9072524564
addii 10321149054
utoi 10658852135
utoipos 12647724457
evalexpo 12777880917
gc_const 13950643664
cgetipos 14566577649
cgetg 23266259762
cgeti 24440029102
new_chunk 84025373488
evallg 87086318162
set_avma 116375658994

Generated by: LCOV version 1.14