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 30773-2078653b96) Lines: 605 680 89.0 %
Date: 2026-04-01 09:27:34 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
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 665
ugcdui 2737
thuemorseu 3313
stack_calloc_align 3325
varnmin 10374
uabsdivui_rem 16693
absr 19040
addss 25067
subss 25067
subuu 25067
dvdis 33737
cmprs 40996
cgetr_block 44251
sdivsi 102150
stack_calloc 110671
gc_stoi 155902
dvdui 167195
subis 171739
Fl_ellj_pre 238032
mindd 264383
truedivis 268371
cmpri 284263
mod16 307027
Mod32 311108
uutoineg 362669
Mod16 389733
cgetg_block 426423
gc_utoi 468784
dvdiu 576278
mpdiv 665519
umodui 711392
cmpsr 796105
rdivss 839647
real2n 1068597
addri 1106276
equalis 1151130
equalsi 1151312
gc_utoipos 1153590
real_0 1157699
mpround 1216580
absrnz_equal2n 1300281
cmpss 1392943
Mod8 2074003
mpcmp 2226344
Mod2 2370186
udivuu_rem 2418379
gc_int 2742561
mulru 2765892
subir 3004976
equaliu 3021714
equalui 3021717
itou_or_0 3147015
maxdd 3211418
cmpis 3634572
negr 3682580
cmpsi 3866569
ceildivuu 3903912
Fl_center 4486139
absrnz_equal1 4553922
real_1_bit 4714009
mod4 5140741
subri 6097636
subsi 6184583
truedivsi 6202031
umuluu_or_0 6279860
affsi 6446249
maxuu 6611170
mulrs 7181596
fractor 7379020
umuluu_le 7617880
gc_NULL 7963149
cmpir 9441989
ugcdiu 10320731
affectsign_safe 10729628
uabsdiviu_rem 11892741
addrs 12360939
smodss 12437572
cmpiu 12982661
cmpui 12982766
rdivii 13107453
rdiviiz 13150190
mpabs_shallow 13428463
divii 14053369
utor 14335042
affur 14335141
mod8 15588865
subrs 16536202
dvdii 16899157
Fl_halve 18770187
modis 19638526
int_bit 20915038
smodis 21176088
hammingu 24048647
evalvalser 24359582
abscmpiu 32828327
abscmpui 32828493
mulri 38284750
mpexpo 38875907
absequaliu 39546807
absequalui 41296830
Mod4 43850404
itos_or_0 44911903
modsi 45242134
affui 45491532
Fl_div 46834041
stack_malloc 46929401
umodi2n 48993435
sdivsi_rem 51446461
gc_ulong 52072533
truedivii 54748795
stack_malloc_align 55534969
affrr_fixlg 56108603
gc_bool 56775546
absi_shallow 56881769
mod2 62590187
Fl_addmulmul_pre 64598063
minuu 69615410
remlll_pre 75739367
evalprecp 78668830
evalvalp 81625515
Fl_triple 87295652
mpsqr 91030276
addiu 97722244
Fl_sqr 99471698
addui 101797294
fixlg 105719359
mod2BIL 107449918
mpodd 116093430
icopyspec 117797493
subiu 133393810
real_1 133642522
subui 138369521
mpshift 153536276
togglesign_safe 157292905
dvmduBIL 165730020
itou 179080721
gc_double 184199953
shiftr 187930695
vali 190833255
addis 194718389
varncmp 198760069
gc_long 242624588
mpsub 251598010
utoineg 297828876
cgetineg 298689341
rtor 303766454
addsi 319905623
muliu 373181690
Fl_double 442330242
mulis 467127947
shiftr_inplace 467254789
itos 476330022
real_0_bit 482183511
addir 483067895
affsr 501205528
stor 501628089
mpadd 572837498
negi 640852600
itor 716794790
Fl_neg 729382360
umodsu 734173652
expu 796863554
stoi 798927449
lg2prec 815738074
mpmul 837048161
rcopy 916818753
mpneg 926512700
affii 964647486
subrr 1006420622
cgetg_copy 1490163505
cmpuu 1490490891
cgetr 1875898443
togglesign 1953606713
minss 2026774085
absi 2067140688
mpabs 2138087692
setabssign 2205150193
Fl_sqr_pre 2336391841
nbits2lg 2402790312
expi 2424710836
Fl_mul 2439251256
addrr 2931796430
remii 3061517140
adduu 3448982132
stackdummy 3685795920
Fl_mul_pre 4223650906
leafcopy 5061941951
shift_right 5734525211
Fl_add 6154066667
dvmdsBIL 7151323728
Fl_sub 7399616978
Fl_addmul_pre 7676518613
subii 7718854085
shift_left 7796906116
uutoi 8937233060
icopy 9153169427
maxss 9709071996
utoi 12053393113
addii 12534998398
evalexpo 13394442792
utoipos 14271468171
gc_const 15647683669
cgetipos 16460902987
cgetg 25532237335
cgeti 27475510597
new_chunk 95144918343
evallg 96862346600
set_avma 131374515573

Generated by: LCOV version 1.16