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 30318-7d854b8994) Lines: 588 663 88.7 %
Date: 2025-06-06 09:19:58 Functions: 212 236 89.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4309623677
Fl_addmul_pre 7561197716
Fl_addmulmul_pre 55967026
Fl_center 4023599
Fl_div 46299821
Fl_double 454024562
Fl_ellj_pre 224678
Fl_halve 16997364
Fl_mul 2377322636
Fl_mul_pre 3954348656
Fl_neg 707141122
Fl_sqr 92117142
Fl_sqr_pre 2105132235
Fl_sub 7209341972
Fl_triple 90451552
Mod16 277481
Mod2 2024379
Mod32 199255
Mod4 43903546
Mod64 0
Mod8 2070299
abscmpiu 32220470
abscmpui 32220373
absequaliu 39567236
absequalui 41316143
absi 2052667497
absi_shallow 58789437
absr 140
absrnz_equal1 4515503
absrnz_equal2n 1288494
addii 12316630688
addir 475556051
addis 180563096
addiu 96192960
addri 1103780
addrr 2855948343
addrs 12158046
addsi 305746207
addss 25067
addui 99691997
adduu 3393580165
affectsign 0
affectsign_safe 10724441
affii 908405582
affrr_fixlg 55501300
affsi 6281330
affsr 492930995
affui 45472039
affur 13440175
ceildivuu 3727230
cgetg 24288808323
cgetg_block 388395
cgetg_copy 1456329544
cgeti 27046223312
cgetineg 264137191
cgetipos 16294520839
cgetr 1845373800
cgetr_block 43442
cmpir 9231758
cmpis 3632711
cmpiu 9654617
cmpri 282261
cmprs 40996
cmpsi 3864664
cmpsr 824648
cmpss 1311702
cmpui 9654557
cmpuu 1434866336
divii 14027743
divsi_rem 0
divss 0
divss_rem 0
dvdii 16021340
dvdiiz 0
dvdis 33912
dvdisz 0
dvdiu 576461
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdis 0
dvmdsBIL 7020502302
dvmdsi 0
dvmdss 0
dvmduBIL 165025242
equalis 1096965
equaliu 2955542
equalsi 1097147
equalui 2955543
evalexpo 13164566694
evallg 94688055466
evalprecp 78664246
evalvalp 81620909
evalvalser 21443016
expi 2428690757
expu 779271294
fixlg 103355021
fractor 7375210
gc_NULL 7725325
gc_bool 50779186
gc_const 15431046057
gc_double 180639744
gc_int 2570725
gc_long 238109097
gc_stoi 150799
gc_ulong 36245063
gc_utoi 468560
gc_utoipos 1123679
get_avma 0
icopy 9038258493
icopyspec 115847409
int_bit 21181781
itor 707956502
itos 455825900
itos_or_0 24049039
itou 170803782
itou_or_0 2996090
leafcopy 4921643621
lg2prec 802595474
maxdd 3142873
maxss 9530026547
maxuu 4804845
mindd 258485
minss 2003924255
minuu 66196854
mod16 236294
mod2 60406292
mod2BIL 100937162
mod32 259
mod4 4675846
mod64 0
mod8 12893764
modis 19602559
modsi 45222832
modss 0
mpabs 2123046159
mpabs_shallow 13428463
mpadd 570619007
mpceil 0
mpcmp 2142324
mpcopy 708
mpdiv 664792
mpexpo 38553253
mpfloor 0
mpmul 832664504
mpneg 913328472
mpodd 114066085
mpround 1216525
mpshift 153103904
mpsqr 90158682
mpsub 250538659
mptrunc 49
mulis 463731748
muliu 370929657
mulri 37886408
mulrs 7181596
mulru 2765822
nbits2lg 2365793497
negi 635103612
negr 3573558
new_chunk 92755429419
rcopy 894961401
rdivii 13097018
rdiviiz 13141545
rdivis 0
rdivsi 0
rdivss 839647
real2n 1060274
real_0 1064260
real_0_bit 475088429
real_1 130545433
real_1_bit 4699311
real_m1 455
real_m2n 126
remii 2986103383
remis 0
remlll_pre 75023842
remsi 0
remss 0
rtor 298454139
sdivsi 102150
sdivsi_rem 51427167
sdivss_rem 0
set_avma 128162293102
setabssign 2189177397
shift_left 7699534447
shift_right 5624491144
shiftl 0
shiftlr 0
shiftr 178740999
shiftr_inplace 476710611
smodis 21140226
smodss 12589289
stack_calloc 109150
stack_calloc_align 3300
stack_malloc 45919104
stack_malloc_align 54716016
stackdummy 3603606556
stoi 743742878
stor 493220572
subii 7616667319
subir 3003661
subis 170899
subiu 128844366
subri 6054945
subrr 993219965
subrs 16315537
subsi 5913058
subss 25067
subui 133017108
subuu 25067
togglesign 1909388191
togglesign_safe 124495881
truedivii 46003106
truedivis 248423
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 19089
udivuu_rem 158896846
ugcdiu 9980986
ugcdui 2737
umodi2n 48475230
umodsu 721080130
umodui 1296248
umuluu_le 5800680
umuluu_or_0 5511580
utoi 11806656185
utoineg 263282990
utoipos 14127672835
utor 13440062
uutoi 8763972544
uutoineg 355998
vali 186105850
varncmp 216727385
varnmax 203
varnmin 15547

Generated by: LCOV version 1.16