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.1 lcov report (development 28676-df828f1c94) Lines: 597 758 78.8 %
Date: 2023-08-26 07:54:43 Functions: 216 283 76.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 3929588443
Fl_addmul_pre 6361402950
Fl_addmulmul_pre 55579756
Fl_center 3901574
Fl_div 32219761
Fl_double 433960341
Fl_ellj_pre 219819
Fl_halve 16899299
Fl_mul 2239027864
Fl_mul_pre 3199783160
Fl_neg 691670480
Fl_sqr 94091622
Fl_sqr_pre 1885837924
Fl_sub 6651169485
Fl_triple 88547943
Mod16 244266
Mod2 1689218
Mod32 167642
Mod4 16449130
Mod64 0
Mod8 1780744
abscmpiu 31849794
abscmpui 31851301
absequaliu 37365110
absequalui 39054791
absi 660215550
absi_shallow 40918286
absr 39811
absrnz_equal1 3465520
absrnz_equal2n 1106798
addii 9246473282
addiiz 0
addir 346276966
addirz 0
addis 149362456
addiu 87490133
addri 1098435
addriz 0
addrr 2128412369
addrrz 1307078
addrs 10259444
addsi 283944802
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 90769793
adduu 3116049243
affectsign 0
affectsign_safe 10085892
affii 940826102
affiz 267006
affrr_fixlg 42136076
affsi 4161104
affsr 412764738
affsz 0
affui 45105069
affur 12489959
ceildivuu 1999219
cgetg 10919609015
cgetg_block 361583
cgetg_copy 1019130999
cgeti 24400892415
cgetineg 254924528
cgetipos 14230714276
cgetr 10123640796
cgetr_block 39481
cmpir 1695142
cmpis 3840337
cmpiu 8695574
cmpri 409082
cmprs 40996
cmpsi 3862244
cmpsr 608384
cmpss 1289805
cmpui 8700481
cmpuu 1403601554
divii 12228003
diviiz 0
divirz 0
divisz 0
divriz 0
divrrz 519
divrsz 0
divsi_rem 0
divsiz 0
divsrz 0
divss 0
divss_rem 0
divssz 0
dvdii 16066115
dvdiiz 6069
dvdis 33478
dvdisz 0
dvdiu 575726
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 5511008061
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 165823559
equalis 515307
equaliu 2911306
equalsi 515489
equalui 2911306
evalexpo 10074226591
evallg 81720542889
evalprecp 22594573
evalvalp 41858404
evalvalser 21140371
expi 1490953563
expu 664490650
fixlg 89327810
fractor 7350643
gc_NULL 6522344
gc_bool 43515343
gc_const 13967428753
gc_double 296579730
gc_int 1742991
gc_long 217632710
gc_stoi 150684
gc_ulong 28853026
gc_utoi 422279
gc_utoipos 1123136
get_avma 0
icopy 7270054164
icopyspec 99917797
int_bit 20693125
itor 673820056
itos 435823506
itos_or_0 17543932
itou 148050776
itou_or_0 2845638
leafcopy 2992871338
maxdd 2774334
maxss 8618808566
maxuu 9792676
mindd 534197
minss 1624845972
minuu 5284292
mod16 236258
mod2 52459464
mod2BIL 92019296
mod32 259
mod4 4084485
mod64 0
mod8 12780311
modis 19602353
modisz 0
modsi 45090619
modsiz 0
modss 0
modssz 0
mpabs 698530715
mpabs_shallow 13423706
mpadd 83291562
mpaddz 0
mpaff 658567
mpceil 0
mpcmp 2120812
mpcopy 707
mpdiv 663384
mpexpo 653953
mpfloor 0
mpmul 121226846
mpmulz 0
mpneg 785785729
mpodd 84341613
mpround 1417050
mpshift 108177629
mpsqr 15331172
mpsub 39660832
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 347415505
muliu 364440567
mulri 36015650
mulriz 0
mulrrz 192514
mulrs 10271246
mulru 2680821
mulsiz 0
mulsrz 0
mulssz 0
negi 537039007
negr 2385516
new_chunk 78166055210
rcopy 689710563
rdivii 7764837
rdiviiz 7804450
rdivis 0
rdivsi 0
rdivss 839647
real2n 606679
real_0 552511
real_0_bit 107993103
real_1 88049799
real_1_bit 2727456
real_m1 322
real_m2n 0
remii 2562965323
remiiz 0
remis 0
remisz 0
remlll_pre 85053146
remsi 0
remsiz 0
remss 0
remssz 0
rtor 232479442
sdivsi 100945
sdivsi_rem 51288638
sdivss_rem 0
set_avma 108953873276
setabssign 761551612
shift_left 6035574585
shift_right 4470144703
shiftl 0
shiftlr 0
shiftr 153989120
shiftr_inplace 300181098
smodis 21005606
smodss 6416
stack_calloc 86120
stack_calloc_align 1094
stack_malloc 8513170
stack_malloc_align 75475938
stackdummy 3130065165
stoi 715816093
stor 413080168
subii 8728638083
subiiz 28
subir 2825741
subirz 0
subis 169844
subisz 0
subiu 114937344
subri 6129007
subriz 0
subrr 754035166
subrrz 1296706
subrs 12700638
subrsz 0
subsi 5717695
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 119662321
subuu 25067
togglesign 1656256229
togglesign_safe 119908762
truedivii 46944922
truedivis 242294
truedivsi 6197775
uabsdiviu_rem 10187366
uabsdivui_rem 13299
udivuu_rem 158393101
ugcdiu 211661
ugcdui 2737
umodi2n 20331451
umodsu 715542027
umodui 1511713
umuluu_le 5645062
umuluu_or_0 5453443
utoi 10405605551
utoineg 251558762
utoipos 12278943541
utor 12487905
uutoi 7702565245
uutoineg 246301
vali 171804598
varncmp 162800836
varnmax 203
varnmin 0

Generated by: LCOV version 1.14