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 30417-3115e90663) Lines: 605 680 89.0 %
Date: 2025-07-28 09:23:22 Functions: 214 238 89.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Mod64 0
affectsign 0
divsi_rem 0
divss 0
divss_rem 0
dvdiiz 0
dvdisz 0
dvdiuz 0
dvmdis 0
dvmdsi 0
dvmdss 0
get_avma 0
mod64 0
modss 0
mpceil 0
mpfloor 0
rdivis 0
rdivsi 0
remis 0
remsi 0
remss 0
sdivss_rem 0
shiftl 0
shiftlr 0
mptrunc 49
real_m2n 126
absr 140
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 708
ugcdui 2737
thuemorseu 2851
stack_calloc_align 3300
varnmin 15547
uabsdivui_rem 19089
addss 25067
subss 25067
subuu 25067
dvdis 33912
cmprs 40996
cgetr_block 43491
sdivsi 102149
stack_calloc 110070
gc_stoi 155882
dvdui 167195
subis 170993
Mod32 199255
mod16 236596
Fl_ellj_pre 242637
truedivis 266804
mindd 270154
Mod16 277481
cmpri 282261
uutoineg 355409
cgetg_block 393557
gc_utoi 468501
dvdiu 576572
mpdiv 667693
cmpsr 824647
rdivss 839647
real2n 1060991
addri 1109347
gc_utoipos 1153901
real_0 1155976
equalis 1174330
equalsi 1174512
mpround 1216538
absrnz_equal2n 1288939
umodui 1296416
cmpss 1427033
Mod2 2024379
Mod8 2070299
mpcmp 2227433
gc_int 2574214
mulru 2765822
equaliu 2995212
equalui 2995214
itou_or_0 2996099
subir 3006045
maxdd 3163245
cmpis 3633419
negr 3692363
ceildivuu 3846735
cmpsi 3865368
Fl_center 4030060
absrnz_equal1 4515396
mod4 4684327
real_1_bit 4700836
maxuu 4804871
umuluu_or_0 5550518
umuluu_le 5800680
subsi 6112238
subri 6119128
truedivsi 6202031
affsi 6382173
mulrs 7181596
fractor 7375261
gc_NULL 7969155
cmpir 9425873
cmpiu 9658127
cmpui 9658140
ugcdiu 9985501
affectsign_safe 10736557
uabsdiviu_rem 11892741
addrs 12353734
smodss 12467751
rdivii 13097427
rdiviiz 13141263
mod8 13272063
mpabs_shallow 13428463
utor 13453414
affur 13453518
divii 14057858
dvdii 16480651
subrs 16512471
Fl_halve 18013757
modis 19602559
smodis 21140226
evalvalser 21443016
int_bit 22251476
hammingu 24045218
itos_or_0 24091176
abscmpiu 30976498
abscmpui 30976683
mulri 38041325
mpexpo 38843402
absequaliu 39649893
absequalui 41398794
Mod4 44327238
modsi 45225504
affui 45473823
Fl_div 46466237
stack_malloc 46628878
truedivii 46782996
umodi2n 48898670
gc_ulong 50793441
sdivsi_rem 51429836
gc_bool 51915054
stack_malloc_align 55474775
affrr_fixlg 55888117
absi_shallow 57516085
Fl_addmulmul_pre 60056035
mod2 61131199
minuu 68386901
remlll_pre 75421027
evalprecp 78668249
evalvalp 81624928
mpsqr 90934502
Fl_sqr 94787653
addiu 94849699
Fl_triple 95503630
addui 98354083
mod2BIL 102262035
fixlg 104991685
mpodd 115070734
icopyspec 116519425
togglesign_safe 125075513
subiu 130234474
real_1 131576816
subui 134472719
mpshift 153180647
udivuu_rem 159818229
dvmduBIL 163319531
itou 176158933
shiftr 180380715
addis 181293878
gc_double 184364616
vali 187925454
varncmp 217197568
gc_long 239235597
mpsub 251431752
utoineg 266451625
cgetineg 267309370
rtor 300392259
addsi 306477276
muliu 372420951
itos 459010829
mulis 464048994
Fl_double 473903301
shiftr_inplace 478614374
real_0_bit 478665471
addir 478878128
affsr 495568408
stor 495904547
mpadd 574037475
negi 636056488
itor 712455440
Fl_neg 716433182
umodsu 724166498
stoi 745521605
expu 786640763
lg2prec 806772018
mpmul 836992125
rcopy 904200751
affii 908601561
mpneg 916474796
subrr 1000111567
cmpuu 1446494390
cgetg_copy 1464363857
cgetr 1856933439
togglesign 1919125895
minss 2006196598
absi 2060443284
mpabs 2131670385
Fl_sqr_pre 2160760363
setabssign 2198054861
nbits2lg 2380340499
Fl_mul 2413157387
expi 2451563833
addrr 2877943497
remii 3009385859
adduu 3401621674
stackdummy 3638362264
Fl_mul_pre 4079307211
Fl_add 4357884823
leafcopy 4954601983
shift_right 5665529687
dvmdsBIL 7075709999
Fl_sub 7281682180
Fl_addmul_pre 7649575260
subii 7651132920
shift_left 7745156772
uutoi 8799914375
icopy 9078195049
maxss 9622262954
utoi 11863488252
addii 12372498871
evalexpo 13252220787
utoipos 14218734517
gc_const 15501168591
cgetipos 16399197157
cgetg 24601689327
cgeti 27204157531
new_chunk 93428822232
evallg 95416455239
set_avma 129092574145

Generated by: LCOV version 1.16