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

Generated by: LCOV version 1.16