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 30347-cb65b7994e) Lines: 605 680 89.0 %
Date: 2025-06-27 09:22:08 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 43485
sdivsi 102150
stack_calloc 109456
gc_stoi 150802
dvdui 167195
subis 170994
Mod32 199255
mod16 236580
Fl_ellj_pre 242808
truedivis 266799
mindd 268630
Mod16 277481
cmpri 282261
uutoineg 355107
cgetg_block 392988
gc_utoi 468541
dvdiu 576573
mpdiv 667711
cmpsr 824654
rdivss 839647
real2n 1060988
addri 1109337
gc_utoipos 1153902
real_0 1155926
equalis 1174501
equalsi 1174683
mpround 1216536
absrnz_equal2n 1288848
umodui 1296416
cmpss 1432120
Mod2 2024379
Mod8 2070299
mpcmp 2227492
gc_int 2574145
mulru 2765822
equaliu 2995001
equalui 2995002
itou_or_0 2996086
subir 3006032
maxdd 3162998
cmpis 3633435
negr 3692400
ceildivuu 3845123
cmpsi 3865385
Fl_center 4030201
absrnz_equal1 4515346
mod4 4676528
real_1_bit 4700748
maxuu 4804920
umuluu_or_0 5529685
umuluu_le 5800680
subsi 6105168
subri 6130918
truedivsi 6202031
affsi 6396324
mulrs 7181596
fractor 7375262
gc_NULL 7902139
cmpir 9424945
cmpui 9658914
cmpiu 9659093
ugcdiu 9986017
affectsign_safe 10736771
uabsdiviu_rem 11892741
addrs 12353673
smodss 12426960
rdivii 13098823
rdiviiz 13143000
mod8 13200623
mpabs_shallow 13428463
utor 13443783
affur 13443890
divii 14056410
dvdii 16478380
subrs 16512602
Fl_halve 18071785
modis 19602559
smodis 21140226
evalvalser 21443016
int_bit 22247807
hammingu 24045212
itos_or_0 24091681
abscmpiu 32105947
abscmpui 32106132
gc_ulong 37182683
mulri 37887732
mpexpo 38843868
absequaliu 39601699
absequalui 41350594
Mod4 44341158
modsi 45223221
affui 45473650
stack_malloc 46469826
Fl_div 46483123
truedivii 46787948
umodi2n 48912556
sdivsi_rem 51427547
gc_bool 51916940
stack_malloc_align 55378733
affrr_fixlg 55857512
absi_shallow 58739623
Fl_addmulmul_pre 59573407
mod2 61025167
minuu 67972730
remlll_pre 75082463
evalprecp 78665918
evalvalp 81622664
mpsqr 90938258
Fl_sqr 94839919
Fl_triple 96333132
addiu 96751478
addui 100255749
mod2BIL 102075359
fixlg 103806782
mpodd 114962121
icopyspec 116478909
togglesign_safe 125073459
subiu 130152311
real_1 131549257
subui 134391334
mpshift 153166337
udivuu_rem 159298367
dvmduBIL 165522722
itou 171931494
shiftr 180012068
addis 181263641
gc_double 182115808
vali 187745078
varncmp 217148618
gc_long 239211234
mpsub 251472748
utoineg 267247097
cgetineg 268104445
rtor 300128869
addsi 306445958
muliu 371917620
itos 458844003
mulis 463891435
Fl_double 475760899
addir 477178498
shiftr_inplace 478041494
real_0_bit 478109775
affsr 495413248
stor 495778775
mpadd 573888944
negi 641502235
Fl_neg 711212681
itor 712091006
umodsu 722951557
stoi 745298113
expu 783556472
lg2prec 806401953
mpmul 836901567
rcopy 899012830
affii 908889760
mpneg 920362836
subrr 995435004
cmpuu 1440488879
cgetg_copy 1469671712
cgetr 1855959929
togglesign 1924735425
minss 2008957427
absi 2063954885
mpabs 2135140991
Fl_sqr_pre 2162006380
setabssign 2201393753
nbits2lg 2379881422
Fl_mul 2382905487
expi 2452809471
addrr 2864990335
remii 3007137137
adduu 3407701773
stackdummy 3631945346
Fl_mul_pre 4020672916
Fl_add 4347745876
leafcopy 4954437994
shift_right 5644046015
dvmdsBIL 7060744193
Fl_sub 7277025421
Fl_addmul_pre 7588990857
subii 7634762351
shift_left 7730720806
uutoi 8803089058
icopy 9076982643
maxss 9592254447
utoi 11864446050
addii 12369131833
evalexpo 13212380445
utoipos 14220099808
gc_const 15487811512
cgetipos 16399634343
cgetg 24450792149
cgeti 27195750940
new_chunk 93238304758
evallg 95213838772
set_avma 128833078951

Generated by: LCOV version 1.16