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 30364-8108102770) Lines: 605 680 89.0 %
Date: 2025-06-30 09:21:07 Functions: 214 238 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 43442
sdivsi 102149
stack_calloc 109450
gc_stoi 150804
dvdui 167195
subis 170994
Mod32 199255
mod16 236581
Fl_ellj_pre 242798
truedivis 266812
mindd 268630
Mod16 277481
cmpri 282261
uutoineg 354973
cgetg_block 392695
gc_utoi 468595
dvdiu 576570
mpdiv 667726
cmpsr 824652
rdivss 839647
real2n 1061009
addri 1109300
gc_utoipos 1153892
real_0 1155976
equalis 1174471
equalsi 1174653
mpround 1216555
absrnz_equal2n 1288888
umodui 1296416
cmpss 1432120
Mod2 2024379
Mod8 2070299
mpcmp 2227474
gc_int 2574160
mulru 2765822
equaliu 2994983
equalui 2994985
itou_or_0 2996081
subir 3006073
maxdd 3162892
cmpis 3633444
negr 3692524
ceildivuu 3843844
cmpsi 3865395
Fl_center 4030060
absrnz_equal1 4515496
mod4 4676530
real_1_bit 4700994
maxuu 4805018
umuluu_or_0 5525209
umuluu_le 5800680
subsi 6104980
subri 6134006
truedivsi 6202031
affsi 6396593
mulrs 7181596
fractor 7375261
gc_NULL 7903316
cmpir 9427732
cmpui 9657798
cmpiu 9657875
ugcdiu 9986249
affectsign_safe 10736293
uabsdiviu_rem 11892741
addrs 12354027
smodss 12465887
rdivii 13096757
rdiviiz 13139495
mod8 13199235
mpabs_shallow 13428463
utor 13443754
affur 13443838
divii 14055192
dvdii 16487625
subrs 16512707
Fl_halve 18032121
modis 19602559
smodis 21140226
evalvalser 21443016
int_bit 22278502
hammingu 24045192
itos_or_0 24090217
abscmpui 31944105
abscmpiu 31944213
gc_ulong 37172439
mulri 37887759
mpexpo 38849093
absequaliu 39601910
absequalui 41350811
Mod4 44338030
modsi 45223266
affui 45473645
stack_malloc 46469782
Fl_div 46532966
truedivii 46782300
umodi2n 48909726
sdivsi_rem 51427595
gc_bool 51929631
stack_malloc_align 55381564
affrr_fixlg 55856223
absi_shallow 58577938
Fl_addmulmul_pre 59568605
mod2 61024494
minuu 67945895
remlll_pre 75027992
evalprecp 78667782
evalvalp 81624310
mpsqr 90951385
Fl_sqr 94838982
Fl_triple 96165464
addiu 96419497
addui 99923686
mod2BIL 102075210
fixlg 103804970
mpodd 114961423
icopyspec 116479181
togglesign_safe 125061552
subiu 130158812
real_1 131554995
subui 134397687
mpshift 153179346
udivuu_rem 159298367
dvmduBIL 165482978
itou 171932502
shiftr 180022805
addis 181286372
gc_double 182124438
vali 187746841
varncmp 217144869
gc_long 239210520
mpsub 251502640
utoineg 267241678
cgetineg 268099054
rtor 300127901
addsi 306470248
muliu 372060539
itos 458830750
mulis 463892152
Fl_double 475039435
addir 477169010
shiftr_inplace 477689880
real_0_bit 478265908
affsr 495435868
stor 495749944
mpadd 574080868
negi 641503155
Fl_neg 710749528
itor 712044152
umodsu 722925410
stoi 745261562
expu 783522196
lg2prec 806260081
mpmul 837118972
rcopy 898954654
affii 908611449
mpneg 920364347
subrr 995415332
cmpuu 1440495315
cgetg_copy 1469285928
cgetr 1855936140
togglesign 1924571463
minss 2008895156
absi 2063806415
mpabs 2134991426
Fl_sqr_pre 2154730265
setabssign 2201211691
nbits2lg 2379569343
Fl_mul 2382325787
expi 2452541597
addrr 2864577565
remii 3007899466
adduu 3407850089
stackdummy 3628734609
Fl_mul_pre 4019965598
Fl_add 4342479445
leafcopy 4953968397
shift_right 5639374447
dvmdsBIL 7057967279
Fl_sub 7269406844
Fl_addmul_pre 7610260201
subii 7636701308
shift_left 7730534040
uutoi 8802638414
icopy 9075782550
maxss 9586523044
utoi 11860335913
addii 12360387715
evalexpo 13212094203
utoipos 14212584790
gc_const 15488086621
cgetipos 16391649994
cgetg 24433252356
cgeti 27202392739
new_chunk 93225610130
evallg 95204521581
set_avma 128809929446

Generated by: LCOV version 1.16