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
Fl_add 4248001326
Fl_addmul_pre 6939231100
Fl_addmulmul_pre 55875538
Fl_center 4023342
Fl_div 33109953
Fl_double 442764084
Fl_ellj_pre 223481
Fl_halve 16964651
Fl_mul 2265105159
Fl_mul_pre 3325640872
Fl_neg 699414735
Fl_sqr 91983673
Fl_sqr_pre 1990201451
Fl_sub 6725207660
Fl_triple 88974451
Mod16 276473
Mod2 2024365
Mod32 199241
Mod4 44344492
Mod64 0
Mod8 2069648
abscmpiu 35597903
abscmpui 35597897
absequaliu 41558268
absequalui 43283845
absi 2022108703
absi_shallow 61240824
absr 140
absrnz_equal1 4512768
absrnz_equal2n 1272712
addii 11646292470
addiiz 0
addir 472132330
addirz 0
addis 180079978
addiu 96017912
addri 1099595
addriz 0
addrr 2841256467
addrrz 1307078
addrs 12166540
addsi 305247126
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 99501734
adduu 3259852868
affectsign 0
affectsign_safe 9954036
affii 909786932
affiz 267806
affrr_fixlg 55331993
affsi 6152197
affsr 489518600
affsz 0
affui 45176253
affur 13410998
ceildivuu 3685321
cgetg 23618366678
cgetg_block 370886
cgetg_copy 1239936005
cgeti 25446476972
cgetineg 251988531
cgetipos 15514065771
cgetr 1830428128
cgetr_block 42360
cmpir 9301293
cmpis 4094022
cmpiu 9372119
cmpri 446009
cmprs 40996
cmpsi 4324526
cmpsr 650299
cmpss 1300235
cmpui 9372159
cmpuu 1430872750
divii 13957885
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 16545547
dvdiiz 3036
dvdis 33527
dvdisz 0
dvdiu 576509
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6938372189
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 172506041
equalis 996310
equaliu 2919353
equalsi 996492
equalui 2919351
evalexpo 13054666896
evallg 90629096700
evalprecp 44619009
evalvalp 78725496
evalvalser 21481397
expi 2058683945
expu 787893341
fixlg 102781861
fractor 7374167
gc_NULL 6943425
gc_bool 46194139
gc_const 14365852923
gc_double 177999745
gc_int 2575414
gc_long 236084334
gc_stoi 150925
gc_ulong 28731211
gc_utoi 469944
gc_utoipos 1119831
get_avma 0
icopy 8677864167
icopyspec 113722118
int_bit 21734061
itor 700725117
itos 454775828
itos_or_0 23991170
itou 173484029
itou_or_0 2994208
leafcopy 4836096112
lg2prec 796379659
maxdd 3047965
maxss 9098829922
maxuu 19367164
mindd 254678
minss 1661582092
minuu 66840447
mod16 236334
mod2 53128943
mod2BIL 93677282
mod32 259
mod4 4675183
mod64 0
mod8 12892408
modis 19602557
modisz 0
modsi 45217581
modsiz 0
modss 0
modssz 0
mpabs 2089368497
mpabs_shallow 13431777
mpadd 571237609
mpaddz 0
mpaff 659697
mpceil 0
mpcmp 2128506
mpcopy 707
mpdiv 663985
mpexpo 38510554
mpfloor 0
mpmul 832433999
mpmulz 0
mpneg 877693296
mpodd 83656770
mpround 1215400
mpshift 152271965
mpsqr 89667217
mpsub 249851779
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 470698289
muliu 355415418
mulri 37810871
mulriz 0
mulrrz 192514
mulrs 7181596
mulru 2766389
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2341774529
negi 602890126
negr 3509307
new_chunk 88587418005
rcopy 890400927
rdivii 13002117
rdiviiz 13047308
rdivis 0
rdivsi 0
rdivss 839647
real2n 1056668
real_0 756468
real_0_bit 472323460
real_1 129462373
real_1_bit 4659096
real_m1 329
real_m2n 0
remii 2494879849
remiiz 0
remis 0
remisz 0
remlll_pre 81625760
remsi 0
remsiz 0
remss 0
remssz 0
rtor 296468686
sdivsi 101890
sdivsi_rem 51415601
sdivss_rem 0
set_avma 122399180899
setabssign 2155079426
shift_left 7356368980
shift_right 5565447817
shiftl 0
shiftlr 0
shiftr 177962619
shiftr_inplace 475760259
smodis 21139480
smodss 12428355
stack_calloc 103639
stack_calloc_align 2443
stack_malloc 44728560
stack_malloc_align 54388090
stackdummy 3341650757
stoi 733102051
stor 489864326
subii 7402536454
subiiz 28
subir 3014646
subirz 0
subis 170684
subisz 0
subiu 128368697
subri 5779444
subriz 0
subrr 980027929
subrrz 1296706
subrs 16302617
subrsz 0
subsi 5894272
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 132532326
subuu 25067
togglesign 1875045271
togglesign_safe 120847775
truedivii 45371910
truedivis 244019
truedivsi 6197775
uabsdiviu_rem 11892741
uabsdivui_rem 15794
udivuu_rem 158833806
ugcdiu 211489
ugcdui 2737
umodi2n 48914391
umodsu 720144437
umodui 1511748
umuluu_le 5630016
umuluu_or_0 5461898
utoi 11208222099
utoineg 251138481
utoipos 13419661745
utor 13410885
uutoi 8371062007
uutoineg 319249
vali 173156563
varncmp 162321039
varnmax 203
varnmin 0

Generated by: LCOV version 1.16