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.0 lcov report (development 29806-4d001396c7) Lines: 605 765 79.1 %
Date: 2024-12-22 09:08:28 Functions: 219 285 76.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4296386024
Fl_addmul_pre 7448727778
Fl_addmulmul_pre 55914298
Fl_center 4023648
Fl_div 33071859
Fl_double 448520905
Fl_ellj_pre 223471
Fl_halve 16972991
Fl_mul 2367783907
Fl_mul_pre 3921759325
Fl_neg 705878019
Fl_sqr 92030356
Fl_sqr_pre 2054768496
Fl_sub 7195528201
Fl_triple 89645326
Mod16 277446
Mod2 2024379
Mod32 199255
Mod4 44558960
Mod64 0
Mod8 2070075
abscmpiu 36512445
abscmpui 36512519
absequaliu 41840122
absequalui 43588551
absi 2056095435
absi_shallow 62182961
absr 140
absrnz_equal1 4507994
absrnz_equal2n 1276413
addii 12103442904
addiiz 0
addir 474069666
addirz 0
addis 179623016
addiu 99429372
addri 1102227
addriz 0
addrr 2848916658
addrrz 1307127
addrs 12130407
addsi 304804288
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 102905955
adduu 3388835029
affectsign 0
affectsign_safe 10518518
affii 924050883
affiz 282555
affrr_fixlg 55169613
affsi 6167777
affsr 489315949
affsz 0
affui 45447944
affur 13418188
ceildivuu 3714066
cgetg 24012465504
cgetg_block 372708
cgetg_copy 1294113252
cgeti 26096144611
cgetineg 263727026
cgetipos 16006910210
cgetr 1836087967
cgetr_block 42519
cmpir 9221304
cmpis 4091610
cmpiu 9665253
cmpri 282127
cmprs 40996
cmpsi 4322746
cmpsr 814592
cmpss 1300662
cmpui 9665285
cmpuu 1432318493
divii 14006903
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 16550018
dvdiiz 3246
dvdis 33569
dvdisz 0
dvdiu 576536
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6980340290
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 166301445
equalis 1103836
equaliu 2948879
equalsi 1104018
equalui 2948882
evalexpo 13100493808
evallg 92424504512
evalprecp 44639063
evalvalp 78778912
evalvalser 21442008
expi 2127838150
expu 781768830
fixlg 102931483
fractor 7374786
gc_NULL 6957769
gc_bool 48390885
gc_const 14577122749
gc_double 179971749
gc_int 2567049
gc_long 239795748
gc_stoi 150961
gc_ulong 36247303
gc_utoi 469207
gc_utoipos 1119786
get_avma 0
icopy 8854828511
icopyspec 115276674
int_bit 21610238
itor 705566509
itos 455608555
itos_or_0 24007123
itou 174776737
itou_or_0 2995322
leafcopy 4907776070
lg2prec 798066183
maxdd 3123474
maxss 9552332780
maxuu 4749306
mindd 254898
minss 1687280734
minuu 76248189
mod16 236392
mod2 60274861
mod2BIL 100819032
mod32 259
mod4 4674209
mod64 0
mod8 12903596
modis 19602559
modisz 0
modsi 45222625
modsiz 0
modss 0
modssz 0
mpabs 2126335978
mpabs_shallow 13431858
mpadd 568541751
mpaddz 0
mpaff 674453
mpceil 0
mpcmp 2141098
mpcopy 707
mpdiv 665076
mpexpo 38574582
mpfloor 0
mpmul 830288252
mpmulz 0
mpneg 897875443
mpodd 112561112
mpround 1215579
mpshift 152869363
mpsqr 90061925
mpsub 250230537
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 463836469
muliu 354697068
mulri 37872695
mulriz 0
mulrrz 192514
mulrs 7181596
mulru 2766389
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2354960066
negi 619793963
negr 3508974
new_chunk 90248916447
rcopy 892436184
rdivii 13000812
rdiviiz 13045253
rdivis 0
rdivsi 0
rdivss 839647
real2n 1058357
real_0 1064982
real_0_bit 471910799
real_1 130117665
real_1_bit 4674516
real_m1 455
real_m2n 126
remii 2533746698
remiiz 0
remis 0
remisz 0
remlll_pre 74938691
remsi 0
remsiz 0
remss 0
remssz 0
rtor 296465951
sdivsi 102149
sdivsi_rem 51424790
sdivss_rem 0
set_avma 124626509792
setabssign 2192549069
shift_left 7378457107
shift_right 5593768277
shiftl 0
shiftlr 0
shiftr 177555610
shiftr_inplace 475093887
smodis 21139673
smodss 12454295
stack_calloc 109152
stack_calloc_align 3318
stack_malloc 46110736
stack_malloc_align 54709155
stackdummy 3451113778
stoi 734638610
stor 489617736
subii 7509990077
subiiz 28
subir 3003834
subirz 0
subis 170942
subisz 0
subiu 128808876
subri 6025670
subriz 0
subrr 988577893
subrrz 1296706
subrs 16281371
subrsz 0
subsi 5894853
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 132981087
subuu 25067
togglesign 1915195749
togglesign_safe 124570930
truedivii 46021640
truedivis 249234
truedivsi 6201919
uabsdiviu_rem 11892741
uabsdivui_rem 15833
udivuu_rem 158853294
ugcdiu 211589
ugcdui 2737
umodi2n 49130374
umodsu 720670592
umodui 1289578
umuluu_le 5630478
umuluu_or_0 5513508
utoi 11643648553
utoineg 262871592
utoipos 13892965355
utor 13418071
uutoi 8626375345
uutoineg 319232
vali 184165924
varncmp 163729900
varnmax 203
varnmin 0

Generated by: LCOV version 1.16