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-05-02 08:08: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 4075791995
Fl_addmul_pre 7064491528
Fl_addmulmul_pre 55573996
Fl_center 3928551
Fl_div 33030933
Fl_double 439947835
Fl_ellj_pre 219828
Fl_halve 16880642
Fl_mul 2264263890
Fl_mul_pre 3328769054
Fl_neg 697576952
Fl_sqr 96561178
Fl_sqr_pre 1992476352
Fl_sub 6740383769
Fl_triple 88504511
Mod16 260401
Mod2 1717695
Mod32 183225
Mod4 42484676
Mod64 0
Mod8 1780954
abscmpiu 34109686
abscmpui 34109845
absequaliu 39879272
absequalui 41604678
absi 691465862
absi_shallow 50482723
absr 140
absrnz_equal1 4205927
absrnz_equal2n 1345494
addii 10322761572
addiiz 0
addir 472784159
addirz 0
addis 170790067
addiu 92180830
addri 1098701
addriz 0
addrr 2827021625
addrrz 1307078
addrs 12006036
addsi 295957595
addsiz 0
addsrz 0
addss 25067
addssz 0
addui 95461794
adduu 3126518210
affectsign 0
affectsign_safe 9996821
affii 588117460
affiz 266760
affrr_fixlg 56509610
affsi 5926755
affsr 486165480
affsz 0
affui 44603025
affur 13242632
ceildivuu 2012355
cgetg 23261947798
cgetg_block 363864
cgetg_copy 1221396653
cgeti 24450313367
cgetineg 247955836
cgetipos 14568270969
cgetr 1801458185
cgetr_block 32342
cmpir 10416746
cmpis 3491514
cmpiu 8744550
cmpri 445374
cmprs 40996
cmpsi 3516858
cmpsr 644812
cmpss 1289805
cmpui 8744572
cmpuu 1440977992
divii 13173953
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 16535869
dvdiiz 5431
dvdis 33520
dvdisz 0
dvdiu 576505
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdiiz 0
dvmdis 0
dvmdisz 0
dvmdsBIL 6812616746
dvmdsi 0
dvmdsiz 0
dvmdss 0
dvmdssz 0
dvmduBIL 164324326
equalis 1024471
equaliu 2916517
equalsi 1024654
equalui 2916518
evalexpo 12775178480
evallg 87092682755
evalprecp 19355869
evalvalp 36276062
evalvalser 21353062
expi 1986501260
expu 776143240
fixlg 104100517
fractor 7353742
gc_NULL 6941221
gc_bool 48088441
gc_const 13951147364
gc_double 176810867
gc_int 2557266
gc_long 223793055
gc_stoi 150824
gc_ulong 29131007
gc_utoi 468964
gc_utoipos 1115795
get_avma 0
icopy 7652172812
icopyspec 114606168
int_bit 21908778
itor 684956527
itos 451999024
itos_or_0 22427731
itou 153884209
itou_or_0 2524550
leafcopy 3504290550
lg2prec 793194786
maxdd 3024631
maxss 9069438872
maxuu 19547054
mindd 251162
minss 1646652125
minuu 9449896
mod16 236259
mod2 52981547
mod2BIL 92810982
mod32 259
mod4 4084383
mod64 0
mod8 12787579
modis 19602389
modisz 0
modsi 45217325
modsiz 0
modss 0
modssz 0
mpabs 760967728
mpabs_shallow 13431420
mpadd 590080159
mpaddz 0
mpaff 658462
mpceil 0
mpcmp 2126090
mpcopy 707
mpdiv 663939
mpexpo 33218354
mpfloor 0
mpmul 841565190
mpmulz 0
mpneg 864028877
mpodd 84262617
mpround 1848107
mpshift 147620168
mpsqr 82489763
mpsub 250247634
mpsubz 0
mptrunc 49
muliiz 0
mulirz 0
mulis 482715306
muliu 363560856
mulri 34230328
mulriz 0
mulrrz 192514
mulrs 7114592
mulru 2766284
mulsiz 0
mulsrz 0
mulssz 0
nbits2lg 2338074815
negi 593778335
negr 3526203
new_chunk 84036250784
rcopy 905100436
rdivii 11897215
rdiviiz 11941525
rdivis 0
rdivsi 0
rdivss 839647
real2n 1019549
real_0 775497
real_0_bit 487641789
real_1 126617463
real_1_bit 4478388
real_m1 393
real_m2n 0
remii 2475158284
remiiz 0
remis 0
remisz 0
remlll_pre 81754697
remsi 0
remsiz 0
remss 0
remssz 0
rtor 290475164
sdivsi 100944
sdivsi_rem 51415345
sdivss_rem 0
set_avma 116387911512
setabssign 832798765
shift_left 7129338833
shift_right 5480369469
shiftl 0
shiftlr 0
shiftr 170214557
shiftr_inplace 454995076
smodis 21063940
smodss 6911
stack_calloc 91841
stack_calloc_align 956
stack_malloc 12561845
stack_malloc_align 54676304
stackdummy 3309545335
stoi 717482272
stor 486519200
subii 7506321762
subiiz 28
subir 3011468
subirz 0
subis 169856
subisz 0
subiu 127055849
subri 6020291
subriz 0
subrr 958730531
subrrz 1296706
subrs 15987906
subrsz 0
subsi 5820684
subsiz 0
subsrz 0
subss 25067
subssz 0
subui 131268738
subuu 25067
togglesign 1826709679
togglesign_safe 122261743
truedivii 45923460
truedivis 248128
truedivsi 6197775
uabsdiviu_rem 8349446
uabsdivui_rem 15773
udivuu_rem 158565677
ugcdiu 211384
ugcdui 2737
umodi2n 46427215
umodsu 715962827
umodui 1511727
umuluu_le 5620307
umuluu_or_0 5360799
utoi 10660357428
utoineg 247109124
utoipos 12649160723
utor 13242531
uutoi 7946981562
uutoineg 246218
vali 177695366
varncmp 162309347
varnmax 203
varnmin 0

Generated by: LCOV version 1.14