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 29877-9124a6ce27) Lines: 605 765 79.1 %
Date: 2025-01-18 09:08:44 Functions: 219 285 76.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4297841164
Fl_addmul_pre 7455999100
Fl_addmulmul_pre 55864165
Fl_center 4023899
Fl_div 33134944
Fl_double 452392010
Fl_ellj_pre 223478
Fl_halve 16982870
Fl_mul 2370647479
Fl_mul_pre 3936965514
Fl_neg 706392375
Fl_sqr 92108249
Fl_sqr_pre 2096810108
Fl_sub 7196933239
Fl_triple 89999036
Mod16 277446
Mod2 2024379
Mod32 199255
Mod4 44724718
Mod64 0
Mod8 2070075
abscmpiu 33660577
abscmpui 33660734
absequaliu 39797558
absequalui 41546222
absi 2055809849
absi_shallow 59347700
absr 140
absrnz_equal1 4508186
absrnz_equal2n 1276809
addii 12099551605
addiiz 0
addir 474260706
addirz 0
addis 180196754
addiu 98080670
addri 1102629
addriz 0
addrr 2851099629
addrrz 1307127
addrs 12130535
addsi 305377651
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 101552833
adduu 3388606157
affectsign 0
affectsign_safe 10651483
affii 924155931
affiz 282555
affrr_fixlg 55177447
affsi 6173351
affsr 489341518
affsz 0
affui 45448525
affur 13421302
ceildivuu 3715226
cgetg 23980114631
cgetg_block 380895
cgetg_copy 1289670634
cgeti 26057263235
cgetineg 264095282
cgetipos 15980620936
cgetr 1837371299
cgetr_block 42534
cmpir 9221422
cmpis 3662069
cmpiu 9659218
cmpri 282127
cmprs 40996
cmpsi 3893420
cmpsr 814587
cmpss 1300662
cmpui 9659249
cmpuu 1432987727
divii 14011237
diviiz 0
divirz 0
divisz 0
divriz 0
divrrz 501
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdii 16115761
dvdiiz 1325
dvdis 33569
dvdisz 0
dvdiu 576542
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6984001798
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 166069921
equalis 1102541
equaliu 2948895
equalsi 1102723
equalui 2948895
evalexpo 13107516865
evallg 92321584165
evalprecp 44638618
evalvalp 78778028
evalvalser 21442162
expi 2130719986
expu 772742678
fixlg 102976235
fractor 7374782
gc_NULL 7319438
gc_bool 48031680
gc_const 14565764684
gc_double 180685617
gc_int 2574024
gc_long 238716491
gc_stoi 150916
gc_ulong 36222917
gc_utoi 468358
gc_utoipos 1122868
get_avma 0
icopy 8851329465
icopyspec 115486446
int_bit 21390851
itor 706538613
itos 455495871
itos_or_0 24010559
itou 171665471
itou_or_0 2995311
leafcopy 4906672696
lg2prec 798141731
maxdd 3129671
maxss 9523894144
maxuu 4749353
mindd 254920
minss 1671689503
minuu 66387734
mod16 236392
mod2 60494470
mod2BIL 101085706
mod32 259
mod4 4674869
mod64 0
mod8 12904540
modis 19602559
modisz 0
modsi 45222585
modsiz 0
modss 0
modssz 0
mpabs 2126142148
mpabs_shallow 13431858
mpadd 568947145
mpaddz 0
mpaff 674453
mpceil 0
mpcmp 2141484
mpcopy 707
mpdiv 665389
mpexpo 38557508
mpfloor 0
mpmul 830869105
mpmulz 0
mpneg 897308980
mpodd 113358745
mpround 1215573
mpshift 152972817
mpsqr 90149982
mpsub 250386579
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 463743648
muliu 369181690
mulri 37872856
mulriz 0
mulrrz 192514
mulrs 7181596
mulru 2766389
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2355560244
negi 619195042
negr 3509504
new_chunk 90174416236
rcopy 893151480
rdivii 13004082
rdiviiz 13048737
rdivis 0
rdivsi 0
rdivss 839647
real2n 1059849
real_0 1065162
real_0_bit 473301749
real_1 130148217
real_1_bit 4680295
real_m1 455
real_m2n 126
remii 2530859298
remiiz 0
remis 0
remisz 0
remlll_pre 74946954
remsi 0
remsiz 0
remss 0
remssz 0
rtor 296680165
sdivsi 102150
sdivsi_rem 51424862
sdivss_rem 0
set_avma 124503531430
setabssign 2192192232
shift_left 7380026210
shift_right 5602980519
shiftl 0
shiftlr 0
shiftr 177609951
shiftr_inplace 475449985
smodis 21139779
smodss 12436943
stack_calloc 109235
stack_calloc_align 3312
stack_malloc 45919528
stack_malloc_align 54717138
stackdummy 3437548263
stoi 734973948
stor 489699973
subii 7502221766
subiiz 28
subir 3003911
subirz 0
subis 170945
subisz 0
subiu 128437672
subri 6012123
subriz 0
subrr 989564526
subrrz 1296706
subrs 16288206
subrsz 0
subsi 5894852
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 132610048
subuu 25067
togglesign 1915660713
togglesign_safe 124568711
truedivii 46010948
truedivis 248864
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 15833
udivuu_rem 158853308
ugcdiu 211271
ugcdui 2737
umodi2n 49295818
umodsu 720714799
umodui 1293038
umuluu_le 5630478
umuluu_or_0 5507180
utoi 11634409883
utoineg 263236039
utoipos 13876296528
utor 13421194
uutoi 8610322907
uutoineg 319007
vali 184508848
varncmp 163668780
varnmax 203
varnmin 0

Generated by: LCOV version 1.16