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 30145-32f0acf4da) Lines: 607 765 79.3 %
Date: 2025-04-18 09:18:41 Functions: 220 285 77.2 %
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
subiiz 28
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
divrrz 508
mpcopy 708
dvdiiz 1316
ugcdui 2737
stack_calloc_align 3300
varnmin 15547
uabsdivui_rem 19089
addss 25067
subss 25067
subuu 25067
dvdis 33912
cmprs 40996
cgetr_block 42570
sdivsi 102149
stack_calloc 109131
gc_stoi 150796
dvdui 167195
subis 170866
mulrrz 192514
Mod32 199255
Fl_ellj_pre 224628
mod16 236228
truedivis 248433
mindd 257518
Mod16 277446
cmpri 282303
affiz 282954
uutoineg 318275
cgetg_block 387397
gc_utoi 468554
dvdiu 576449
mpdiv 664869
mpaff 674852
cmpsr 819613
rdivss 839647
real2n 1060171
real_0 1064176
equalis 1096954
equalsi 1097138
addri 1101687
gc_utoipos 1123611
mpround 1216437
absrnz_equal2n 1288122
umodui 1296213
subrrz 1296706
addrrz 1307127
cmpss 1314830
Mod2 2024379
Mod8 2070299
mpcmp 2140694
gc_int 2569953
mulru 2765822
equaliu 2955359
equalui 2955360
itou_or_0 2995310
subir 3003719
maxdd 3125902
negr 3517637
cmpis 3632687
ceildivuu 3722034
cmpsi 3864638
Fl_center 4023241
absrnz_equal1 4510321
mod4 4675408
real_1_bit 4699058
maxuu 4749057
umuluu_or_0 5515787
umuluu_le 5694608
subsi 5885764
subri 6041149
affsi 6169562
truedivsi 6202031
mulrs 7181596
gc_NULL 7311694
fractor 7374994
cmpir 9234346
cmpiu 9655905
cmpui 9655961
ugcdiu 9975870
affectsign_safe 10722044
uabsdiviu_rem 11892741
addrs 12137829
smodss 12532520
mod8 12871757
rdivii 13033524
rdiviiz 13077131
mpabs_shallow 13428442
utor 13428931
affur 13429050
divii 14021571
dvdii 16104969
subrs 16294966
Fl_halve 16990226
modis 19602559
int_bit 21063406
smodis 21140226
evalvalser 21442582
itos_or_0 24019368
abscmpiu 32248132
abscmpui 32248135
gc_ulong 36260364
mulri 37883828
mpexpo 38550335
absequaliu 39566919
absequalui 41315821
Mod4 44832025
modsi 45222860
affui 45472040
stack_malloc 45914014
truedivii 45989684
Fl_div 46356895
umodi2n 49403580
gc_bool 50864847
sdivsi_rem 51425137
stack_malloc_align 54710556
affrr_fixlg 55238193
Fl_addmulmul_pre 55824980
absi_shallow 58804317
mod2 60387373
minuu 66277877
remlll_pre 75016316
evalprecp 78660878
evalvalp 81619977
Fl_triple 89685676
mpsqr 90153826
Fl_sqr 92050789
addiu 96241234
addui 99740010
mod2BIL 100963472
fixlg 103079438
mpodd 114057859
icopyspec 115620206
togglesign_safe 124462415
subiu 128774674
real_1 130185985
subui 132943394
mpshift 153110765
udivuu_rem 158851466
dvmduBIL 165035787
itou 170788578
shiftr 177838720
addis 180220334
gc_double 180638896
vali 185918889
varncmp 216706592
gc_long 238061565
mpsub 250472706
utoineg 262940864
cgetineg 263794558
rtor 297418483
addsi 305402309
muliu 371016995
Fl_double 452247610
itos 455583025
mulis 463747060
addir 474477965
real_0_bit 475277217
shiftr_inplace 475461166
affsr 489966424
stor 490250073
mpadd 570850865
negi 640969902
Fl_neg 706681711
itor 707085480
umodsu 720596615
stoi 743914339
expu 775752849
lg2prec 799016551
mpmul 832822201
rcopy 893141991
affii 908778966
mpneg 919099207
subrr 990574978
cmpuu 1434232900
cgetg_copy 1455645356
cgetr 1839392328
togglesign 1914649228
minss 2003873393
absi 2067644869
Fl_sqr_pre 2104732058
mpabs 2137995675
setabssign 2203931804
nbits2lg 2359668515
Fl_mul 2377753398
expi 2426362581
addrr 2853895947
remii 2985691631
adduu 3388687256
stackdummy 3604033542
Fl_mul_pre 3963613300
Fl_add 4310554314
leafcopy 4940261891
shift_right 5607717481
dvmdsBIL 6994193604
Fl_sub 7212996783
Fl_addmul_pre 7577432607
subii 7591711997
shift_left 7667948053
uutoi 8723700355
icopy 9016421196
maxss 9539532940
utoi 11770308248
addii 12306447263
evalexpo 13121222410
utoipos 14080349585
gc_const 15388284049
cgetipos 16243729856
cgetg 24245638449
cgeti 26978406747
new_chunk 92539531331
evallg 94490940115
set_avma 127846822641

Generated by: LCOV version 1.16