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 30317-3ce82218f7) Lines: 588 663 88.7 %
Date: 2025-06-05 09:19:38 Functions: 212 236 89.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4313515015
Fl_addmul_pre 7571651099
Fl_addmulmul_pre 55964136
Fl_center 4023596
Fl_div 46337396
Fl_double 454597633
Fl_ellj_pre 224667
Fl_halve 17008812
Fl_mul 2376428433
Fl_mul_pre 3959010120
Fl_neg 707160018
Fl_sqr 92149770
Fl_sqr_pre 2108159161
Fl_sub 7197303713
Fl_triple 90619061
Mod16 277481
Mod2 2024379
Mod32 199255
Mod4 43901729
Mod64 0
Mod8 2070299
abscmpiu 31544621
abscmpui 31544502
absequaliu 39567238
absequalui 41316137
absi 2052547079
absi_shallow 58113417
absr 140
absrnz_equal1 4515425
absrnz_equal2n 1288484
addii 12320835764
addir 475563659
addis 180558917
addiu 94840307
addri 1103816
addrr 2856078719
addrs 12157909
addsi 305740020
addss 25067
addui 98339315
adduu 3396053432
affectsign 0
affectsign_safe 10724514
affii 908620158
affrr_fixlg 55501350
affsi 6281429
affsr 492967504
affui 45472040
affur 13440258
ceildivuu 3728159
cgetg 24282762884
cgetg_block 388398
cgetg_copy 1456343069
cgeti 27046275502
cgetineg 264139158
cgetipos 16301156891
cgetr 1845374001
cgetr_block 43472
cmpir 9231545
cmpis 3632736
cmpiu 9655946
cmpri 282261
cmprs 40996
cmpsi 3864686
cmpsr 824657
cmpss 1311702
cmpui 9655849
cmpuu 1434868337
divii 14026997
divsi_rem 0
divss 0
divss_rem 0
dvdii 16009416
dvdiiz 0
dvdis 33912
dvdisz 0
dvdiu 576467
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdis 0
dvmdsBIL 7020773309
dvmdsi 0
dvmdss 0
dvmduBIL 165071795
equalis 1096911
equaliu 2955538
equalsi 1097093
equalui 2955538
evalexpo 13165678368
evallg 94680967375
evalprecp 78664764
evalvalp 81621637
evalvalser 21443016
expi 2428993854
expu 779301112
fixlg 103355561
fractor 7375227
gc_NULL 7725397
gc_bool 50768938
gc_const 15430883134
gc_double 180667432
gc_int 2570767
gc_long 238106771
gc_stoi 150800
gc_ulong 36258739
gc_utoi 468552
gc_utoipos 1123713
get_avma 0
icopy 9039292342
icopyspec 115847169
int_bit 21209994
itor 707917006
itos 455831330
itos_or_0 24049039
itou 170803420
itou_or_0 2996082
leafcopy 4921593190
lg2prec 802591262
maxdd 3142737
maxss 9516833883
maxuu 4804774
mindd 258488
minss 2004040132
minuu 66435724
mod16 236293
mod2 60406810
mod2BIL 100940257
mod32 259
mod4 4675844
mod64 0
mod8 12894549
modis 19602559
modsi 45222906
modss 0
mpabs 2122925385
mpabs_shallow 13428463
mpadd 570640458
mpceil 0
mpcmp 2142286
mpcopy 708
mpdiv 664794
mpexpo 38550324
mpfloor 0
mpmul 832642002
mpneg 913383517
mpodd 114067029
mpround 1216541
mpshift 153087395
mpsqr 90150637
mpsub 250485119
mptrunc 49
mulis 463754468
muliu 371069522
mulri 37886241
mulrs 7181596
mulru 2765822
nbits2lg 2365771730
negi 635148617
negr 3573642
new_chunk 92743551335
rcopy 894979830
rdivii 13097139
rdiviiz 13142704
rdivis 0
rdivsi 0
rdivss 839647
real2n 1060279
real_0 1064252
real_0_bit 475209267
real_1 130541453
real_1_bit 4699484
real_m1 455
real_m2n 126
remii 2986527240
remis 0
remlll_pre 75051162
remsi 0
remss 0
rtor 298458938
sdivsi 102151
sdivsi_rem 51427233
sdivss_rem 0
set_avma 128143695122
setabssign 2189051125
shift_left 7699628794
shift_right 5624726267
shiftl 0
shiftlr 0
shiftr 178738001
shiftr_inplace 476692074
smodis 21140226
smodss 12545143
stack_calloc 109156
stack_calloc_align 3300
stack_malloc 45919015
stack_malloc_align 54712634
stackdummy 3600126753
stoi 744204057
stor 493251554
subii 7616941478
subir 3003688
subis 170899
subiu 128845037
subri 6048101
subrr 993241274
subrs 16315375
subsi 5913099
subss 25067
subui 133017925
subuu 25067
togglesign 1909455924
togglesign_safe 124504816
truedivii 46006645
truedivis 248411
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 19089
udivuu_rem 158896847
ugcdiu 9981184
ugcdui 2737
umodi2n 48473122
umodsu 721099870
umodui 1296248
umuluu_le 5800680
umuluu_or_0 5496060
utoi 11814824042
utoineg 263285573
utoipos 14134609572
utor 13440136
uutoi 8768205697
uutoineg 356048
vali 186105755
varncmp 216727486
varnmax 203
varnmin 15547

Generated by: LCOV version 1.16