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-11-14 17:03:41 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 44720
sdivsi 102165
stack_calloc 110620
uabsdivui_rem 128885
gc_stoi 155904
dvdui 167545
subis 171754
Fl_ellj_pre 242714
mindd 265750
truedivis 268430
cmpri 303857
mod16 308664
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430398
gc_utoi 467858
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857684
real2n 1070089
addri 1113221
equalis 1149718
equalsi 1149900
gc_utoipos 1155332
real_0 1160889
divrmp 1203052
mpround 1216188
cmpss 1416201
subri 1538262
absrnz_equal2n 1580226
cmpir 1730022
stor 2140785
mpcmp 2164541
udivuu_rem 2418435
mulru 2765059
gc_int 2818780
subir 3030803
equaliu 3042322
equalui 3042322
maxdd 3218198
Mod8 3309346
Mod2 3595514
ceildivuu 3915413
negr 3961186
Fl_center 4490059
absrnz_equal1 4559172
real_1_bit 4699125
itou_or_0 5015365
rdivii 5744741
cmpis 6119269
truedivsi 6202318
subsi 6244723
umuluu_or_0 6346164
cmpsi 6351268
affsi 6484756
maxuu 6603111
mulrs 7181596
fractor 7387947
fractor_lg 7389438
mod4 7594949
umuluu_le 7618608
gc_NULL 7912117
ugcdiu 10312773
affectsign_safe 10755795
addrs 12387633
cmpiu 13000761
cmpui 13000761
rdivii_lg 13134305
rdiviiz 13173932
utor 13344615
utor_lg 13344615
affur 13344755
mpabs_shallow 13428274
smodss 13998082
mod8 15674146
divii 16306580
subrs 16573319
dvdii 17072267
modis 19638526
Fl_halve 20602879
int_bit 21029101
smodis 21176116
hammingu 24078683
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30273733
abscmpiu 33534298
abscmpui 33534298
mpexpo 37846841
itos_or_0 44914228
modsi 45242169
absequaliu 45906132
stack_malloc 46736495
absequalui 47655902
affui 47976646
Fl_div 49577693
Mod4 50721225
sdivsi_rem 51446783
gc_ulong 52322730
mulri 53835788
truedivii 54942598
gc_bool 55260705
stack_malloc_align 55671625
affrr_fixlg 56699320
minuu 56854660
umodi2n 58327149
absi_shallow 61598019
mod2 65901399
Fl_addmulmul_pre 74210743
evalprecp 78703504
remlll_pre 79167991
evalvalp 81660107
mpsqr 91852355
Fl_triple 100099557
addiu 103816648
fixlg 106530598
addui 107891220
Fl_sqr 108108937
mod2BIL 113535083
mpodd 118263385
icopyspec 120486865
real_1 133393179
subiu 133456020
subui 138451333
mpshift 153966366
togglesign_safe 157551717
dvmduBIL 172959815
itou 180921151
cgetr 192136326
vali 194757393
addis 195797344
gc_double 198999719
varncmp 218513470
gc_long 243066326
mpsub 274015144
utoineg 300670470
cgetineg 301593228
rtor 308822426
rtor_lg 308826780
cmpuu 318401017
addsi 320986062
shiftr 363957536
muliu 378952738
itor 451924300
mulis 470866238
shiftr_inplace 472697269
itos 477909970
addir 490369752
real_0_bit 498836360
affsr 509053165
stor_lg 509053165
Fl_double 521425871
mpadd 597874841
negi 661636848
umodsu 734412154
itor_lg 739890274
Fl_neg 741525530
stoi 774905009
mpmul 889470060
mpneg 952063858
expu 955683115
affii 1002918406
subrr 1063018492
rcopy 1101971829
cgetg_copy 1490907356
nbits2lg 1675916942
togglesign 1996682939
minss 2044608556
absi 2076482889
mpabs 2118555403
setabssign 2187220613
expi 2476211458
Fl_mul 2551532857
Fl_sqr_pre 2567792303
addrr 3030757420
remii 3104322230
adduu 3542633844
stackdummy 3744853273
Fl_mul_pre 4448267328
leafcopy 5280118805
shift_right 5948042241
Fl_add 6560882488
dvmdsBIL 7387288865
maxss 7491868435
Fl_sub 7707841927
shift_left 7847940121
subii 8009156550
Fl_addmul_pre 8205432763
uutoi 9226992345
icopy 9395663038
utoi 12431104223
addii 13116249217
evalexpo 13969659971
utoipos 14665062950
gc_const 15930670109
cgetipos 16903834202
cgetg 28030853000
cgeti 28639824842
new_chunk 98654744659
evallg 100089904823
set_avma 136041966663

Generated by: LCOV version 2.0-1