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 29465-f396510193) Lines: 604 765 79.0 %
Date: 2024-07-25 09:03:53 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
real_m1 329
dvdsi 371
divrrz 501
mpcopy 707
stack_calloc_align 2443
ugcdui 2737
dvdiiz 3036
uabsdivui_rem 15794
addss 25067
subss 25067
subuu 25067
dvdis 33527
cmprs 40996
cgetr_block 42376
sdivsi 101890
stack_calloc 103637
gc_stoi 150924
dvdui 167195
subis 170684
mulrrz 192514
Mod32 199241
ugcdiu 210060
Fl_ellj_pre 223456
mod16 236336
truedivis 244020
mindd 254674
affiz 267806
Mod16 276473
uutoineg 320828
cgetg_block 370863
cmpri 446002
gc_utoi 469821
dvdiu 576509
cmpsr 650299
mpaff 659697
mpdiv 663976
real_0 756459
rdivss 839647
equalis 996251
equalsi 996433
real2n 1056665
addri 1099547
gc_utoipos 1119841
mpround 1215407
absrnz_equal2n 1272698
subrrz 1296706
cmpss 1300235
addrrz 1307078
umodui 1511748
Mod2 2024365
Mod8 2069648
mpcmp 2128490
gc_int 2575440
mulru 2766389
equaliu 2919362
equalui 2919362
itou_or_0 2994217
subir 3014654
maxdd 3047917
negr 3509391
ceildivuu 3685890
Fl_center 4023381
cmpis 4093948
cmpsi 4324450
absrnz_equal1 4512700
real_1_bit 4659154
mod4 4675190
umuluu_or_0 5456541
umuluu_le 5630016
subri 5779898
subsi 5894194
affsi 6152285
truedivsi 6197775
gc_NULL 6941906
mulrs 7181596
fractor 7374175
cmpir 9300810
cmpiu 9373963
cmpui 9373976
affectsign_safe 10422535
uabsdiviu_rem 11892741
addrs 12166462
smodss 12512796
mod8 12893131
rdivii 13004808
rdiviiz 13047409
utor 13410915
affur 13411039
mpabs_shallow 13431777
divii 13953749
subrs 16302573
dvdii 16535735
Fl_halve 16997745
maxuu 19366899
modis 19602557
smodis 21139480
evalvalser 21481397
int_bit 21727970
itos_or_0 23991053
gc_ulong 28753568
Fl_div 33144952
abscmpiu 37390381
abscmpui 37391125
mulri 37810912
mpexpo 38511927
absequaliu 41558299
absequalui 43283875
Mod4 44351272
evalprecp 44619405
stack_malloc 44728422
affui 45176253
modsi 45217491
truedivii 45369742
gc_bool 46187671
umodi2n 48921092
sdivsi_rem 51415515
mod2 53129318
stack_malloc_align 54390309
affrr_fixlg 55332201
Fl_addmulmul_pre 55858352
absi_shallow 63028914
minuu 66929594
remlll_pre 75225934
evalvalp 78727298
mpodd 83656857
Fl_triple 89337865
mpsqr 89674469
Fl_sqr 92046331
mod2BIL 93680240
addiu 99597917
fixlg 102782349
addui 103081766
icopyspec 113722426
togglesign_safe 121002398
subiu 128373178
real_1 129467780
subui 132537002
mpshift 152372188
udivuu_rem 158833806
varncmp 162321010
dvmduBIL 172633986
vali 173153100
itou 173483976
shiftr 177965958
gc_double 178019604
addis 180075726
gc_long 235680082
mpsub 249882900
utoineg 251089959
cgetineg 251940801
rtor 296474686
addsi 305242635
muliu 355385861
Fl_double 444165639
itos 454778600
mulis 470715735
addir 472146278
real_0_bit 472537607
shiftr_inplace 476018124
affsr 489591736
stor 489908870
mpadd 571407273
negi 603021095
Fl_neg 699793157
itor 701132292
umodsu 720200500
stoi 733302330
expu 787971144
lg2prec 796798686
mpmul 832741370
mpneg 877861018
rcopy 890458644
affii 910191868
subrr 980201168
cgetg_copy 1240512247
cmpuu 1430874373
minss 1663987403
cgetr 1830999193
togglesign 1875685813
Fl_sqr_pre 1999473458
absi 2022110695
expi 2059109648
mpabs 2089364193
setabssign 2155082117
Fl_mul 2270255176
nbits2lg 2343013340
remii 2483866657
addrr 2842801188
adduu 3267037755
Fl_mul_pre 3341155006
stackdummy 3355467811
Fl_add 4254512809
leafcopy 4836513081
shift_right 5568630443
Fl_sub 6770667975
dvmdsBIL 6942505874
Fl_addmul_pre 6954983564
shift_left 7359503758
subii 7408519106
uutoi 8387056726
icopy 8683156917
maxss 9014462093
utoi 11232388311
addii 11658643447
evalexpo 13064385749
utoipos 13444092643
gc_const 14348908550
cgetipos 15537070289
cgetg 23636780588
cgeti 25457987857
new_chunk 88636706721
evallg 90695068836
set_avma 122460241533

Generated by: LCOV version 1.16