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.14.0 lcov report (development 27775-aca467eab2) Lines: 590 751 78.6 %
Date: 2022-07-03 07:33:15 Functions: 212 279 76.0 %
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 42
dvdui 168
varnmax 203
mod32 259
mpcopy 294
real_m1 322
dvdsi 371
divrrz 505
stack_calloc_align 1087
ugcdui 3465
dvdis 5677
dvdiiz 5812
smodss 6423
uabsdivui_rem 13269
addss 25046
subss 25046
subuu 25046
cgetr_block 38943
absr 39795
cmprs 40954
stack_calloc 84931
sdivsi 100924
subis 103375
Mod32 167643
mulrrz 188090
Fl_ellj_pre 196203
ugcdiu 211164
mod16 235213
truedivis 235663
Mod16 244027
uutoineg 244103
cgetg_block 263076
affiz 267379
cmpri 410007
dvdiu 420477
mindd 476975
equalis 490916
equalsi 491098
real_0 547122
cmpsr 578239
real2n 595957
mpdiv 623093
mpexpo 636331
mpaff 678199
rdivss 839650
cmpir 1006263
umodui 1029345
addri 1095074
absrnz_equal2n 1138780
cmpss 1160311
subrrz 1296708
addrrz 1307080
mpround 1389800
mpcmp 1498136
Mod2 1689170
gc_int 1745653
ceildivuu 1776649
Mod8 1780870
negr 2063472
mpabs_shallow 2612097
itou_or_0 2655361
mulru 2676835
real_1_bit 2688306
maxdd 2766623
equaliu 2785364
equalui 2785364
subir 2825377
absrnz_equal1 3628555
cmpis 3817429
cmpsi 3839135
umuluu_le 3857752
Fl_center 3894138
affsi 3981479
mod4 4068255
cmpiu 4630893
cmpui 4630893
subsi 5508267
truedivsi 6196889
gc_NULL 6234968
subri 6595021
umuluu_or_0 7278828
fractor 7345380
addrs 7643740
stack_malloc 7656982
rdivii 7749483
rdiviiz 7789232
affui 7964645
maxuu 9318395
affectsign_safe 9990672
subrs 10049919
uabsdiviu_rem 10187366
mulrs 10271232
divii 12289485
mod8 12300129
utor 12423708
affur 12425741
minuu 13273226
dvdii 15385028
int_bit 15574344
Fl_halve 15656236
mpsqr 17418848
Mod4 18389365
modis 19602315
smodis 20928152
gc_ulong 21436565
umodi2n 22272042
evalprecp 25012031
Fl_div 30364934
modsi 34822068
mulri 35277713
absequaliu 35638850
affrr_fixlg 37021003
absequalui 37325715
abscmpiu 38272743
abscmpui 38274240
gc_bool 39825023
sdivsi_rem 41019201
mod2 50852908
absi_shallow 51025912
Fl_addmulmul_pre 52613355
mpsub 53004515
truedivii 55548523
stack_malloc_align 61443051
evalvalp 66509281
itos_or_0 73178152
Fl_triple 74328992
real_1 79474332
fixlg 83224697
remlll_pre 84291774
mod2BIL 84684420
mpodd 86041709
icopyspec 89636671
addiu 91075816
addui 92832165
mpadd 96329019
subiu 103956922
real_0_bit 106350520
mpshift 106601378
subui 109035815
Fl_sqr 111161404
togglesign_safe 113592863
itou 129190772
shiftr 129868828
vali 143324508
addis 144900546
mpmul 152434994
udivuu_rem 158377410
muliu 161155369
varncmp 161728627
dvmduBIL 162842258
gc_long 201355589
rtor 206062520
utoineg 269936666
cgetineg 273426371
addsi 278242802
shiftr_inplace 283209346
gc_double 288453089
affsr 379620587
stor 379932828
Fl_double 381278078
mulis 412031168
affii 422132564
itos 428700120
addir 441532544
negi 573304820
absi 631883999
Fl_neg 640612200
mpabs 663766692
expu 663939947
itor 667118975
subrr 708681668
umodsu 712304519
setabssign 714489209
rcopy 750325853
stoi 751568319
mpneg 818526245
cgetg_copy 989568675
expi 1212338607
minss 1315311203
cmpuu 1385762886
togglesign 1645530229
Fl_sqr_pre 1920335569
addrr 2019542018
remii 2181038096
Fl_mul 2191151019
stackdummy 2893324423
leafcopy 3101066856
adduu 3182871997
Fl_mul_pre 3255973738
Fl_add 3859576343
shift_right 4607929513
dvmdsBIL 5100865273
shift_left 5389339076
Fl_addmul_pre 6268205698
Fl_sub 6720850296
icopy 6799441626
subii 7162018393
uutoi 7460449611
maxss 8460984237
addii 9442448050
evalexpo 9551796635
cgetr 9575488615
utoi 10551202095
cgetg 10658962969
gc_const 11590053225
utoipos 12358794508
cgetipos 14167818031
cgeti 23452312921
new_chunk 72940560297
evallg 75944980339
set_avma 101388123754

Generated by: LCOV version 1.13