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-06 17:02:10 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 110622
uabsdivui_rem 128885
gc_stoi 155898
dvdui 167545
subis 171754
Fl_ellj_pre 242717
mindd 265754
truedivis 268455
cmpri 303857
mod16 308664
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467768
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857705
real2n 1070095
addri 1113225
equalis 1149891
equalsi 1150073
gc_utoipos 1155321
real_0 1160898
divrmp 1203052
mpround 1216174
cmpss 1416201
subri 1538330
absrnz_equal2n 1580245
cmpir 1730069
stor 2140784
mpcmp 2164587
udivuu_rem 2418435
mulru 2765059
gc_int 2818785
subir 3030821
equaliu 3042330
equalui 3042330
maxdd 3218259
Mod8 3309346
Mod2 3595514
ceildivuu 3916380
negr 3961182
Fl_center 4490059
absrnz_equal1 4559378
real_1_bit 4699175
itou_or_0 5015375
rdivii 5744744
cmpis 6119308
truedivsi 6202318
subsi 6244894
umuluu_or_0 6323765
cmpsi 6351307
affsi 6484802
maxuu 6603106
mulrs 7181596
fractor 7387946
fractor_lg 7389437
mod4 7594957
umuluu_le 7618608
gc_NULL 7912248
ugcdiu 10312786
affectsign_safe 10756372
addrs 12387956
cmpiu 13000597
cmpui 13000597
rdivii_lg 13134307
rdiviiz 13173934
utor 13344601
utor_lg 13344601
affur 13344741
mpabs_shallow 13428274
smodss 13998082
mod8 15674412
divii 16306088
subrs 16573666
dvdii 17072654
modis 19638526
Fl_halve 20602961
int_bit 21047197
smodis 21176116
hammingu 24078702
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30275725
abscmpiu 33134782
abscmpui 33134782
mpexpo 37849114
itos_or_0 44914234
modsi 45242195
absequaliu 45906155
stack_malloc 46736722
absequalui 47655925
affui 47976646
Fl_div 49583606
Mod4 50720773
sdivsi_rem 51446809
gc_ulong 52320437
mulri 53835788
truedivii 54943472
gc_bool 55262222
stack_malloc_align 55673545
affrr_fixlg 56699937
minuu 57538180
umodi2n 58326697
absi_shallow 61198443
mod2 65902046
Fl_addmulmul_pre 74215698
evalprecp 78703524
remlll_pre 79167996
evalvalp 81660127
mpsqr 91857476
Fl_triple 100149458
addiu 103013010
fixlg 106531208
addui 107087581
Fl_sqr 108111290
mod2BIL 113536037
mpodd 118264636
icopyspec 120486901
real_1 133396579
subiu 133456424
subui 138451748
mpshift 153967935
togglesign_safe 157556422
dvmduBIL 173060794
itou 180923037
cgetr 192139937
vali 194757739
addis 195801693
gc_double 199005076
varncmp 218513491
gc_long 243068512
mpsub 273991658
utoineg 300673253
cgetineg 301596015
rtor 308823525
rtor_lg 308827879
cmpuu 318396328
addsi 320990411
shiftr 363964549
muliu 379064872
itor 451929942
mulis 470854133
shiftr_inplace 472698854
itos 477913866
addir 490367673
real_0_bit 499142761
affsr 509059099
stor_lg 509059099
Fl_double 521504892
mpadd 598124058
negi 661645575
umodsu 734402653
itor_lg 739896913
Fl_neg 741547937
stoi 776269277
mpmul 889697821
mpneg 952076150
expu 955698667
affii 1002956106
subrr 1063005640
rcopy 1101974644
cgetg_copy 1490930334
nbits2lg 1676264329
togglesign 1996717374
minss 2044818183
absi 2076499142
mpabs 2118572140
setabssign 2187237309
expi 2476431886
Fl_mul 2550742532
Fl_sqr_pre 2568499092
addrr 3031012674
remii 3105479331
adduu 3541990661
stackdummy 3742544138
Fl_mul_pre 4450616963
leafcopy 5280194674
shift_right 5948015827
Fl_add 6561867157
dvmdsBIL 7387603676
maxss 7481744913
Fl_sub 7698425617
shift_left 7847926030
subii 8009934258
Fl_addmul_pre 8207295391
uutoi 9226676842
icopy 9396102470
utoi 12430122198
addii 13117030248
evalexpo 13969944510
utoipos 14664228369
gc_const 15931667215
cgetipos 16903160826
cgetg 28026410327
cgeti 28643455470
new_chunk 98655625048
evallg 100086554461
set_avma 136045162021

Generated by: LCOV version 2.0-1