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-04-18 08:07:12 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
dvdsi 371
real_m1 393
divrrz 504
mpcopy 707
stack_calloc_align 956
ugcdui 2737
dvdiiz 5431
smodss 6912
uabsdivui_rem 15773
addss 25067
subss 25067
subuu 25067
cgetr_block 32422
dvdis 33520
cmprs 40996
stack_calloc 91845
sdivsi 100947
gc_stoi 150823
dvdui 167195
subis 169860
Mod32 183225
mulrrz 192514
ugcdiu 211595
Fl_ellj_pre 219815
mod16 236257
uutoineg 246161
truedivis 248118
mindd 251165
Mod16 260401
affiz 266760
cgetg_block 363866
cmpri 445373
gc_utoi 469010
dvdiu 576500
cmpsr 644812
mpaff 658462
mpdiv 663954
real_0 775651
rdivss 839647
real2n 1019554
equalis 1024169
equalsi 1024352
addri 1098753
gc_utoipos 1115775
cmpss 1289805
subrrz 1296706
addrrz 1307078
absrnz_equal2n 1345487
umodui 1511727
Mod2 1717695
Mod8 1780954
mpround 1848109
ceildivuu 2013506
mpcmp 2126067
itou_or_0 2524543
gc_int 2557297
mulru 2766284
equaliu 2916487
equalui 2916488
subir 3011473
maxdd 3024732
cmpis 3491395
cmpsi 3516739
negr 3526245
Fl_center 3928664
mod4 4084386
absrnz_equal1 4205953
real_1_bit 4478570
umuluu_or_0 5378364
umuluu_le 5620307
subsi 5820515
affsi 5926898
subri 6009986
truedivsi 6197775
gc_NULL 6941083
mulrs 7114592
fractor 7353751
uabsdiviu_rem 8349446
cmpiu 8744519
cmpui 8744536
minuu 9449850
affectsign_safe 9996622
cmpir 10413629
rdivii 11898206
rdiviiz 11942517
addrs 12005335
stack_malloc 12561846
mod8 12787668
divii 13177608
utor 13242610
affur 13242704
mpabs_shallow 13431420
subrs 15987427
dvdii 16541786
Fl_halve 16879994
evalprecp 19354690
maxuu 19546962
modis 19602389
smodis 21063940
evalvalser 21353062
int_bit 21922902
itos_or_0 22427631
gc_ulong 29139427
Fl_div 33051318
mpexpo 33215936
abscmpiu 34109013
abscmpui 34109200
mulri 34230189
evalvalp 36274300
absequaliu 39879284
absequalui 41604679
Mod4 42488430
affui 44603025
modsi 45217317
truedivii 45912646
umodi2n 46430871
gc_bool 48094974
absi_shallow 50482180
sdivsi_rem 51415337
mod2 52980264
stack_malloc_align 54675790
Fl_addmulmul_pre 55562491
affrr_fixlg 56508679
remlll_pre 81731517
mpsqr 82486963
mpodd 84259997
Fl_triple 88668681
addiu 92183259
mod2BIL 92812954
addui 95464018
Fl_sqr 96575647
fixlg 104099681
icopyspec 114606177
togglesign_safe 122249980
real_1 126611549
subiu 127055005
subui 131267855
mpshift 147633877
itou 153883666
udivuu_rem 158565677
varncmp 162309209
dvmduBIL 164225444
shiftr 170217352
addis 170787942
gc_double 176832503
vali 177695023
gc_long 223793846
utoineg 247107064
cgetineg 247953716
mpsub 250262783
rtor 290476816
addsi 295958596
muliu 363564553
Fl_double 440473395
itos 451982486
shiftr_inplace 454985801
addir 472791655
mulis 482716941
affsr 486189278
stor 486534829
real_0_bit 487538136
affii 588120121
mpadd 589981116
negi 593811071
itor 684957750
absi 691472320
Fl_neg 697568591
umodsu 715976461
stoi 717633919
mpabs 760974486
expu 776159653
lg2prec 793193448
setabssign 832805456
mpmul 841571062
mpneg 864067448
rcopy 905086381
subrr 958737329
cgetg_copy 1221413034
cmpuu 1440987574
minss 1646484012
cgetr 1801489100
togglesign 1826699522
expi 1986297875
Fl_sqr_pre 1992682628
Fl_mul 2264168695
nbits2lg 2337779904
remii 2474232641
addrr 2826768683
adduu 3126614516
stackdummy 3309946933
Fl_mul_pre 3333127443
leafcopy 3504317830
Fl_add 4077375944
shift_right 5480255228
Fl_sub 6743802640
dvmdsBIL 6812416042
Fl_addmul_pre 7075513962
shift_left 7129480669
subii 7506468541
icopy 7651858013
uutoi 7948460464
maxss 9072748042
addii 10323181851
utoi 10661655007
utoipos 12650399055
evalexpo 12775424264
gc_const 13950833471
cgetipos 14569238317
cgetg 23263189480
cgeti 24448191626
new_chunk 84037755606
evallg 87095472430
set_avma 116391697298

Generated by: LCOV version 1.14