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-29 08:06:26 Functions: 218 285 76.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4079149949
Fl_addmul_pre 7069228452
Fl_addmulmul_pre 55559674
Fl_center 3928665
Fl_div 33050170
Fl_double 440387767
Fl_ellj_pre 219842
Fl_halve 16887756
Fl_mul 2263061157
Fl_mul_pre 3329388481
Fl_neg 697575116
Fl_sqr 96600889
Fl_sqr_pre 1993517519
Fl_sub 6730502458
Fl_triple 88657552
Mod16 260401
Mod2 1717695
Mod32 183225
Mod4 42484168
Mod64 0
Mod8 1780954
abscmpiu 33623429
abscmpui 33623579
absequaliu 39879275
absequalui 41604674
absi 691411304
absi_shallow 49995811
absr 140
absrnz_equal1 4205834
absrnz_equal2n 1345472
addii 10320937213
addiiz 0
addir 472735704
addirz 0
addis 170791166
addiu 91200970
addri 1098630
addriz 0
addrr 2830547777
addrrz 1307078
addrs 12006220
addsi 295962010
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 94481991
adduu 3124829273
affectsign 0
affectsign_safe 9996369
affii 588114964
affiz 266760
affrr_fixlg 56509265
affsi 5926768
affsr 486179771
affsz 0
affui 44603024
affur 13242743
ceildivuu 2015087
cgetg 23264487448
cgetg_block 363857
cgetg_copy 1221408631
cgeti 24441046408
cgetineg 247953328
cgetipos 14563293653
cgetr 1801091717
cgetr_block 32380
cmpir 10442656
cmpis 3491402
cmpiu 8744034
cmpri 445384
cmprs 40996
cmpsi 3516744
cmpsr 644812
cmpss 1289805
cmpui 8744047
cmpuu 1440989753
divii 13154326
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 16539082
dvdiiz 5431
dvdis 33520
dvdisz 0
dvdiu 576507
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6812005554
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 164256281
equalis 1024594
equaliu 2916502
equalsi 1024776
equalui 2916507
evalexpo 12777887027
evallg 87081220169
evalprecp 19354465
evalvalp 36274080
evalvalser 21353062
expi 1986087842
expu 776140716
fixlg 104100120
fractor 7353740
gc_NULL 6941235
gc_bool 48090977
gc_const 13951064158
gc_double 176739394
gc_int 2557309
gc_long 223794388
gc_stoi 150826
gc_ulong 29158950
gc_utoi 468961
gc_utoipos 1115782
get_avma 0
icopy 7651532294
icopyspec 114605620
int_bit 21939146
itor 684718273
itos 451897694
itos_or_0 22427752
itou 153885348
itou_or_0 2524543
leafcopy 3504269515
lg2prec 793089420
maxdd 3024645
maxss 9059338892
maxuu 19547217
mindd 251163
minss 1646232705
minuu 9449922
mod16 236259
mod2 52980330
mod2BIL 92810311
mod32 259
mod4 4084385
mod64 0
mod8 12787098
modis 19602389
modisz 0
modsi 45217362
modsiz 0
modss 0
modssz 0
mpabs 760960248
mpabs_shallow 13431420
mpadd 593925303
mpaddz 0
mpaff 658462
mpceil 0
mpcmp 2126039
mpcopy 707
mpdiv 663925
mpexpo 33214822
mpfloor 0
mpmul 845441486
mpmulz 0
mpneg 863994401
mpodd 84260352
mpround 1848103
mpshift 147620552
mpsqr 82493726
mpsub 250190722
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 482692062
muliu 363629052
mulri 34230426
mulriz 0
mulrrz 192514
mulrs 7114592
mulru 2766284
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2341055067
negi 593768334
negr 3526374
new_chunk 84036263535
rcopy 905073407
rdivii 11897962
rdiviiz 11942290
rdivis 0
rdivsi 0
rdivss 839647
real2n 1019565
real_0 775653
real_0_bit 492064110
real_1 126543928
real_1_bit 4478450
real_m1 393
real_m2n 0
remii 2474303681
remiiz 0
remis 0
remisz 0
remlll_pre 81800975
remsi 0
remsiz 0
remss 0
remssz 0
rtor 290477387
sdivsi 100945
sdivsi_rem 51415383
sdivss_rem 0
set_avma 116387044980
setabssign 832786801
shift_left 7128692427
shift_right 5479946467
shiftl 0
shiftlr 0
shiftr 170207918
shiftr_inplace 454984839
smodis 21063940
smodss 6913
stack_calloc 91853
stack_calloc_align 956
stack_malloc 12561927
stack_malloc_align 54673092
stackdummy 3307050077
stoi 717719362
stor 486529776
subii 7506043841
subiiz 28
subir 3011489
subirz 0
subis 169858
subisz 0
subiu 127056666
subri 5906602
subriz 0
subrr 958666200
subrrz 1296706
subrs 15988235
subrsz 0
subsi 5820523
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 131269639
subuu 25067
togglesign 1826517424
togglesign_safe 122233549
truedivii 45850679
truedivis 248123
truedivsi 6197775
uabsdiviu_rem 8349446
uabsdivui_rem 15773
udivuu_rem 158565677
ugcdiu 211173
ugcdui 2737
umodi2n 46426646
umodsu 716000063
umodui 1511727
umuluu_le 5620307
umuluu_or_0 5380063
utoi 10655869303
utoineg 247106626
utoipos 12644679765
utor 13242643
uutoi 7944263317
uutoineg 246464
vali 177694778
varncmp 162309495
varnmax 203
varnmin 0

Generated by: LCOV version 1.14