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 30584-b9873745ba) Lines: 605 680 89.0 %
Date: 2025-12-21 09:21:02 Functions: 214 238 89.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4393890883
Fl_addmul_pre 7660245158
Fl_addmulmul_pre 64577176
Fl_center 4486142
Fl_div 46507896
Fl_double 468294262
Fl_ellj_pre 237657
Fl_halve 18769152
Fl_mul 2418847260
Fl_mul_pre 4089662616
Fl_neg 719182133
Fl_sqr 95872567
Fl_sqr_pre 2171521965
Fl_sub 7263039421
Fl_triple 94300409
Mod16 389733
Mod2 2479274
Mod32 311108
Mod4 43740041
Mod64 0
Mod8 2073984
abscmpiu 32386587
abscmpui 32386621
absequaliu 39660895
absequalui 41409807
absi 2067655399
absi_shallow 57427978
absr 140
absrnz_equal1 4520451
absrnz_equal2n 1292681
addii 12407868260
addir 480510364
addis 181581199
addiu 95438102
addri 1105772
addrr 2876559742
addrs 12305537
addsi 306766265
addss 25067
addui 99082095
adduu 3411578693
affectsign 0
affectsign_safe 10727391
affii 910323882
affrr_fixlg 54653356
affsi 6370979
affsr 486143954
affui 45473824
affur 13461908
ceildivuu 3877865
cgetg 24528452873
cgetg_block 407064
cgetg_copy 1479990923
cgeti 27094088343
cgetineg 294609387
cgetipos 16307786162
cgetr 1838791890
cgetr_block 43781
cmpir 9431374
cmpis 3634877
cmpiu 10117699
cmpri 282310
cmprs 40996
cmpsi 3866874
cmpsr 796105
cmpss 1378477
cmpui 10117713
cmpuu 1492641741
divii 14046394
divsi_rem 0
divss 0
divss_rem 0
dvdii 16567004
dvdiiz 0
dvdis 33709
dvdisz 0
dvdiu 576417
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdis 0
dvmdsBIL 7004841987
dvmdsi 0
dvmdss 0
dvmduBIL 165606660
equalis 1181810
equaliu 3018196
equalsi 1181992
equalui 3018197
evalexpo 13129032364
evallg 95140500742
evalprecp 78666537
evalvalp 81623213
evalvalser 21527935
expi 2445894315
expu 775238010
fixlg 104196119
fractor 7376767
gc_NULL 7960458
gc_bool 51993161
gc_const 15490513119
gc_double 184177641
gc_int 2570048
gc_long 242225382
gc_stoi 155885
gc_ulong 52096766
gc_utoi 468571
gc_utoipos 1153495
get_avma 0
hammingu 24048309
icopy 9053344441
icopyspec 117080710
int_bit 20952977
itor 713353442
itos 462092871
itos_or_0 43598392
itou 177595599
itou_or_0 3041672
leafcopy 4972645627
lg2prec 798329181
maxdd 3177276
maxss 9700803205
maxuu 4815233
mindd 263989
minss 2008819077
minuu 69038052
mod16 241097
mod2 61110965
mod2BIL 103141896
mod32 259
mod4 4932531
mod64 0
mod8 13154897
modis 19638526
modsi 45225529
modss 0
mpabs 2138422687
mpabs_shallow 13428463
mpadd 574421762
mpceil 0
mpcmp 2225742
mpcopy 665
mpdiv 665626
mpexpo 38873636
mpfloor 0
mpmul 837587757
mpneg 916665408
mpodd 115074738
mpround 1216581
mpshift 153142020
mpsqr 91015582
mpsub 251531448
mptrunc 49
mulis 464505238
muliu 371889543
mulri 38033578
mulrs 7181596
mulru 2765892
nbits2lg 2365291440
negi 636749090
negr 3671210
new_chunk 93182940408
rcopy 903143763
rdivii 13100693
rdiviiz 13146385
rdivis 0
rdivsi 0
rdivss 839647
real2n 1067020
real_0 1156395
real_0_bit 479236417
real_1 129806865
real_1_bit 4704780
real_m1 455
real_m2n 126
remii 3005022468
remis 0
remlll_pre 75727512
remsi 0
remss 0
rtor 295244379
sdivsi 102149
sdivsi_rem 51429856
sdivss_rem 0
set_avma 128887886912
setabssign 2205092045
shift_left 7673953243
shift_right 5627504027
shiftl 0
shiftlr 0
shiftr 177972810
shiftr_inplace 464042283
smodis 21176060
smodss 12482161
stack_calloc 110342
stack_calloc_align 3307
stack_malloc 46626968
stack_malloc_align 55491021
stackdummy 3639223772
stoi 772579715
stor 486433493
subii 7655771894
subir 3005089
subis 170919
subiu 131487226
subri 6121436
subrr 1000139023
subrs 16475903
subsi 6087380
subss 25067
subui 136458517
subuu 25067
thuemorseu 2851
togglesign 1910902408
togglesign_safe 125605093
truedivii 47014902
truedivis 266939
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 16693
udivuu_rem 2416412
ugcdiu 10105509
ugcdui 2737
umodi2n 48992629
umodsu 723926188
umodui 1296275
umuluu_le 5803291
umuluu_or_0 5538120
utoi 11904100761
utoineg 293747264
utoipos 14145745243
utor 13461794
uutoi 8812238377
uutoineg 362550
vali 190311774
varncmp 217208458
varnmax 203
varnmin 15547

Generated by: LCOV version 1.16