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 29419-8afb0ed749) Lines: 604 765 79.0 %
Date: 2024-07-02 09:03:41 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 33520
cmprs 40996
cgetr_block 42372
sdivsi 101892
stack_calloc 103639
gc_stoi 150929
dvdui 167195
subis 170686
mulrrz 192514
Mod32 199241
ugcdiu 210492
Fl_ellj_pre 223471
mod16 236336
truedivis 244019
mindd 254676
affiz 267806
Mod16 276473
uutoineg 319105
cgetg_block 370728
cmpri 446017
gc_utoi 469912
dvdiu 576502
cmpsr 650299
mpaff 659697
mpdiv 663984
real_0 795523
rdivss 839647
equalis 996279
equalsi 996461
real2n 1056679
addri 1099610
gc_utoipos 1119814
mpround 1215393
absrnz_equal2n 1272687
subrrz 1296706
cmpss 1300235
addrrz 1307078
umodui 1511748
Mod2 2024365
Mod8 2069648
mpcmp 2128474
gc_int 2575423
mulru 2766389
equaliu 2919358
equalui 2919358
itou_or_0 2994212
subir 3014650
maxdd 3047946
negr 3509295
ceildivuu 3684082
Fl_center 4023381
cmpis 4094125
cmpsi 4324635
absrnz_equal1 4512709
real_1_bit 4659184
mod4 4675188
umuluu_or_0 5453962
umuluu_le 5630016
subri 5767634
subsi 5894434
affsi 6152371
truedivsi 6197775
gc_NULL 6942944
mulrs 7181596
fractor 7374175
cmpir 9300504
cmpui 9373979
cmpiu 9374136
affectsign_safe 9955687
uabsdiviu_rem 11892741
addrs 12166376
smodss 12438247
mod8 12894322
rdivii 13002746
rdiviiz 13044596
utor 13410864
affur 13410967
mpabs_shallow 13431777
divii 13951049
subrs 16302483
dvdii 16542626
Fl_halve 16969225
maxuu 19366629
modis 19602557
smodis 21139473
evalvalser 21481425
int_bit 21734062
itos_or_0 23991565
gc_ulong 28740297
Fl_div 33132098
abscmpiu 35348269
abscmpui 35348421
mulri 37810824
mpexpo 38507702
absequaliu 41558426
absequalui 43284007
Mod4 44340957
evalprecp 44617077
stack_malloc 44728310
affui 45176253
modsi 45217527
truedivii 45377364
gc_bool 46195160
umodi2n 48910521
sdivsi_rem 51415548
mod2 53128887
stack_malloc_align 54384810
affrr_fixlg 55332174
Fl_addmulmul_pre 55813442
absi_shallow 60992063
minuu 66813263
evalvalp 78723759
remlll_pre 81667234
mpodd 83656759
Fl_triple 89142391
mpsqr 89657732
Fl_sqr 91996566
mod2BIL 93679052
addiu 95515003
addui 98998825
fixlg 102782254
icopyspec 113721168
togglesign_safe 120864262
subiu 128370959
real_1 129455959
subui 132534436
mpshift 152292569
udivuu_rem 158833806
varncmp 162321055
dvmduBIL 172502068
vali 173155311
itou 173425476
shiftr 177959685
gc_double 177989702
addis 180071126
gc_long 236086414
mpsub 249787170
utoineg 251145304
cgetineg 251994717
rtor 296473136
addsi 305236225
muliu 355359202
Fl_double 443559210
itos 454817512
mulis 470690832
addir 472096567
real_0_bit 472341388
shiftr_inplace 475912688
affsr 489536326
stor 489860129
mpadd 571152016
negi 602915055
Fl_neg 699687002
itor 700671476
umodsu 720139170
stoi 733085377
expu 787897389
lg2prec 796379188
mpmul 832311929
mpneg 877716792
rcopy 899945562
affii 909998771
subrr 979990081
cgetg_copy 1239951024
cmpuu 1430870153
minss 1662135487
cgetr 1830395795
togglesign 1875078589
Fl_sqr_pre 1991634910
absi 2022070415
expi 2058755932
mpabs 2089320385
setabssign 2155030790
Fl_mul 2265727882
nbits2lg 2341462748
remii 2495832257
addrr 2841463754
adduu 3260045421
Fl_mul_pre 3327719931
stackdummy 3340331059
Fl_add 4251584711
leafcopy 4845680684
shift_right 5565611141
Fl_sub 6721158483
dvmdsBIL 6939168543
Fl_addmul_pre 6943415675
shift_left 7356647444
subii 7402690336
uutoi 8374416577
icopy 8677903738
maxss 9095953716
utoi 11211940706
addii 11648510253
evalexpo 13055980881
utoipos 13423731186
gc_const 14367992245
cgetipos 15517650673
cgetg 23619952201
cgeti 25458617177
new_chunk 88613473272
evallg 90641650673
set_avma 122431168763

Generated by: LCOV version 1.16