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-10-07 17:02:40 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 44723
sdivsi 102165
stack_calloc 110632
uabsdivui_rem 128885
gc_stoi 155901
dvdui 167545
subis 171754
Fl_ellj_pre 242739
mindd 265749
truedivis 268433
cmpri 303857
mod16 308664
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467879
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857707
real2n 1070088
addri 1113221
equalis 1149725
equalsi 1149907
gc_utoipos 1155324
real_0 1160881
divrmp 1203052
mpround 1216170
cmpss 1416201
subri 1538306
absrnz_equal2n 1580213
cmpir 1730025
stor 2140782
mpcmp 2164543
udivuu_rem 2418435
mulru 2765059
gc_int 2818771
subir 3030783
equaliu 3042338
equalui 3042338
maxdd 3218252
Mod8 3309346
Mod2 3595514
ceildivuu 3916623
negr 3961188
Fl_center 4490059
absrnz_equal1 4559229
real_1_bit 4699124
itou_or_0 5015385
rdivii 5744750
cmpis 6119290
truedivsi 6202318
subsi 6244698
cmpsi 6351289
umuluu_or_0 6377695
affsi 6484822
maxuu 6603115
mulrs 7181596
fractor 7387947
fractor_lg 7389438
mod4 7594957
umuluu_le 7618608
gc_NULL 7910860
ugcdiu 10312793
affectsign_safe 10755764
addrs 12387676
cmpiu 13001943
cmpui 13001943
rdivii_lg 13134314
rdiviiz 13173941
utor 13344621
utor_lg 13344621
affur 13344761
mpabs_shallow 13428274
smodss 13998082
mod8 15675333
divii 16306579
subrs 16573350
dvdii 17072433
modis 19638526
Fl_halve 20603459
int_bit 21022905
smodis 21176116
hammingu 24078781
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30274151
abscmpiu 32807589
abscmpui 32807589
mpexpo 37849285
itos_or_0 44914250
modsi 45242189
absequaliu 45906172
stack_malloc 46736609
absequalui 47655942
affui 47976646
Fl_div 49581044
Mod4 50721474
sdivsi_rem 51446803
gc_ulong 52322353
mulri 53835783
truedivii 54931376
gc_bool 55261579
stack_malloc_align 55673823
affrr_fixlg 56699492
minuu 57506742
umodi2n 58327398
absi_shallow 60871456
mod2 65902868
Fl_addmulmul_pre 74216375
evalprecp 78703544
remlll_pre 79167991
evalvalp 81660147
mpsqr 91858825
Fl_triple 100162089
addiu 102352945
addui 106427516
fixlg 106530793
Fl_sqr 108114492
mod2BIL 113537930
mpodd 118265592
icopyspec 120487036
real_1 133395503
subiu 133452852
subui 138448185
mpshift 153966598
togglesign_safe 157548215
dvmduBIL 171051321
itou 180921197
cgetr 192138134
vali 194757871
addis 195803226
gc_double 199008436
varncmp 218513327
gc_long 243062806
mpsub 274038599
utoineg 300672290
cgetineg 301595052
rtor 308820447
rtor_lg 308824801
cmpuu 318394637
addsi 320991944
shiftr 363962376
muliu 378925901
itor 451945338
mulis 470851909
shiftr_inplace 472698082
itos 477892896
addir 490371138
real_0_bit 498851865
affsr 509054720
stor_lg 509054720
Fl_double 521530006
mpadd 597914140
negi 661643179
umodsu 734407286
itor_lg 739913663
Fl_neg 741570340
stoi 776208290
mpmul 889536043
mpneg 952073957
expu 955690646
affii 1002986190
subrr 1063033845
rcopy 1101974904
cgetg_copy 1490920804
nbits2lg 1676099711
togglesign 1996702807
minss 2044986487
absi 2076488154
mpabs 2118562739
setabssign 2187227592
expi 2476586675
Fl_mul 2550078355
Fl_sqr_pre 2567944504
addrr 3030805411
remii 3104607133
adduu 3541425485
stackdummy 3739808127
Fl_mul_pre 4448052214
leafcopy 5279511705
shift_right 5948095789
Fl_add 6561282631
dvmdsBIL 7387591401
maxss 7479659949
Fl_sub 7696903329
shift_left 7847986547
subii 8009165792
Fl_addmul_pre 8204688796
uutoi 9226191445
icopy 9396032383
utoi 12429175647
addii 13116656938
evalexpo 13969827573
utoipos 14663269837
gc_const 15930753481
cgetipos 16902256576
cgetg 28024076222
cgeti 28638958196
new_chunk 98652530200
evallg 100075443432
set_avma 136038465582

Generated by: LCOV version 2.0-1