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 29115-f22e516b23) Lines: 604 765 79.0 %
Date: 2024-03-28 08:06:56 Functions: 218 285 76.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4078236100
Fl_addmul_pre 7072274888
Fl_addmulmul_pre 55586402
Fl_center 3928666
Fl_div 33042714
Fl_double 440353760
Fl_ellj_pre 219826
Fl_halve 16885503
Fl_mul 2262733538
Fl_mul_pre 3327528777
Fl_neg 697585425
Fl_sqr 96636035
Fl_sqr_pre 1993111318
Fl_sub 6722515720
Fl_triple 88608515
Mod16 260401
Mod2 1717695
Mod32 183225
Mod4 42488215
Mod64 0
Mod8 1780954
abscmpiu 33218937
abscmpui 33219104
absequaliu 39879190
absequalui 41604585
absi 691562279
absi_shallow 49592362
absr 140
absrnz_equal1 4205899
absrnz_equal2n 1345481
addii 10323659241
addiiz 0
addir 472818918
addirz 0
addis 170793653
addiu 90393257
addri 1098767
addriz 0
addrr 2824785115
addrrz 1307078
addrs 12008818
addsi 295962621
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 93674242
adduu 3124767955
affectsign 0
affectsign_safe 9997919
affii 588119853
affiz 266760
affrr_fixlg 56513494
affsi 5926794
affsr 486169313
affsz 0
affui 44603025
affur 13242676
ceildivuu 2015862
cgetg 23250791351
cgetg_block 363877
cgetg_copy 1221603995
cgeti 24442697263
cgetineg 247959336
cgetipos 14565620734
cgetr 1801556607
cgetr_block 32412
cmpir 10379969
cmpis 3491438
cmpiu 8745588
cmpri 445375
cmprs 40996
cmpsi 3516779
cmpsr 644812
cmpss 1289805
cmpui 8745615
cmpuu 1441014653
divii 13168982
diviiz 0
divirz 0
divisz 0
divriz 0
divrrz 504
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdii 16542310
dvdiiz 5431
dvdis 33520
dvdisz 0
dvdiu 576503
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6812864936
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 164477173
equalis 1025996
equaliu 2916486
equalsi 1026178
equalui 2916488
evalexpo 12774419648
evallg 87068378844
evalprecp 19354653
evalvalp 36274385
evalvalser 21353062
expi 1986224610
expu 776168349
fixlg 104104428
fractor 7353727
gc_NULL 6941145
gc_bool 48096432
gc_const 13951073297
gc_double 176860240
gc_int 2557318
gc_long 223795818
gc_stoi 150827
gc_ulong 29154109
gc_utoi 469045
gc_utoipos 1115779
get_avma 0
icopy 7652073989
icopyspec 114607136
int_bit 21926937
itor 684997173
itos 452007595
itos_or_0 22427640
itou 153890263
itou_or_0 2524535
leafcopy 3505183481
lg2prec 793263028
maxdd 3025687
maxss 9052272409
maxuu 19548110
mindd 251170
minss 1646396354
minuu 9450408
mod16 236256
mod2 52980457
mod2BIL 92809257
mod32 259
mod4 4084378
mod64 0
mod8 12788714
modis 19602389
modisz 0
modsi 45217318
modsiz 0
modss 0
modssz 0
mpabs 760988807
mpabs_shallow 13431420
mpadd 587053113
mpaddz 0
mpaff 658462
mpceil 0
mpcmp 2126064
mpcopy 707
mpdiv 663910
mpexpo 33231900
mpfloor 0
mpmul 838528019
mpmulz 0
mpneg 864079352
mpodd 84260691
mpround 1848110
mpshift 147623635
mpsqr 82480765
mpsub 250143863
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 482708307
muliu 363590612
mulri 34230249
mulriz 0
mulrrz 192514
mulrs 7114592
mulru 2766284
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2335128791
negi 593824872
negr 3526325
new_chunk 84018536400
rcopy 905642929
rdivii 11898565
rdiviiz 11942658
rdivis 0
rdivsi 0
rdivss 839647
real2n 1019550
real_0 775642
real_0_bit 484674720
real_1 126626930
real_1_bit 4478409
real_m1 393
real_m2n 0
remii 2474081036
remiiz 0
remis 0
remisz 0
remlll_pre 81762305
remsi 0
remsiz 0
remss 0
remssz 0
rtor 290486750
sdivsi 100946
sdivsi_rem 51415339
sdivss_rem 0
set_avma 116364712116
setabssign 832821003
shift_left 7129964193
shift_right 5480794222
shiftl 0
shiftlr 0
shiftr 170223908
shiftr_inplace 455022939
smodis 21063940
smodss 6915
stack_calloc 91847
stack_calloc_align 956
stack_malloc 12562354
stack_malloc_align 54686066
stackdummy 3305058846
stoi 717883451
stor 486523333
subii 7506643054
subiiz 28
subir 3011502
subirz 0
subis 169859
subisz 0
subiu 127063436
subri 6004004
subriz 0
subrr 958629056
subrrz 1296706
subrs 15990707
subrsz 0
subsi 5820509
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 131276502
subuu 25067
togglesign 1826909540
togglesign_safe 122244105
truedivii 45919107
truedivis 248138
truedivsi 6197775
uabsdiviu_rem 8349446
uabsdivui_rem 15773
udivuu_rem 158565677
ugcdiu 211492
ugcdui 2737
umodi2n 46430653
umodsu 715993399
umodui 1511727
umuluu_le 5620307
umuluu_or_0 5380492
utoi 10657558331
utoineg 247112552
utoipos 12646515078
utor 13242589
uutoi 7946028390
uutoineg 246673
vali 177697145
varncmp 162310136
varnmax 203
varnmin 0

Generated by: LCOV version 1.14