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 29451-c474da952c) Lines: 604 765 79.0 %
Date: 2024-07-16 09:03:37 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 42360
sdivsi 101890
stack_calloc 103639
gc_stoi 150925
dvdui 167195
subis 170684
mulrrz 192514
Mod32 199241
ugcdiu 211489
Fl_ellj_pre 223481
mod16 236334
truedivis 244019
mindd 254678
affiz 267806
Mod16 276473
uutoineg 319249
cgetg_block 370886
cmpri 446009
gc_utoi 469944
dvdiu 576509
cmpsr 650299
mpaff 659697
mpdiv 663985
real_0 756468
rdivss 839647
equalis 996310
equalsi 996492
real2n 1056668
addri 1099595
gc_utoipos 1119831
mpround 1215400
absrnz_equal2n 1272712
subrrz 1296706
cmpss 1300235
addrrz 1307078
umodui 1511748
Mod2 2024365
Mod8 2069648
mpcmp 2128506
gc_int 2575414
mulru 2766389
equalui 2919351
equaliu 2919353
itou_or_0 2994208
subir 3014646
maxdd 3047965
negr 3509307
ceildivuu 3685321
Fl_center 4023342
cmpis 4094022
cmpsi 4324526
absrnz_equal1 4512768
real_1_bit 4659096
mod4 4675183
umuluu_or_0 5461898
umuluu_le 5630016
subri 5779444
subsi 5894272
affsi 6152197
truedivsi 6197775
gc_NULL 6943425
mulrs 7181596
fractor 7374167
cmpir 9301293
cmpiu 9372119
cmpui 9372159
affectsign_safe 9954036
uabsdiviu_rem 11892741
addrs 12166540
smodss 12428355
mod8 12892408
rdivii 13002117
rdiviiz 13047308
utor 13410885
affur 13410998
mpabs_shallow 13431777
divii 13957885
subrs 16302617
dvdii 16545547
Fl_halve 16964651
maxuu 19367164
modis 19602557
smodis 21139480
evalvalser 21481397
int_bit 21734061
itos_or_0 23991170
gc_ulong 28731211
Fl_div 33109953
abscmpui 35597897
abscmpiu 35597903
mulri 37810871
mpexpo 38510554
absequaliu 41558268
absequalui 43283845
Mod4 44344492
evalprecp 44619009
stack_malloc 44728560
affui 45176253
modsi 45217581
truedivii 45371910
gc_bool 46194139
umodi2n 48914391
sdivsi_rem 51415601
mod2 53128943
stack_malloc_align 54388090
affrr_fixlg 55331993
Fl_addmulmul_pre 55875538
absi_shallow 61240824
minuu 66840447
evalvalp 78725496
remlll_pre 81625760
mpodd 83656770
Fl_triple 88974451
mpsqr 89667217
Fl_sqr 91983673
mod2BIL 93677282
addiu 96017912
addui 99501734
fixlg 102781861
icopyspec 113722118
togglesign_safe 120847775
subiu 128368697
real_1 129462373
subui 132532326
mpshift 152271965
udivuu_rem 158833806
varncmp 162321039
dvmduBIL 172506041
vali 173156563
itou 173484029
shiftr 177962619
gc_double 177999745
addis 180079978
gc_long 236084334
mpsub 249851779
utoineg 251138481
cgetineg 251988531
rtor 296468686
addsi 305247126
muliu 355415418
Fl_double 442764084
itos 454775828
mulis 470698289
addir 472132330
real_0_bit 472323460
shiftr_inplace 475760259
affsr 489518600
stor 489864326
mpadd 571237609
negi 602890126
Fl_neg 699414735
itor 700725117
umodsu 720144437
stoi 733102051
expu 787893341
lg2prec 796379659
mpmul 832433999
mpneg 877693296
rcopy 890400927
affii 909786932
subrr 980027929
cgetg_copy 1239936005
cmpuu 1430872750
minss 1661582092
cgetr 1830428128
togglesign 1875045271
Fl_sqr_pre 1990201451
absi 2022108703
expi 2058683945
mpabs 2089368497
setabssign 2155079426
Fl_mul 2265105159
nbits2lg 2341774529
remii 2494879849
addrr 2841256467
adduu 3259852868
Fl_mul_pre 3325640872
stackdummy 3341650757
Fl_add 4248001326
leafcopy 4836096112
shift_right 5565447817
Fl_sub 6725207660
dvmdsBIL 6938372189
Fl_addmul_pre 6939231100
shift_left 7356368980
subii 7402536454
uutoi 8371062007
icopy 8677864167
maxss 9098829922
utoi 11208222099
addii 11646292470
evalexpo 13054666896
utoipos 13419661745
gc_const 14365852923
cgetipos 15514065771
cgetg 23618366678
cgeti 25446476972
new_chunk 88587418005
evallg 90629096700
set_avma 122399180899

Generated by: LCOV version 1.16