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-07 17:02:37 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 110646
uabsdivui_rem 128885
gc_stoi 155898
dvdui 167545
subis 171754
Fl_ellj_pre 242740
mindd 265753
truedivis 268440
cmpri 303857
mod16 308662
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467847
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857708
real2n 1070090
addri 1113223
equalis 1149729
equalsi 1149911
gc_utoipos 1155321
real_0 1160882
divrmp 1203052
mpround 1216191
cmpss 1416201
subri 1538285
absrnz_equal2n 1580189
cmpir 1730025
stor 2140785
mpcmp 2164546
udivuu_rem 2418435
mulru 2765059
gc_int 2818775
subir 3030807
equaliu 3042337
equalui 3042337
maxdd 3218298
Mod8 3309346
Mod2 3595514
ceildivuu 3918162
negr 3961201
Fl_center 4490059
absrnz_equal1 4559221
real_1_bit 4699135
itou_or_0 5015381
rdivii 5744753
cmpis 6119302
truedivsi 6202318
subsi 6245137
umuluu_or_0 6327425
cmpsi 6351301
affsi 6484781
maxuu 6603107
mulrs 7181596
fractor 7387949
fractor_lg 7389440
mod4 7594956
umuluu_le 7618608
gc_NULL 7911531
ugcdiu 10312787
affectsign_safe 10755183
addrs 12387752
cmpiu 13001179
cmpui 13001179
rdivii_lg 13134319
rdiviiz 13173946
utor 13344622
utor_lg 13344622
affur 13344762
mpabs_shallow 13428274
smodss 13998082
mod8 15674957
divii 16305380
subrs 16573400
dvdii 17072624
modis 19638526
Fl_halve 20604818
int_bit 21041689
smodis 21176116
hammingu 24078747
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30274129
abscmpiu 33950488
abscmpui 33950488
mpexpo 37845927
itos_or_0 44914242
modsi 45242198
absequaliu 45906166
stack_malloc 46736597
absequalui 47655936
affui 47976646
Fl_div 49583797
Mod4 50720465
sdivsi_rem 51446812
gc_ulong 52330007
mulri 53835782
truedivii 54936212
gc_bool 55262672
stack_malloc_align 55671361
affrr_fixlg 56699504
minuu 57540931
umodi2n 58326389
absi_shallow 62014193
mod2 65902572
Fl_addmulmul_pre 74215825
evalprecp 78703538
remlll_pre 79167996
evalvalp 81660141
mpsqr 91849112
Fl_triple 100276025
addiu 104649367
fixlg 106530804
Fl_sqr 108120335
addui 108723937
mod2BIL 113537188
mpodd 118265538
icopyspec 120487090
real_1 133394085
subiu 133454074
subui 138449403
mpshift 153971081
togglesign_safe 157553482
dvmduBIL 173067155
itou 180921684
cgetr 192136444
vali 194756339
addis 195802139
gc_double 199000361
varncmp 218513252
gc_long 243066946
mpsub 273975559
utoineg 300676231
cgetineg 301598991
rtor 308825171
rtor_lg 308829525
cmpuu 318404397
addsi 320990857
shiftr 363964258
muliu 379031607
itor 451910586
mulis 470855040
shiftr_inplace 472698824
itos 477898482
addir 490364257
real_0_bit 499038846
affsr 509054366
stor_lg 509054366
Fl_double 521841551
mpadd 598007643
negi 661589054
umodsu 734435083
itor_lg 739877224
Fl_neg 741571417
stoi 776279332
mpmul 889562087
mpneg 952022807
expu 955695959
affii 1002972212
subrr 1062992248
rcopy 1101973228
cgetg_copy 1490916124
nbits2lg 1676191570
togglesign 1996645269
minss 2044942006
absi 2076486641
mpabs 2118560238
setabssign 2187224929
expi 2476548793
Fl_mul 2552374846
Fl_sqr_pre 2569499147
addrr 3030895540
remii 3105348876
adduu 3543614874
stackdummy 3747496717
Fl_mul_pre 4453342700
leafcopy 5280113377
shift_right 5947978375
Fl_add 6562882171
dvmdsBIL 7387605059
maxss 7492759145
Fl_sub 7710325674
shift_left 7847869234
subii 8009772316
Fl_addmul_pre 8209249280
uutoi 9228086073
icopy 9396023697
utoi 12433210161
addii 13116649965
evalexpo 13969731624
utoipos 14667307022
gc_const 15931493138
cgetipos 16906250860
cgetg 28036089844
cgeti 28645917980
new_chunk 98667703907
evallg 100105820226
set_avma 136062557622

Generated by: LCOV version 2.0-1