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-08-15 17:02:54 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 44721
sdivsi 102165
stack_calloc 110628
uabsdivui_rem 128885
gc_stoi 155904
dvdui 167545
subis 171754
Fl_ellj_pre 242716
mindd 265750
truedivis 268438
cmpri 303856
mod16 308662
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467783
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857705
real2n 1070088
addri 1113223
equalis 1149746
equalsi 1149928
gc_utoipos 1155325
real_0 1160900
divrmp 1203052
mpround 1216171
cmpss 1416201
subri 1538272
absrnz_equal2n 1580223
cmpir 1730010
stor 2140784
mpcmp 2164525
udivuu_rem 2418435
mulru 2765059
gc_int 2818782
subir 3030801
equaliu 3042339
equalui 3042339
maxdd 3218088
Mod8 3309346
Mod2 3595514
ceildivuu 3916770
negr 3961190
Fl_center 4490059
absrnz_equal1 4559224
real_1_bit 4699130
itou_or_0 5015383
rdivii 5744744
cmpis 6119306
truedivsi 6202318
subsi 6244790
umuluu_or_0 6349300
cmpsi 6351305
affsi 6484770
maxuu 6603110
mulrs 7181596
fractor 7387948
fractor_lg 7389439
mod4 7594956
umuluu_le 7618608
gc_NULL 7911980
ugcdiu 10312796
affectsign_safe 10754891
addrs 12387597
cmpiu 13000195
cmpui 13000195
rdivii_lg 13134309
rdiviiz 13173936
utor 13344627
utor_lg 13344627
affur 13344767
mpabs_shallow 13428274
smodss 13998082
mod8 15673609
divii 16299032
subrs 16573235
dvdii 17072403
modis 19638526
Fl_halve 20604957
int_bit 21015730
smodis 21176116
hammingu 24078742
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30275830
abscmpiu 33534405
abscmpui 33534405
mpexpo 37845523
itos_or_0 44914236
modsi 45242143
absequaliu 45906172
stack_malloc 46736502
absequalui 47655942
affui 47976646
Fl_div 49581353
Mod4 50718975
sdivsi_rem 51446757
gc_ulong 52329636
mulri 53835790
truedivii 54901637
gc_bool 55261962
stack_malloc_align 55670147
affrr_fixlg 56699207
minuu 57568285
umodi2n 58324899
absi_shallow 61597959
mod2 65902721
Fl_addmulmul_pre 74211424
evalprecp 78703542
remlll_pre 79167995
evalvalp 81660145
mpsqr 91858363
Fl_triple 100165434
addiu 103816589
fixlg 106530559
addui 107891160
Fl_sqr 108115541
mod2BIL 113535923
mpodd 118265643
icopyspec 120486428
real_1 133392530
subiu 133455144
subui 138450476
mpshift 153966112
togglesign_safe 157546307
dvmduBIL 170507039
itou 180921936
cgetr 192135538
vali 194748840
addis 195801248
gc_double 198969854
varncmp 218513211
gc_long 243061012
mpsub 273985453
utoineg 300668514
cgetineg 301591275
rtor 308820663
rtor_lg 308825017
cmpuu 318396336
addsi 320989966
shiftr 363948056
muliu 378881191
itor 451882210
mulis 470856925
shiftr_inplace 472695776
itos 477849879
addir 490340776
real_0_bit 501081636
affsr 509053161
stor_lg 509053161
Fl_double 521619649
mpadd 599834771
negi 661628467
umodsu 734405677
itor_lg 739838246
Fl_neg 741562425
stoi 776330588
mpmul 891408495
mpneg 952047017
expu 955678938
affii 1002981224
subrr 1062988844
rcopy 1101916000
cgetg_copy 1490907748
nbits2lg 1677876463
togglesign 1996630297
minss 2044959562
absi 2076460290
mpabs 2118530823
setabssign 2187194506
expi 2476536882
Fl_mul 2551531184
Fl_sqr_pre 2568103943
addrr 3032586280
remii 3104090886
adduu 3542666893
stackdummy 3743990719
Fl_mul_pre 4448714363
leafcopy 5279206609
shift_right 5947800597
Fl_add 6561519659
dvmdsBIL 7387226371
maxss 7491800963
Fl_sub 7709071619
shift_left 7847729392
subii 8008806639
Fl_addmul_pre 8205565349
uutoi 9226859190
icopy 9395663922
utoi 12431102919
addii 13115454816
evalexpo 13971335128
utoipos 14665164501
gc_const 15930252397
cgetipos 16904123917
cgetg 28034801077
cgeti 28638383809
new_chunk 98658584117
evallg 100091015883
set_avma 136047676575

Generated by: LCOV version 2.0-1