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) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30218-f32872418f) Lines: 607 765 79.3 %
Date: 2025-04-27 09:18:32 Functions: 220 285 77.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Mod64 0
addiiz 0
addirz 0
addriz 0
addsiz 0
addsrz 0
addssz 0
affectsign 0
affsz 0
diviiz 0
divirz 0
divisz 0
divriz 0
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdisz 0
dvdiuz 0
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
get_avma 0
mod64 0
modisz 0
modsiz 0
modss 0
modssz 0
mpaddz 0
mpceil 0
mpfloor 0
mpmulz 0
mpsubz 0
muliiz 0
mulirz 0
mulriz 0
mulsiz 0
mulsrz 0
mulssz 0
rdivis 0
rdivsi 0
remiiz 0
remis 0
remisz 0
remsi 0
remsiz 0
remss 0
remssz 0
sdivss_rem 0
shiftl 0
shiftlr 0
subirz 0
subisz 0
subriz 0
subrsz 0
subsiz 0
subsrz 0
subssz 0
subiiz 28
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
divrrz 508
mpcopy 708
dvdiiz 1316
ugcdui 2737
stack_calloc_align 3300
varnmin 15547
uabsdivui_rem 19089
addss 25067
subss 25067
subuu 25067
dvdis 33912
cmprs 40996
cgetr_block 42601
sdivsi 102150
stack_calloc 109107
gc_stoi 150801
dvdui 167195
subis 170866
mulrrz 192514
Mod32 199255
Fl_ellj_pre 224647
mod16 236237
truedivis 248454
mindd 257523
Mod16 277446
cmpri 282261
affiz 282968
uutoineg 355929
cgetg_block 387409
gc_utoi 468616
dvdiu 576450
mpdiv 664941
mpaff 674866
cmpsr 824645
rdivss 839647
real2n 1060223
real_0 1064277
equalis 1096817
equalsi 1096999
addri 1101824
gc_utoipos 1123628
mpround 1216518
absrnz_equal2n 1288147
umodui 1296213
subrrz 1296706
addrrz 1307127
cmpss 1314830
Mod2 2024379
Mod8 2070299
mpcmp 2140782
gc_int 2570053
mulru 2765822
equaliu 2955382
equalui 2955382
itou_or_0 2995382
subir 3003811
maxdd 3125877
negr 3517763
cmpis 3632644
ceildivuu 3723525
cmpsi 3864598
Fl_center 4023660
absrnz_equal1 4515398
mod4 4675667
real_1_bit 4699069
maxuu 4748771
umuluu_or_0 5533425
umuluu_le 5800680
subsi 5886159
subri 6048462
affsi 6169591
truedivsi 6202031
mulrs 7181596
fractor 7375004
gc_NULL 7639133
cmpir 9229596
cmpiu 9653875
cmpui 9653935
ugcdiu 9980598
affectsign_safe 10723647
uabsdiviu_rem 11892741
addrs 12157205
smodss 12515991
mod8 12869209
rdivii 13094389
rdiviiz 13137476
mpabs_shallow 13428449
utor 13439043
affur 13439152
divii 14018449
dvdii 16023452
subrs 16314492
Fl_halve 16993190
modis 19602559
int_bit 21050153
smodis 21140226
evalvalser 21442638
itos_or_0 24019637
abscmpiu 30811609
abscmpui 30811653
gc_ulong 36251384
mulri 37886025
mpexpo 38550254
absequaliu 39566793
absequalui 41315700
Mod4 43882375
modsi 45222802
affui 45472040
stack_malloc 45914371
truedivii 45980555
Fl_div 46267610
umodi2n 48453383
gc_bool 50781685
sdivsi_rem 51427130
stack_malloc_align 54711012
affrr_fixlg 55445388
Fl_addmulmul_pre 55817453
absi_shallow 57365868
mod2 60387160
minuu 66235864
remlll_pre 75060923
evalprecp 78665206
evalvalp 81621885
Fl_triple 89641299
mpsqr 90150819
Fl_sqr 92071261
addiu 93367260
addui 96865938
mod2BIL 100959465
fixlg 103286699
mpodd 114057502
icopyspec 115826770
togglesign_safe 124455825
subiu 128773299
real_1 130450774
subui 132942185
mpshift 153109344
udivuu_rem 158896721
dvmduBIL 165080391
itou 170790982
shiftr 178479400
addis 180553743
gc_double 180633412
vali 186127458
varncmp 216727234
gc_long 238081161
mpsub 250490081
utoineg 262980682
cgetineg 263834282
rtor 298046822
addsi 305737430
muliu 370520509
Fl_double 452186619
itos 455572862
mulis 463724319
addir 474969537
real_0_bit 475012284
shiftr_inplace 476442909
affsr 492340012
stor 492631951
mpadd 570600991
negi 634229720
Fl_neg 706994259
itor 707720764
umodsu 721073145
stoi 743846562
expu 778464055
lg2prec 802021728
mpmul 832604984
rcopy 893739558
affii 908550547
mpneg 912376497
subrr 992459032
cmpuu 1435008884
cgetg_copy 1456029101
cgetr 1843826877
togglesign 1907904461
minss 2004007536
absi 2051986494
Fl_sqr_pre 2104430330
mpabs 2122339377
setabssign 2188477273
nbits2lg 2364134652
Fl_mul 2374073131
expi 2426134987
addrr 2854903770
remii 2985619467
adduu 3393015546
stackdummy 3596223331
Fl_mul_pre 3951614133
Fl_add 4307556401
leafcopy 4918659842
shift_right 5621112780
dvmdsBIL 7014911270
Fl_sub 7179412551
Fl_addmul_pre 7567232555
subii 7604834130
shift_left 7693237153
uutoi 8763463229
icopy 9034866622
maxss 9505005049
utoi 11805252845
addii 12314000059
evalexpo 13158265542
utoipos 14123334588
gc_const 15426144072
cgetipos 16293013489
cgetg 24261301868
cgeti 27035839868
new_chunk 92691033590
evallg 94634304405
set_avma 128090296495

Generated by: LCOV version 1.16