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-17 17:03:22 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 44726
sdivsi 102165
stack_calloc 110640
uabsdivui_rem 128885
gc_stoi 155901
dvdui 167545
subis 171754
Fl_ellj_pre 242742
mindd 265753
truedivis 268455
cmpri 303857
mod16 308664
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467767
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857710
real2n 1070099
addri 1113225
equalis 1149947
equalsi 1150129
gc_utoipos 1155305
real_0 1160905
divrmp 1203052
mpround 1216174
cmpss 1416201
subri 1538353
absrnz_equal2n 1580225
cmpir 1730088
stor 2140785
mpcmp 2164606
udivuu_rem 2418435
mulru 2765059
gc_int 2818788
subir 3030790
equaliu 3042348
equalui 3042348
maxdd 3218235
Mod8 3309346
Mod2 3595514
ceildivuu 3918152
negr 3961173
Fl_center 4490059
absrnz_equal1 4559323
real_1_bit 4699206
itou_or_0 5015391
rdivii 5744759
cmpis 6119312
truedivsi 6202318
subsi 6244663
umuluu_or_0 6348301
cmpsi 6351311
affsi 6484799
maxuu 6603109
mulrs 7181596
fractor 7387946
fractor_lg 7389437
mod4 7594957
umuluu_le 7618608
gc_NULL 7911804
ugcdiu 10312790
affectsign_safe 10754449
addrs 12387984
cmpiu 12999141
cmpui 12999141
rdivii_lg 13134322
rdiviiz 13173949
utor 13344648
utor_lg 13344648
affur 13344788
mpabs_shallow 13428274
smodss 13998082
mod8 15672576
divii 16301730
subrs 16573720
dvdii 17072719
modis 19638526
Fl_halve 20609280
int_bit 21050233
smodis 21176116
hammingu 24078818
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30279841
abscmpiu 32504275
abscmpui 32504275
mpexpo 37848965
itos_or_0 44914258
modsi 45242225
absequaliu 45906187
stack_malloc 46736772
absequalui 47655957
affui 47976646
Fl_div 49580794
Mod4 50719940
sdivsi_rem 51446839
gc_ulong 52346366
mulri 53835791
truedivii 54898961
gc_bool 55258950
stack_malloc_align 55674540
affrr_fixlg 56699829
minuu 57514179
umodi2n 58325864
absi_shallow 60568174
mod2 65903826
Fl_addmulmul_pre 74219374
evalprecp 78703556
remlll_pre 79168024
evalvalp 81660159
mpsqr 91873079
Fl_triple 100186699
addiu 101748895
addui 105823467
fixlg 106531133
Fl_sqr 108125559
mod2BIL 113535973
mpodd 118267311
icopyspec 120487099
real_1 133396240
subiu 133456001
subui 138451341
mpshift 153966913
togglesign_safe 157533731
dvmduBIL 173076514
itou 180922479
cgetr 192139704
vali 194754135
addis 195799998
gc_double 198980087
varncmp 218513336
gc_long 243068644
mpsub 274024679
utoineg 300664352
cgetineg 301587113
rtor 308822738
rtor_lg 308827092
cmpuu 318395965
addsi 320988716
shiftr 363962091
muliu 379089653
itor 451923544
mulis 470853390
shiftr_inplace 472697836
itos 477850231
addir 490354016
real_0_bit 501530958
affsr 509057500
stor_lg 509057500
Fl_double 521739793
mpadd 600268442
negi 661687945
umodsu 734464678
itor_lg 739884178
Fl_neg 741598840
stoi 776221993
mpmul 891889180
mpneg 952113508
expu 955697728
affii 1002898782
subrr 1063020591
rcopy 1101951862
cgetg_copy 1490941945
nbits2lg 1678314245
togglesign 1996706167
minss 2045097997
absi 2076479739
mpabs 2118551780
setabssign 2187217133
expi 2476663752
Fl_mul 2549515220
Fl_sqr_pre 2568564557
addrr 3033063013
remii 3105998192
adduu 3540680729
stackdummy 3739008789
Fl_mul_pre 4449089097
leafcopy 5280164835
shift_right 5947904058
Fl_add 6561823821
dvmdsBIL 7387741144
maxss 7474431600
Fl_sub 7692108966
shift_left 7847849032
subii 8009994615
Fl_addmul_pre 8205524053
uutoi 9224940035
icopy 9396211707
utoi 12427272810
addii 13116605789
evalexpo 13972106949
utoipos 14661317985
gc_const 15932020451
cgetipos 16900292788
cgetg 28024569523
cgeti 28641717117
new_chunk 98655870309
evallg 100077606196
set_avma 136042589097

Generated by: LCOV version 2.0-1