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) Coverage Total Hit
Test: PARI/GP v2.19.0 lcov report (development 31092-e6893b0017) Lines: 88.6 % 690 611
Test Date: 2026-09-27 17:03:06 Functions: 89.9 % 247 222
Legend: Lines:     hit not hit

Function Name Sort by function name Hit count Sort by function 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
mpdiv 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 3311
stack_calloc_align 3325
divmpr 3759
absr 20510
addss 25081
subss 25081
subuu 25081
varnmin 26180
dvdis 33765
cmprs 40996
cgetr_block 44724
sdivsi 102165
stack_calloc 110618
uabsdivui_rem 128885
gc_stoi 155901
dvdui 167545
subis 171754
Fl_ellj_pre 242747
mindd 265751
truedivis 268438
cmpri 303857
mod16 308666
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467893
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857708
real2n 1070094
addri 1113221
equalis 1149812
equalsi 1149994
gc_utoipos 1155325
real_0 1160884
divrmp 1203037
mpround 1216174
cmpss 1416201
subri 1538295
absrnz_equal2n 1580143
cmpir 1730056
stor 2140785
mpcmp 2164578
udivuu_rem 2418435
mulru 2765059
gc_int 2818765
subir 3030806
equaliu 3042339
equalui 3042339
maxdd 3218312
Mod8 3309346
Mod2 3595514
ceildivuu 3917315
negr 3961184
Fl_center 4490059
absrnz_equal1 4559211
real_1_bit 4699193
itou_or_0 5015384
rdivii 5744751
cmpis 6119283
truedivsi 6202318
subsi 6245303
cmpsi 6351282
umuluu_or_0 6354397
affsi 6484838
maxuu 6603111
mulrs 7181596
fractor 7387947
fractor_lg 7389438
mod4 7594958
umuluu_le 7618608
gc_NULL 7911070
ugcdiu 10312781
affectsign_safe 10755174
addrs 12387732
cmpiu 13002599
cmpui 13002599
rdivii_lg 13134315
rdiviiz 13173942
utor 13344636
utor_lg 13344636
affur 13344776
mpabs_shallow 13428274
smodss 13998082
mod8 15676749
divii 16307295
subrs 16573452
dvdii 17072608
modis 19638526
Fl_halve 20604708
int_bit 21008818
smodis 21176116
hammingu 24078774
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30274897
abscmpiu 32514825
abscmpui 32514825
mpexpo 37846354
itos_or_0 44914261
modsi 45242148
absequaliu 45906169
stack_malloc 46736717
absequalui 47655939
affui 47976646
Fl_div 49580841
Mod4 50720945
sdivsi_rem 51446762
gc_ulong 52328756
mulri 53835789
truedivii 54960309
gc_bool 55266292
stack_malloc_align 55671748
affrr_fixlg 56699448
minuu 57536260
umodi2n 58326869
absi_shallow 60578831
mod2 65902622
Fl_addmulmul_pre 74220527
evalprecp 78703540
remlll_pre 79168015
evalvalp 81660143
mpsqr 91852382
Fl_triple 100206614
addiu 101776727
addui 105851298
fixlg 106530750
Fl_sqr 108121203
mod2BIL 113539104
mpodd 118265371
icopyspec 120487088
real_1 133393946
subiu 133454054
subui 138449385
mpshift 153967837
togglesign_safe 157582038
dvmduBIL 173136833
itou 180921772
cgetr 192136334
vali 194758016
addis 195808730
gc_double 199001600
varncmp 218513431
gc_long 243067580
mpsub 274011510
utoineg 300685473
cgetineg 301608233
rtor 308821714
rtor_lg 308826068
cmpuu 318404105
addsi 320997448
shiftr 363958746
muliu 378840357
itor 451924959
mulis 470866372
shiftr_inplace 472698118
itos 477932253
addir 490370733
real_0_bit 499057450
affsr 509053883
stor_lg 509053883
Fl_double 521703165
mpadd 598058305
negi 661589318
umodsu 734415338
itor_lg 739892397
Fl_neg 741584068
stoi 776271402
mpmul 889650988
mpneg 952022728
expu 955689459
affii 1003063065
subrr 1063014849
rcopy 1101974539
cgetg_copy 1490924011
nbits2lg 1676253204
togglesign 1996686451
minss 2044947724
absi 2076482701
mpabs 2118557683
setabssign 2187222662
expi 2476609828
Fl_mul 2549578842
Fl_sqr_pre 2568627610
addrr 3030940400
remii 3103834564
adduu 3540859090
stackdummy 3738985881
Fl_mul_pre 4450242207
leafcopy 5280133934
shift_right 5948029067
Fl_add 6562038666
dvmdsBIL 7387415684
maxss 7472154640
Fl_sub 7689477384
shift_left 7847939275
subii 8008725273
Fl_addmul_pre 8206699718
uutoi 9225632458
icopy 9395883779
utoi 12427985805
addii 13116165982
evalexpo 13969864749
utoipos 14662120552
gc_const 15930068102
cgetipos 16901111162
cgetg 28020233764
cgeti 28634911390
new_chunk 98642651126
evallg 100065584007
set_avma 136025223341

Generated by: LCOV version 2.0-1