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 29115-f22e516b23) Lines: 604 765 79.0 %
Date: 2024-04-23 08:07:35 Functions: 218 285 76.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4077409838
Fl_addmul_pre 7069637058
Fl_addmulmul_pre 55569527
Fl_center 3928389
Fl_div 33012469
Fl_double 440164379
Fl_ellj_pre 219843
Fl_halve 16879079
Fl_mul 2262300721
Fl_mul_pre 3326406020
Fl_neg 697518923
Fl_sqr 96592077
Fl_sqr_pre 1992510253
Fl_sub 6726809877
Fl_triple 88520636
Mod16 260401
Mod2 1717695
Mod32 183225
Mod4 42487125
Mod64 0
Mod8 1780954
abscmpiu 33425034
abscmpui 33425210
absequaliu 39879123
absequalui 41604516
absi 691517210
absi_shallow 49798692
absr 140
absrnz_equal1 4205924
absrnz_equal2n 1345491
addii 10323377910
addiiz 0
addir 472817184
addirz 0
addis 170786212
addiu 90808866
addri 1098672
addriz 0
addrr 2827390084
addrrz 1307078
addrs 12008978
addsi 295955383
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 94089774
adduu 3125263471
affectsign 0
affectsign_safe 9996394
affii 588119095
affiz 266760
affrr_fixlg 56513269
affsi 5926721
affsr 486177531
affsz 0
affui 44603025
affur 13242627
ceildivuu 2012887
cgetg 23254420477
cgetg_block 363881
cgetg_copy 1221595111
cgeti 24446497259
cgetineg 247957421
cgetipos 14567104673
cgetr 1801384144
cgetr_block 32395
cmpir 10406459
cmpis 3491387
cmpiu 8745078
cmpri 445375
cmprs 40996
cmpsi 3516733
cmpsr 644812
cmpss 1289805
cmpui 8745100
cmpuu 1441020295
divii 13169376
diviiz 0
divirz 0
divisz 0
divriz 0
divrrz 504
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdii 16540648
dvdiiz 5431
dvdis 33520
dvdisz 0
dvdiu 576505
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6812879559
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 164527499
equalis 1026004
equaliu 2916496
equalsi 1026186
equalui 2916497
evalexpo 12776340687
evallg 87080060374
evalprecp 19355409
evalvalp 36275521
evalvalser 21353062
expi 1986264419
expu 776163113
fixlg 104104168
fractor 7353739
gc_NULL 6942947
gc_bool 48094827
gc_const 13951624045
gc_double 176780788
gc_int 2557307
gc_long 223796569
gc_stoi 150826
gc_ulong 29139086
gc_utoi 469083
gc_utoipos 1115777
get_avma 0
icopy 7651965857
icopyspec 114606878
int_bit 21926763
itor 684875483
itos 451983874
itos_or_0 22427675
itou 153890190
itou_or_0 2524532
leafcopy 3505195882
lg2prec 793186775
maxdd 3025082
maxss 9056209899
maxuu 19548598
mindd 251166
minss 1646486646
minuu 9450645
mod16 236256
mod2 52980803
mod2BIL 92812585
mod32 259
mod4 4084387
mod64 0
mod8 12787667
modis 19602389
modisz 0
modsi 45217350
modsiz 0
modss 0
modssz 0
mpabs 761003073
mpabs_shallow 13431420
mpadd 589849924
mpaddz 0
mpaff 658462
mpceil 0
mpcmp 2126069
mpcopy 707
mpdiv 663943
mpexpo 33232941
mpfloor 0
mpmul 841372306
mpmulz 0
mpneg 864073820
mpodd 84261000
mpround 1848106
mpshift 147626141
mpsqr 82506953
mpsub 250217844
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 482693940
muliu 363594868
mulri 34230304
mulriz 0
mulrrz 192514
mulrs 7114592
mulru 2766284
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2337459382
negi 593828807
negr 3526430
new_chunk 84024751365
rcopy 905652214
rdivii 11897646
rdiviiz 11942029
rdivis 0
rdivsi 0
rdivss 839647
real2n 1019537
real_0 775659
real_0_bit 487694859
real_1 126601046
real_1_bit 4478306
real_m1 393
real_m2n 0
remii 2474613353
remiiz 0
remis 0
remisz 0
remlll_pre 81860451
remsi 0
remsiz 0
remss 0
remssz 0
rtor 290482801
sdivsi 100945
sdivsi_rem 51415370
sdivss_rem 0
set_avma 116373791310
setabssign 832832613
shift_left 7130011050
shift_right 5480913214
shiftl 0
shiftlr 0
shiftr 170223752
shiftr_inplace 455013829
smodis 21063940
smodss 6914
stack_calloc 91857
stack_calloc_align 956
stack_malloc 12562648
stack_malloc_align 54691811
stackdummy 3305860281
stoi 717779561
stor 486535133
subii 7506573701
subiiz 28
subir 3011492
subirz 0
subis 169858
subisz 0
subiu 127062283
subri 5965270
subriz 0
subrr 958667747
subrrz 1296706
subrs 15990971
subrsz 0
subsi 5820535
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 131275273
subuu 25067
togglesign 1826873578
togglesign_safe 122259126
truedivii 45900647
truedivis 248121
truedivsi 6197775
uabsdiviu_rem 8349446
uabsdivui_rem 15773
udivuu_rem 158565677
ugcdiu 211747
ugcdui 2737
umodi2n 46429619
umodsu 715972200
umodui 1511727
umuluu_le 5620307
umuluu_or_0 5338833
utoi 10659255736
utoineg 247110821
utoipos 12648162360
utor 13242536
uutoi 7947437915
uutoineg 246363
vali 177698440
varncmp 162310194
varnmax 203
varnmin 0

Generated by: LCOV version 1.14