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 30007-407ab607e8) Lines: 605 765 79.1 %
Date: 2025-02-20 09:19:49 Functions: 219 285 76.8 %
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
varnmin 0
subiiz 28
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
divrrz 501
mpcopy 707
dvdiiz 1325
ugcdui 2737
stack_calloc_align 3300
uabsdivui_rem 15742
addss 25067
subss 25067
subuu 25067
dvdis 33912
cmprs 40996
cgetr_block 42534
sdivsi 102149
stack_calloc 109180
gc_stoi 150940
dvdui 167195
subis 170945
mulrrz 192514
Mod32 199255
Fl_ellj_pre 223460
mod16 236390
truedivis 249980
mindd 254931
Mod16 277446
cmpri 282156
affiz 282562
uutoineg 318998
cgetg_block 384397
gc_utoi 469319
dvdiu 576556
mpdiv 665547
mpaff 674460
cmpsr 814586
rdivss 839647
real2n 1060688
real_0 1067269
addri 1103135
equalis 1105193
equalsi 1105375
gc_utoipos 1124450
mpround 1215557
absrnz_equal2n 1275234
umodui 1292853
subrrz 1296706
cmpss 1300662
addrrz 1307127
Mod2 2024379
Mod8 2070075
mpcmp 2142230
gc_int 2574672
mulru 2765612
equaliu 2961917
equalui 2961918
itou_or_0 2995314
subir 3004218
maxdd 3136614
negr 3506451
cmpis 3632586
ceildivuu 3713323
cmpsi 3864358
Fl_center 4023256
absrnz_equal1 4506114
mod4 4675751
real_1_bit 4684851
maxuu 4749308
umuluu_or_0 5520129
umuluu_le 5630478
subsi 5894775
subri 6123870
affsi 6177195
truedivsi 6202031
mulrs 7181596
gc_NULL 7319347
fractor 7374789
cmpir 9137255
cmpiu 9657543
cmpui 9657557
ugcdiu 9910977
affectsign_safe 10909279
uabsdiviu_rem 11892741
addrs 12130128
smodss 12456102
mod8 12906010
rdivii 13005962
rdiviiz 13049585
utor 13423124
affur 13423224
mpabs_shallow 13428442
divii 14030796
dvdii 16101961
subrs 16289190
Fl_halve 16970528
modis 19602559
smodis 21140226
evalvalser 21442260
int_bit 21546193
itos_or_0 24028176
abscmpui 31676519
abscmpiu 31676553
gc_ulong 36361349
mulri 37872927
mpexpo 38575640
absequaliu 39799131
absequalui 41548482
Mod4 44853353
modsi 45222747
affui 45448526
stack_malloc 45931537
truedivii 46108368
Fl_div 46288724
gc_bool 48036265
umodi2n 49424580
sdivsi_rem 51425023
stack_malloc_align 54745251
affrr_fixlg 55176552
Fl_addmulmul_pre 55909866
absi_shallow 57470420
mod2 60450990
minuu 66106440
remlll_pre 74989453
evalprecp 78663841
evalvalp 81622603
Fl_triple 89921781
mpsqr 90118583
Fl_sqr 92161360
addiu 95104167
addui 98576088
mod2BIL 101046694
fixlg 103014323
mpodd 114222433
icopyspec 115512208
togglesign_safe 124651579
subiu 128573709
real_1 130269215
subui 132746884
mpshift 153191683
udivuu_rem 158851375
dvmduBIL 165047253
itou 171929997
shiftr 177656839
addis 180246184
gc_double 180980047
vali 184469789
varncmp 210278746
gc_long 238741745
mpsub 250204244
utoineg 263217434
cgetineg 264073211
rtor 296791180
addsi 305428164
muliu 371460638
Fl_double 452612522
itos 455854229
real_0_bit 462465850
mulis 464071890
addir 474423255
shiftr_inplace 475613255
affsr 489324846
stor 489674208
mpadd 558912721
negi 619811311
Fl_neg 706535616
itor 707287399
umodsu 720674847
stoi 741435837
expu 775006138
lg2prec 798311313
mpmul 820542800
rcopy 893429194
mpneg 898145551
affii 907737050
subrr 989758180
cgetg_copy 1430246440
cmpuu 1433343602
cgetr 1838438133
togglesign 1917722726
minss 1999570458
absi 2057751056
Fl_sqr_pre 2103198474
mpabs 2127981045
setabssign 2193973587
nbits2lg 2348848967
Fl_mul 2376694956
expi 2416766347
addrr 2843431721
remii 2983509488
adduu 3388135561
stackdummy 3576712925
Fl_mul_pre 3956701752
Fl_add 4306145067
leafcopy 4910003265
shift_right 5607942172
dvmdsBIL 6990355111
Fl_sub 7192870468
Fl_addmul_pre 7572232708
subii 7588961006
shift_left 7668496983
uutoi 8702822444
icopy 9008517518
maxss 9518110235
utoi 11754994863
addii 12316068869
evalexpo 13103929446
utoipos 14061136688
gc_const 15381356693
cgetipos 16221571877
cgetg 24213171730
cgeti 26950580494
new_chunk 92394254090
evallg 94373973264
set_avma 127654155815

Generated by: LCOV version 1.16