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 29466-df46cf9131) Lines: 604 765 79.0 %
Date: 2024-07-26 09:04:52 Functions: 218 285 76.5 %
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
real_m2n 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
absr 140
varnmax 203
mod32 259
real_m1 329
dvdsi 371
divrrz 501
mpcopy 707
stack_calloc_align 2443
ugcdui 2737
dvdiiz 3036
uabsdivui_rem 15794
addss 25067
subss 25067
subuu 25067
dvdis 33527
cmprs 40996
cgetr_block 42368
sdivsi 101890
stack_calloc 103635
gc_stoi 150927
dvdui 167195
subis 170684
mulrrz 192514
Mod32 199241
ugcdiu 211129
Fl_ellj_pre 223465
mod16 236336
truedivis 244026
mindd 254672
affiz 267806
Mod16 276473
uutoineg 319421
cgetg_block 370837
cmpri 446003
gc_utoi 469897
dvdiu 576508
cmpsr 650299
mpaff 659697
mpdiv 663989
real_0 756456
rdivss 839647
equalis 996179
equalsi 996360
real2n 1056659
addri 1099648
gc_utoipos 1119829
mpround 1215403
absrnz_equal2n 1272672
subrrz 1296706
cmpss 1300235
addrrz 1307078
umodui 1511748
Mod2 2024365
Mod8 2069648
mpcmp 2128443
gc_int 2575440
mulru 2766389
equaliu 2919358
equalui 2919361
itou_or_0 2994210
subir 3014654
maxdd 3047705
negr 3509622
ceildivuu 3684913
Fl_center 4023341
cmpis 4094074
cmpsi 4324577
absrnz_equal1 4512626
real_1_bit 4659004
mod4 4675187
umuluu_or_0 5423695
umuluu_le 5630016
subri 5742602
subsi 5894239
affsi 6152144
truedivsi 6197775
gc_NULL 6942845
mulrs 7181596
fractor 7374164
cmpir 9314963
cmpiu 9374069
cmpui 9374078
affectsign_safe 10422250
uabsdiviu_rem 11892741
addrs 12166232
smodss 12480822
mod8 12893438
rdivii 13005717
rdiviiz 13048499
utor 13410858
affur 13410966
mpabs_shallow 13431777
divii 13949419
subrs 16302264
dvdii 16547086
Fl_halve 16987359
maxuu 19366752
modis 19602557
smodis 21139480
evalvalser 21481397
int_bit 21738611
itos_or_0 23991527
gc_ulong 28749429
Fl_div 33116353
abscmpiu 35704015
abscmpui 35704187
mulri 37811151
mpexpo 38505592
absequaliu 41558502
absequalui 43284080
Mod4 44345676
evalprecp 44620367
stack_malloc 44728281
affui 45176253
modsi 45217507
truedivii 45352325
gc_bool 46199064
umodi2n 48915563
sdivsi_rem 51415529
mod2 53128770
stack_malloc_align 54384066
affrr_fixlg 55333106
Fl_addmulmul_pre 55873935
absi_shallow 61346292
minuu 66874422
remlll_pre 75418235
evalvalp 78728011
mpodd 83656067
Fl_triple 89250598
mpsqr 89668329
Fl_sqr 92039133
mod2BIL 93680989
addiu 96229833
addui 99713651
fixlg 102783171
icopyspec 113722099
togglesign_safe 121017687
subiu 128370870
real_1 129439471
subui 132534688
mpshift 152355127
udivuu_rem 158833806
varncmp 162320877
dvmduBIL 172819835
vali 173151963
itou 173482416
shiftr 177965350
gc_double 177968325
addis 180077931
gc_long 235674414
mpsub 249838802
utoineg 251086410
cgetineg 251936450
rtor 296473976
addsi 305242033
muliu 355379940
Fl_double 443839344
itos 454751904
mulis 470684507
addir 472114558
real_0_bit 474403408
shiftr_inplace 476118618
affsr 489634471
stor 489943187
mpadd 573040146
negi 602996795
Fl_neg 699848873
itor 701135484
umodsu 720163310
stoi 733201044
expu 787993565
lg2prec 796839695
mpmul 834302039
mpneg 877821211
rcopy 890413268
affii 910039483
subrr 980148525
cgetg_copy 1240479511
cmpuu 1430886148
minss 1663129487
cgetr 1830972909
togglesign 1875673167
Fl_sqr_pre 1996103501
absi 2022050858
expi 2058831354
mpabs 2089328794
setabssign 2155048295
Fl_mul 2267785685
nbits2lg 2344582397
remii 2482406765
addrr 2844600678
adduu 3262659918
Fl_mul_pre 3332155220
stackdummy 3344422760
Fl_add 4254154422
leafcopy 4836492402
shift_right 5569307747
Fl_sub 6736326072
Fl_addmul_pre 6942684704
dvmdsBIL 6942737988
shift_left 7359970822
subii 7408054953
uutoi 8382648968
icopy 8685116898
maxss 8980794643
utoi 11223928511
addii 11661169635
evalexpo 13067269941
utoipos 13435908710
gc_const 14347585010
cgetipos 15529261659
cgetg 23619910415
cgeti 25452389866
new_chunk 88616264649
evallg 90658625791
set_avma 122424809840

Generated by: LCOV version 1.16