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 30338-25bc3391a4) Lines: 596 671 88.8 %
Date: 2025-06-22 09:20:59 Functions: 213 237 89.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by 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
mpfloor 0
rdivis 0
rdivsi 0
remis 0
remsi 0
remss 0
sdivss_rem 0
shiftl 0
shiftlr 0
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 708
ugcdui 2737
thuemorseu 2851
stack_calloc_align 3300
varnmin 15547
uabsdivui_rem 19089
addss 25067
subss 25067
subuu 25067
dvdis 33912
cmprs 40996
cgetr_block 43486
sdivsi 102149
stack_calloc 109466
gc_stoi 150799
dvdui 167195
subis 170994
Mod32 199255
mod16 236581
Fl_ellj_pre 242797
truedivis 266808
mindd 268634
Mod16 277481
cmpri 282261
uutoineg 355680
cgetg_block 392977
gc_utoi 468508
dvdiu 576568
mpdiv 667715
cmpsr 824655
rdivss 839647
real2n 1060975
addri 1109326
gc_utoipos 1153893
real_0 1155986
equalis 1174495
equalsi 1174678
mpround 1216536
absrnz_equal2n 1288947
umodui 1296416
cmpss 1432120
Mod2 2024379
Mod8 2070299
mpcmp 2227505
gc_int 2574160
mulru 2765822
equalui 2995007
equaliu 2995008
itou_or_0 2996088
subir 3006036
maxdd 3163105
cmpis 3633456
negr 3692430
ceildivuu 3845005
cmpsi 3865406
Fl_center 4030090
absrnz_equal1 4515520
mod4 4676532
real_1_bit 4700609
maxuu 4805010
umuluu_or_0 5507146
umuluu_le 5800680
subsi 6104999
subri 6106299
truedivsi 6202031
affsi 6396274
mulrs 7181596
fractor 7375264
gc_NULL 7904424
cmpir 9446739
cmpui 9658366
cmpiu 9658536
ugcdiu 9986120
affectsign_safe 10737227
uabsdiviu_rem 11892741
addrs 12354169
smodss 12480467
rdivii 13097583
rdiviiz 13141316
mod8 13199457
mpabs_shallow 13428463
utor 13443727
affur 13443846
divii 14057101
dvdii 16482512
subrs 16512750
Fl_halve 18051579
modis 19602559
smodis 21140226
evalvalser 21443016
int_bit 22283242
itos_or_0 24090263
abscmpiu 31417743
abscmpui 31417779
gc_ulong 37179820
mulri 37887631
mpexpo 38849461
absequaliu 39601877
absequalui 41350783
Mod4 44345511
modsi 45223226
affui 45473650
stack_malloc 46470046
Fl_div 46522922
truedivii 46752634
umodi2n 48917153
sdivsi_rem 51427553
gc_bool 51921647
stack_malloc_align 55383177
affrr_fixlg 55855733
absi_shallow 58050108
Fl_addmulmul_pre 59617835
mod2 61025612
minuu 68023899
remlll_pre 75036550
evalprecp 78666854
evalvalp 81623377
mpsqr 90967457
Fl_sqr 94825522
addiu 95380329
Fl_triple 96486374
addui 98884580
mod2BIL 102078132
fixlg 103804521
mpodd 114962427
icopyspec 116479001
togglesign_safe 125051392
subiu 130158042
real_1 131535580
subui 134396949
mpshift 153175476
udivuu_rem 159298367
dvmduBIL 165494575
itou 171932611
shiftr 180023785
addis 181280305
gc_double 182056975
vali 187748313
varncmp 217148726
gc_long 239212275
mpsub 251532368
utoineg 267242928
cgetineg 268100257
rtor 300124142
addsi 306463712
muliu 372058017
itos 458791996
mulis 463879585
Fl_double 475936063
addir 477150264
shiftr_inplace 477700295
real_0_bit 480590895
affsr 495497345
stor 495780454
mpadd 576141452
negi 641504031
Fl_neg 711021140
itor 712032289
umodsu 722932710
stoi 745333434
expu 783544714
lg2prec 806326566
mpmul 839226177
rcopy 898977702
affii 908698135
mpneg 920359735
subrr 995416020
cmpuu 1440481392
cgetg_copy 1469657415
cgetr 1855953419
togglesign 1924663216
minss 2009052189
absi 2063873418
mpabs 2135091379
Fl_sqr_pre 2160122153
setabssign 2201329889
nbits2lg 2381836698
Fl_mul 2382128448
expi 2452601853
addrr 2867056019
remii 3008158995
adduu 3406938334
stackdummy 3626347164
Fl_mul_pre 4021526371
Fl_add 4350762211
leafcopy 4954221737
shift_right 5640207181
dvmdsBIL 7059124502
Fl_sub 7267261904
Fl_addmul_pre 7609731770
subii 7636429179
shift_left 7731782893
uutoi 8805069469
icopy 9077289963
maxss 9583242842
utoi 11861616664
addii 12362795521
evalexpo 13217204103
utoipos 14214091785
gc_const 15488784159
cgetipos 16393215474
cgetg 24437268013
cgeti 27203632791
new_chunk 93229957207
evallg 95211043474
set_avma 128813759629

Generated by: LCOV version 1.16