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.18.1 lcov report (development 30365-beea1ff998) Lines: 605 680 89.0 %
Date: 2025-07-01 09:21:48 Functions: 214 238 89.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Mod64 0
affectsign 0
divsi_rem 0
divss 0
divss_rem 0
dvdiiz 0
dvdisz 0
dvdiuz 0
dvmdis 0
dvmdsi 0
dvmdss 0
get_avma 0
mod64 0
modss 0
mpceil 0
mpfloor 0
rdivis 0
rdivsi 0
remis 0
remsi 0
remss 0
sdivss_rem 0
shiftl 0
shiftlr 0
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 708
ugcdui 2737
thuemorseu 2851
stack_calloc_align 3300
varnmin 15547
uabsdivui_rem 19089
addss 25067
subss 25067
subuu 25067
dvdis 33912
cmprs 40996
cgetr_block 43477
sdivsi 102148
stack_calloc 110045
gc_stoi 155882
dvdui 167195
subis 170992
Mod32 199255
mod16 236580
Fl_ellj_pre 242779
truedivis 266815
mindd 268637
Mod16 277481
cmpri 282261
uutoineg 355159
cgetg_block 393407
gc_utoi 468579
dvdiu 576572
mpdiv 667714
cmpsr 824661
rdivss 839647
real2n 1061003
addri 1109330
gc_utoipos 1153919
real_0 1155991
equalis 1174419
equalsi 1174602
mpround 1216553
absrnz_equal2n 1288886
umodui 1296416
cmpss 1432792
Mod2 2024379
Mod8 2070299
mpcmp 2227507
gc_int 2574161
mulru 2765822
equaliu 2995228
equalui 2995229
itou_or_0 2996108
subir 3006050
maxdd 3162838
cmpis 3633470
negr 3692538
ceildivuu 3844764
cmpsi 3865420
Fl_center 4030060
absrnz_equal1 4515451
mod4 4684308
real_1_bit 4700810
maxuu 4805044
umuluu_or_0 5545035
umuluu_le 5800680
subri 6084974
subsi 6105002
truedivsi 6202031
affsi 6396450
mulrs 7181596
fractor 7375270
gc_NULL 7975680
cmpir 9438845
cmpui 9658782
cmpiu 9658854
ugcdiu 9987134
affectsign_safe 10737311
uabsdiviu_rem 11892741
addrs 12354054
smodss 12504011
rdivii 13097450
rdiviiz 13140504
mod8 13199435
mpabs_shallow 13428463
utor 13453456
affur 13453554
divii 14054438
dvdii 16489324
subrs 16512737
Fl_halve 18046531
modis 19602559
smodis 21140226
evalvalser 21443016
int_bit 22285146
hammingu 24045245
itos_or_0 24090039
abscmpui 32381620
abscmpiu 32381685
gc_ulong 37187369
mulri 38041347
mpexpo 38840661
absequaliu 39650018
absequalui 41398917
Mod4 44346210
modsi 45223245
affui 45473650
stack_malloc 46484968
Fl_div 46544014
truedivii 46751812
umodi2n 48917838
sdivsi_rem 51427572
gc_bool 51931535
stack_malloc_align 55472026
affrr_fixlg 55887760
absi_shallow 58936104
Fl_addmulmul_pre 59614702
mod2 61083566
minuu 68067059
remlll_pre 75425153
evalprecp 78670097
evalvalp 81626772
mpsqr 90936945
Fl_sqr 94863829
Fl_triple 96386280
addiu 97671603
addui 101175848
mod2BIL 102144364
fixlg 103885680
mpodd 114973348
icopyspec 116491057
togglesign_safe 125059152
subiu 130237548
real_1 131550710
subui 134476575
mpshift 153184883
udivuu_rem 159818229
dvmduBIL 165590221
itou 176159065
shiftr 180377172
addis 181281186
gc_double 182162779
vali 187917462
varncmp 217197630
gc_long 239247050
mpsub 251399627
utoineg 267356442
cgetineg 268213764
rtor 300386516
addsi 306463404
muliu 372459364
itos 458993633
mulis 464044659
Fl_double 475987884
shiftr_inplace 478375314
addir 478837625
real_0_bit 480412891
affsr 495686412
stor 495975370
mpadd 575566189
negi 641578134
Fl_neg 711751103
itor 712495301
umodsu 724065003
stoi 745335420
expu 784191109
lg2prec 806931974
mpmul 838520926
rcopy 904094696
affii 908912402
mpneg 921977111
subrr 1000041512
cmpuu 1440503337
cgetg_copy 1470999697
cgetr 1856935512
togglesign 1926931836
minss 2011694963
absi 2065991517
mpabs 2137226765
Fl_sqr_pre 2158649860
setabssign 2203547601
nbits2lg 2382511830
Fl_mul 2386134137
expi 2455544906
addrr 2878705576
remii 3013497058
adduu 3412690047
stackdummy 3633278731
Fl_mul_pre 4033077585
Fl_add 4348503852
leafcopy 4965333461
shift_right 5661356945
dvmdsBIL 7073824932
Fl_sub 7303949873
Fl_addmul_pre 7615437383
subii 7650557582
shift_left 7745758517
uutoi 8818556113
icopy 9095313732
maxss 9602012663
utoi 11879175909
addii 12374091121
evalexpo 13256345191
utoipos 14236299028
gc_const 15505745654
cgetipos 16418266617
cgetg 24540990147
cgeti 27247228469
new_chunk 93447278241
evallg 95419932889
set_avma 129102547053

Generated by: LCOV version 1.16