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 30773-2078653b96) Lines: 607 680 89.3 %
Date: 2026-04-04 09:27:12 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
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 665
ugcdui 2737
thuemorseu 3313
stack_calloc_align 3325
varnmin 10374
uabsdivui_rem 16693
absr 19040
addss 25067
subss 25067
subuu 25067
dvdis 33737
cmprs 40996
cgetr_block 44269
sdivsi 102148
stack_calloc 110679
gc_stoi 155902
dvdui 167195
subis 171737
Fl_ellj_pre 238046
mindd 264379
truedivis 268375
cmpri 284263
mod16 307028
Mod32 311108
uutoineg 362555
Mod16 389733
cgetg_block 426429
gc_utoi 468804
dvdiu 576273
mpdiv 665523
umodui 711392
cmpsr 796099
rdivss 839647
real2n 1068606
addri 1106186
equalis 1151285
equalsi 1151466
gc_utoipos 1153590
real_0 1157741
mpround 1216580
absrnz_equal2n 1300268
cmpss 1392943
Mod8 2073808
mpcmp 2226374
Mod2 2370179
udivuu_rem 2418379
gc_int 2742582
mulru 2765892
subir 3004964
equalui 3021713
equaliu 3021714
itou_or_0 3147015
maxdd 3211653
cmpis 3634509
negr 3682548
cmpsi 3866508
ceildivuu 3903042
Fl_center 4486010
absrnz_equal1 4553860
real_1_bit 4714058
mod4 5140602
subri 6087483
subsi 6184888
truedivsi 6202031
umuluu_or_0 6242508
affsi 6446286
maxuu 6610957
mulrs 7181596
fractor 7379018
umuluu_le 7617880
gc_NULL 7963183
cmpir 9445949
ugcdiu 10319904
affectsign_safe 10730471
uabsdiviu_rem 11892741
addrs 12360975
smodss 12447530
cmpui 12982269
cmpiu 12982461
rdivii 13106272
rdiviiz 13149805
mpabs_shallow 13428463
divii 14046629
utor 14335108
affur 14335209
mod8 15586647
subrs 16536275
dvdii 16896053
Fl_halve 18770033
modis 19638526
int_bit 20938520
smodis 21176088
hammingu 24048676
evalvalser 24359582
abscmpiu 32827862
abscmpui 32828048
mulri 38284535
mpexpo 38876731
absequaliu 39546362
absequalui 41296368
Mod4 43842142
itos_or_0 44911492
modsi 45242170
affui 45491532
Fl_div 46820316
stack_malloc 46929445
umodi2n 48984907
sdivsi_rem 51446498
gc_ulong 52087584
truedivii 54737654
stack_malloc_align 55534670
affrr_fixlg 56108216
gc_bool 56771724
absi_shallow 56881942
mod2 62590034
Fl_addmulmul_pre 64584409
minuu 69627721
remlll_pre 75668739
evalprecp 78670808
evalvalp 81627573
Fl_triple 87220151
mpsqr 91027860
addiu 97721284
Fl_sqr 99465912
addui 101796249
fixlg 105718958
mod2BIL 107447045
mpodd 116092793
icopyspec 117797146
subiu 133394590
real_1 133634542
subui 138370469
mpshift 153498720
togglesign_safe 157287594
dvmduBIL 165641803
itou 179080662
gc_double 184172111
shiftr 187925469
vali 190832555
addis 194699374
varncmp 198759990
gc_long 242622553
mpsub 251520373
utoineg 297812836
cgetineg 298673448
rtor 303768706
addsi 319885447
muliu 373247655
Fl_double 441996853
mulis 467118836
shiftr_inplace 467155184
itos 476311316
real_0_bit 482393218
addir 483041906
affsr 501163515
stor 501585845
mpadd 572953792
negi 640792519
itor 716723429
Fl_neg 729328303
umodsu 734178012
expu 796815641
stoi 798953266
lg2prec 815692788
mpmul 837048787
rcopy 916759668
mpneg 926443879
affii 964513690
subrr 1006256715
cgetg_copy 1490121183
cmpuu 1490460051
cgetr 1875720698
togglesign 1953453520
minss 2025965699
absi 2067014533
mpabs 2137964475
setabssign 2205037941
Fl_sqr_pre 2336759264
nbits2lg 2402998987
expi 2424501380
Fl_mul 2439110733
addrr 2931601615
remii 3060802404
adduu 3447805267
stackdummy 3684111923
Fl_mul_pre 4219262139
leafcopy 5061589897
shift_right 5732762975
Fl_add 6141593920
dvmdsBIL 7149595421
Fl_sub 7393812758
Fl_addmul_pre 7653142591
subii 7718345520
shift_left 7795360660
uutoi 8933380774
icopy 9150820952
maxss 9704268381
utoi 12049046688
addii 12530379940
evalexpo 13390975029
utoipos 14266928000
gc_const 15646945529
cgetipos 16457132877
cgetg 25523842235
cgeti 27467831519
new_chunk 95111558513
evallg 96837134979
set_avma 131326603319

Generated by: LCOV version 1.16