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 30861-40e9da58f9) Lines: 605 680 89.0 %
Date: 2026-05-04 09:27:01 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 20510
addss 25067
subss 25067
subuu 25067
dvdis 33751
cmprs 40996
cgetr_block 44600
sdivsi 102147
stack_calloc 110688
gc_stoi 155898
dvdui 167195
subis 171738
Fl_ellj_pre 238080
mindd 264386
truedivis 268370
mpdiv 291572
cmpri 303451
mod16 307028
Mod32 311108
uutoineg 362870
Mod16 389733
cgetg_block 424791
gc_utoi 468803
dvdiu 576275
umodui 711392
cmpsr 796213
rdivss 839647
real2n 1068681
addri 1111419
equalis 1151267
equalsi 1151449
gc_utoipos 1153580
real_0 1160590
mpround 1216594
absrnz_equal2n 1302845
cmpss 1392943
Mod8 2073956
mpcmp 2162932
Mod2 2370248
udivuu_rem 2418435
gc_int 2740421
mulru 2766032
subir 3000325
equaliu 3021962
equalui 3021962
itou_or_0 3146620
maxdd 3215624
cmpis 3634243
negr 3695910
cmpsi 3866243
ceildivuu 3904474
Fl_center 4489143
absrnz_equal1 4559216
real_1_bit 4714676
mod4 5141178
subri 6097388
subsi 6184755
truedivsi 6202318
umuluu_or_0 6317078
affsi 6447309
maxuu 6600157
mulrs 7181596
fractor 7389201
umuluu_le 7618608
gc_NULL 7966232
cmpir 9461929
ugcdiu 10318156
affectsign_safe 10729460
uabsdiviu_rem 11892741
addrs 12387594
smodss 12500508
cmpiu 12970248
cmpui 12970274
rdivii 13118029
rdiviiz 13163528
mpabs_shallow 13428463
divii 14030448
utor 14266783
affur 14266878
mod8 15585583
subrs 16567955
dvdii 16900884
Fl_halve 18769047
modis 19638526
int_bit 20967139
smodis 21176102
hammingu 24048744
evalvalser 25308636
abscmpui 32936636
abscmpiu 32936748
mulri 38601657
mpexpo 38874607
absequaliu 39546026
absequalui 41296043
Mod4 43873737
itos_or_0 44886342
modsi 45242142
affui 45491531
Fl_div 46801717
stack_malloc 46932944
umodi2n 49017184
sdivsi_rem 51446755
gc_ulong 51686666
truedivii 54731591
stack_malloc_align 55537214
affrr_fixlg 56155973
gc_bool 56817196
absi_shallow 56987424
mod2 62590761
Fl_addmulmul_pre 64597586
minuu 69724475
remlll_pre 75779468
evalprecp 78675129
evalvalp 81631821
Fl_triple 87566949
mpsqr 90784507
addiu 97979051
Fl_sqr 99490529
addui 102052552
fixlg 105905264
mod2BIL 107450158
mpodd 116095369
icopyspec 118079989
subiu 133459564
real_1 133757224
subui 138436681
mpshift 153491537
togglesign_safe 157283736
dvmduBIL 165816119
itou 179099988
gc_double 184145189
shiftr 188310213
vali 191310245
addis 194834234
varncmp 199749817
gc_long 242716373
mpsub 249747107
utoineg 298343082
cgetineg 299203566
rtor 303885381
addsi 320020980
muliu 373339881
Fl_double 443678781
mulis 467124518
shiftr_inplace 467147414
itos 476278161
addir 483299072
real_0_bit 494593943
affsr 501638273
stor 501942374
mpadd 573906355
negi 641205761
itor 717396729
Fl_neg 729175715
umodsu 734164357
expu 797518702
stoi 799221106
lg2prec 816782437
mpmul 836760842
rcopy 917272955
mpneg 928262376
affii 964783447
subrr 1011295592
cmpuu 1484601728
cgetg_copy 1493530523
cgetr 1878589320
togglesign 1955871575
minss 2030186655
absi 2070448737
mpabs 2141415696
setabssign 2208818267
Fl_sqr_pre 2337890739
nbits2lg 2410037485
expi 2426679937
Fl_mul 2437764962
addrr 2941608503
remii 3061969551
adduu 3449614553
stackdummy 3689972603
Fl_mul_pre 4228919952
leafcopy 5068556662
shift_right 5741754615
Fl_add 6154177190
dvmdsBIL 7158775066
Fl_sub 7409972949
Fl_addmul_pre 7667743989
subii 7719210459
shift_left 7807646561
uutoi 8940672684
icopy 9157588620
maxss 9700740626
utoi 12056827214
addii 12534285744
evalexpo 13430239406
utoipos 14273948924
gc_const 15658666167
cgetipos 16457961726
cgetg 25585314815
cgeti 27489751588
new_chunk 95253920912
evallg 96970340352
set_avma 131510639112

Generated by: LCOV version 1.16