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.18.1 lcov report (development 30256-57c6c2b57f) Lines: 588 663 88.7 %
Date: 2025-05-09 09:19:30 Functions: 212 236 89.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl_add 4310673686
Fl_addmul_pre 7581416644
Fl_addmulmul_pre 55845989
Fl_center 4023609
Fl_div 46378528
Fl_double 453261175
Fl_ellj_pre 224654
Fl_halve 17019411
Fl_mul 2376536329
Fl_mul_pre 3963871293
Fl_neg 707024663
Fl_sqr 92090517
Fl_sqr_pre 2108418969
Fl_sub 7197321315
Fl_triple 89924478
Mod16 277446
Mod2 2024379
Mod32 199255
Mod4 43883003
Mod64 0
Mod8 2070299
abscmpiu 31036627
abscmpui 31036685
absequaliu 39567124
absequalui 41316024
absi 2052056736
absi_shallow 57591979
absr 140
absrnz_equal1 4515300
absrnz_equal2n 1288114
addii 12317163399
addir 474967967
addis 180521060
addiu 93819892
addri 1101850
addrr 2855746509
addrs 12157097
addsi 305702943
addss 25067
addui 97318646
adduu 3394349495
affectsign 0
affectsign_safe 10722182
affii 908495791
affrr_fixlg 55446208
affsi 6263284
affsr 492378245
affui 45472040
affur 13439126
ceildivuu 3723921
cgetg 24271163426
cgetg_block 387393
cgetg_copy 1456029291
cgeti 27046288268
cgetineg 263842939
cgetipos 16297563099
cgetr 1844049210
cgetr_block 42598
cmpir 9230488
cmpis 3632758
cmpiu 9655120
cmpri 282261
cmprs 40996
cmpsi 3864708
cmpsr 824645
cmpss 1314830
cmpui 9654996
cmpuu 1434995069
divii 14022374
divsi_rem 0
divss 0
divss_rem 0
dvdii 16004224
dvdiiz 0
dvdis 33912
dvdisz 0
dvdiu 576452
dvdiuz 0
dvdsi 371
dvdui 167195
dvmdis 0
dvmdsBIL 7016266342
dvmdsi 0
dvmdss 0
dvmduBIL 165154019
equalis 1096881
equaliu 2955352
equalsi 1097064
equalui 2955353
evalexpo 13163108953
evallg 94667142699
evalprecp 78668633
evalvalp 81625159
evalvalser 21442638
expi 2426187458
expu 778498106
fixlg 103287617
fractor 7374998
gc_NULL 7639473
gc_bool 50765253
gc_const 15427102201
gc_double 180658097
gc_int 2570059
gc_long 238081564
gc_stoi 150795
gc_ulong 36279694
gc_utoi 468568
gc_utoipos 1123595
get_avma 0
icopy 9038473395
icopyspec 115826621
int_bit 21046311
itor 707889401
itos 455588859
itos_or_0 24020535
itou 170790514
itou_or_0 2995432
leafcopy 4918172524
lg2prec 802212913
maxdd 3125862
maxss 9522557047
maxuu 4749039
mindd 257519
minss 2004286542
minuu 66295468
mod16 236238
mod2 60388031
mod2BIL 100962016
mod32 259
mod4 4675667
mod64 0
mod8 12871407
modis 19602559
modsi 45222829
modss 0
mpabs 2122411676
mpabs_shallow 13428449
mpadd 570706397
mpceil 0
mpcmp 2140798
mpcopy 708
mpdiv 664960
mpexpo 38548287
mpfloor 0
mpmul 832717062
mpneg 912384740
mpodd 114058525
mpround 1216527
mpshift 153126845
mpsqr 90146594
mpsub 250449955
mptrunc 49
mulis 463752745
muliu 370537548
mulri 37886133
mulrs 7181596
mulru 2765822
nbits2lg 2364857629
negi 634226380
negr 3517865
new_chunk 92715496657
rcopy 893740099
rdivii 13095319
rdiviiz 13137974
rdivis 0
rdivsi 0
rdivss 839647
real2n 1060213
real_0 1064264
real_0_bit 475211443
real_1 130445766
real_1_bit 4699028
real_m1 455
real_m2n 126
remii 2986494827
remis 0
remlll_pre 75198130
remsi 0
remss 0
rtor 298050483
sdivsi 102150
sdivsi_rem 51427158
sdivss_rem 0
set_avma 128120965733
setabssign 2188539663
shift_left 7694661567
shift_right 5621857136
shiftl 0
shiftlr 0
shiftr 178482768
shiftr_inplace 476657099
smodis 21140226
smodss 12542200
stack_calloc 109147
stack_calloc_align 3300
stack_malloc 45914621
stack_malloc_align 54709600
stackdummy 3598613804
stoi 743967039
stor 492675748
subii 7604863402
subir 3003813
subis 170867
subiu 128772246
subri 6040085
subrr 992437686
subrs 16314348
subsi 5886202
subss 25067
subui 132941138
subuu 25067
togglesign 1908025936
togglesign_safe 124476919
truedivii 45989221
truedivis 248461
truedivsi 6202031
uabsdiviu_rem 11892741
uabsdivui_rem 19089
udivuu_rem 158896721
ugcdiu 9980574
ugcdui 2737
umodi2n 48454353
umodsu 721113163
umodui 1296213
umuluu_le 5800680
umuluu_or_0 5505017
utoi 11810020088
utoineg 262989114
utoipos 14128014432
utor 13439022
uutoi 8767088858
uutoineg 355873
vali 186127948
varncmp 216726796
varnmax 203
varnmin 15547

Generated by: LCOV version 1.16