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.16.2 lcov report (development 29420-55f63b8cfe) Lines: 604 765 79.0 %
Date: 2024-07-03 09:03:24 Functions: 218 285 76.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4248900960
Fl_addmul_pre 6937858204
Fl_addmulmul_pre 55875068
Fl_center 4023087
Fl_div 33103633
Fl_double 442966670
Fl_ellj_pre 223488
Fl_halve 16985349
Fl_mul 2265421044
Fl_mul_pre 3327126753
Fl_neg 699570611
Fl_sqr 92018789
Fl_sqr_pre 1994827188
Fl_sub 6715010198
Fl_triple 88913042
Mod16 276473
Mod2 2024365
Mod32 199241
Mod4 44339360
Mod64 0
Mod8 2069648
abscmpiu 35516172
abscmpui 35516294
absequaliu 41558306
absequalui 43283883
absi 2022010691
absi_shallow 61159767
absr 140
absrnz_equal1 4512720
absrnz_equal2n 1272715
addii 11646729107
addiiz 0
addir 472131773
addirz 0
addis 180080269
addiu 95851876
addri 1099665
addriz 0
addrr 2841157387
addrrz 1307078
addrs 12166368
addsi 305245644
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 99335677
adduu 3258771159
affectsign 0
affectsign_safe 9955670
affii 909707455
affiz 267806
affrr_fixlg 55331281
affsi 6152380
affsr 489496678
affsz 0
affui 45176253
affur 13411002
ceildivuu 3686772
cgetg 23622549718
cgetg_block 370784
cgetg_copy 1239905773
cgeti 25451061233
cgetineg 251991341
cgetipos 15506856247
cgetr 1830252606
cgetr_block 42359
cmpir 9300706
cmpis 4094037
cmpiu 9372947
cmpri 446011
cmprs 40996
cmpsi 4324539
cmpsr 650299
cmpss 1300235
cmpui 9372947
cmpuu 1430887894
divii 13950006
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 16548231
dvdiiz 3036
dvdis 33520
dvdisz 0
dvdiu 576507
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6937646403
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 172542061
equalis 996272
equaliu 2919349
equalsi 996454
equalui 2919348
evalexpo 13056801919
evallg 90645250457
evalprecp 44618547
evalvalp 78725603
evalvalser 21481425
expi 2058397037
expu 787873541
fixlg 102780633
fractor 7374175
gc_NULL 6942171
gc_bool 46199608
gc_const 14367448718
gc_double 177997942
gc_int 2575410
gc_long 236087781
gc_stoi 150929
gc_ulong 28740916
gc_utoi 469843
gc_utoipos 1119864
get_avma 0
icopy 8678665263
icopyspec 113721178
int_bit 21725268
itor 700691816
itos 454812843
itos_or_0 23990101
itou 173425435
itou_or_0 2994204
leafcopy 4845602791
lg2prec 796421416
maxdd 3047974
maxss 9089513373
maxuu 19366300
mindd 254676
minss 1661151760
minuu 66845956
mod16 236336
mod2 53127949
mod2BIL 93676306
mod32 259
mod4 4675173
mod64 0
mod8 12893467
modis 19602557
modisz 0
modsi 45217555
modsiz 0
modss 0
modssz 0
mpabs 2089267607
mpabs_shallow 13431777
mpadd 571193121
mpaddz 0
mpaff 659697
mpceil 0
mpcmp 2128469
mpcopy 707
mpdiv 663986
mpexpo 38507601
mpfloor 0
mpmul 832372113
mpmulz 0
mpneg 877728488
mpodd 83654605
mpround 1215397
mpshift 152266883
mpsqr 89658669
mpsub 249793928
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 470698784
muliu 355362482
mulri 37810874
mulriz 0
mulrrz 192514
mulrs 7181596
mulru 2766389
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2342208895
negi 602926149
negr 3509240
new_chunk 88603521808
rcopy 899960727
rdivii 13001603
rdiviiz 13046075
rdivis 0
rdivsi 0
rdivss 839647
real2n 1056670
real_0 756462
real_0_bit 472357042
real_1 129453288
real_1_bit 4659179
real_m1 329
real_m2n 0
remii 2494941641
remiiz 0
remis 0
remisz 0
remlll_pre 81652919
remsi 0
remsiz 0
remss 0
remssz 0
rtor 296464515
sdivsi 101892
sdivsi_rem 51415575
sdivss_rem 0
set_avma 122431527304
setabssign 2154960632
shift_left 7356507786
shift_right 5565455576
shiftl 0
shiftlr 0
shiftr 177956938
shiftr_inplace 475878495
smodis 21139473
smodss 12456830
stack_calloc 103625
stack_calloc_align 2443
stack_malloc 44728265
stack_malloc_align 54384950
stackdummy 3341488748
stoi 733114560
stor 489853760
subii 7402400849
subiiz 28
subir 3014645
subirz 0
subis 170686
subisz 0
subiu 128370797
subri 5766981
subriz 0
subrr 979978995
subrrz 1296706
subrs 16302484
subrsz 0
subsi 5894283
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 132534289
subuu 25067
togglesign 1875081628
togglesign_safe 120848257
truedivii 45375594
truedivis 244012
truedivsi 6197775
uabsdiviu_rem 11892741
uabsdivui_rem 15794
udivuu_rem 158833806
ugcdiu 210606
ugcdui 2737
umodi2n 48909250
umodsu 720174727
umodui 1511748
umuluu_le 5630016
umuluu_or_0 5433450
utoi 11204721372
utoineg 251141364
utoipos 13416629385
utor 13410905
uutoi 8368413060
uutoineg 319175
vali 173154503
varncmp 162320930
varnmax 203
varnmin 0

Generated by: LCOV version 1.16