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.18.1 lcov report (development 29950-285c5b69ed) Lines: 605 765 79.1 %
Date: 2025-02-05 09:09:51 Functions: 219 285 76.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4295029619
Fl_addmul_pre 7461898256
Fl_addmulmul_pre 55856189
Fl_center 4023810
Fl_div 33095779
Fl_double 453532164
Fl_ellj_pre 223457
Fl_halve 16969259
Fl_mul 2365193263
Fl_mul_pre 3940132274
Fl_neg 706275269
Fl_sqr 92144098
Fl_sqr_pre 2099592148
Fl_sub 7188224091
Fl_triple 90241713
Mod16 277446
Mod2 2024379
Mod32 199255
Mod4 44721027
Mod64 0
Mod8 2070075
abscmpiu 33097528
abscmpui 33097534
absequaliu 39798728
absequalui 41548045
absi 2055823326
absi_shallow 58795142
absr 140
absrnz_equal1 4506303
absrnz_equal2n 1275383
addii 12094835218
addiiz 0
addir 474262060
addirz 0
addis 180155636
addiu 96956841
addri 1102690
addriz 0
addrr 2851285807
addrrz 1307127
addrs 12128866
addsi 305336865
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 100428615
adduu 3387951972
affectsign 0
affectsign_safe 10965767
affii 924091440
affiz 282555
affrr_fixlg 55172292
affsi 6173272
affsr 489340814
affsz 0
affui 45448524
affur 13421539
ceildivuu 3714012
cgetg 23970144931
cgetg_block 382357
cgetg_copy 1288014327
cgeti 26044154859
cgetineg 264031107
cgetipos 15987544012
cgetr 1837323952
cgetr_block 42540
cmpir 9219707
cmpis 3661065
cmpiu 9658462
cmpri 282156
cmprs 40996
cmpsi 3892417
cmpsr 814586
cmpss 1300662
cmpui 9658490
cmpuu 1432889448
divii 14011079
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 16123655
dvdiiz 1325
dvdis 33576
dvdisz 0
dvdiu 576545
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6984440841
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 166015425
equalis 1103960
equaliu 2961706
equalsi 1104142
equalui 2961708
evalexpo 13105361479
evallg 92257317867
evalprecp 44639969
evalvalp 78781782
evalvalser 21442162
expi 2131077027
expu 772822901
fixlg 102972812
fractor 7374782
gc_NULL 7319498
gc_bool 48037143
gc_const 14554050582
gc_double 180676052
gc_int 2574215
gc_long 238730547
gc_stoi 150917
gc_ulong 36356378
gc_utoi 468416
gc_utoipos 1123140
get_avma 0
icopy 8840695932
icopyspec 115486852
int_bit 21371116
itor 706424309
itos 455481758
itos_or_0 24025433
itou 171662467
itou_or_0 2995326
leafcopy 4906628829
lg2prec 797946434
maxdd 3129935
maxss 9506844651
maxuu 4749244
mindd 254921
minss 1672411109
minuu 66360789
mod16 236389
mod2 60496074
mod2BIL 101088705
mod32 259
mod4 4675751
mod64 0
mod8 12904675
modis 19602559
modisz 0
modsi 45222744
modsiz 0
modss 0
modssz 0
mpabs 2126162415
mpabs_shallow 13428442
mpadd 568627500
mpaddz 0
mpaff 674453
mpceil 0
mpcmp 2141526
mpcopy 707
mpdiv 665378
mpexpo 38556638
mpfloor 0
mpmul 830485440
mpmulz 0
mpneg 897256853
mpodd 113363498
mpround 1215592
mpshift 152975930
mpsqr 90145806
mpsub 250380549
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 463792669
muliu 369458521
mulri 37872716
mulriz 0
mulrrz 192514
mulrs 7181596
mulru 2765612
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2355437523
negi 619142755
negr 3505986
new_chunk 90134178300
rcopy 893144666
rdivii 13004642
rdiviiz 13048937
rdivis 0
rdivsi 0
rdivss 839647
real2n 1059879
real_0 1065186
real_0_bit 472901813
real_1 130145919
real_1_bit 4681049
real_m1 455
real_m2n 126
remii 2526398218
remiiz 0
remis 0
remisz 0
remlll_pre 74907761
remsi 0
remsiz 0
remss 0
remssz 0
rtor 296680198
sdivsi 102148
sdivsi_rem 51425021
sdivss_rem 0
set_avma 124426648609
setabssign 2192184115
shift_left 7377007047
shift_right 5602385603
shiftl 0
shiftlr 0
shiftr 177602825
shiftr_inplace 475360789
smodis 21139786
smodss 12414934
stack_calloc 109243
stack_calloc_align 3312
stack_malloc 45922153
stack_malloc_align 54717903
stackdummy 3434169126
stoi 734953830
stor 489646309
subii 7494684622
subiiz 28
subir 3003901
subirz 0
subis 170942
subisz 0
subiu 128441021
subri 6009910
subriz 0
subrr 989556592
subrrz 1296706
subrs 16284757
subrsz 0
subsi 5894908
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 132613934
subuu 25067
togglesign 1915843373
togglesign_safe 124612452
truedivii 46009532
truedivis 248847
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 15742
udivuu_rem 158851348
ugcdiu 9904964
ugcdui 2737
umodi2n 49292366
umodsu 720702993
umodui 1293024
umuluu_le 5630478
umuluu_or_0 5540355
utoi 11636161930
utoineg 263171569
utoipos 13878064644
utor 13421420
uutoi 8611710226
uutoineg 319305
vali 184546829
varncmp 163794437
varnmax 203
varnmin 0

Generated by: LCOV version 1.16