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) Coverage Total Hit
Test: PARI/GP v2.19.0 lcov report (development 31092-e6893b0017) Lines: 88.6 % 690 611
Test Date: 2026-09-26 17:04:41 Functions: 89.9 % 247 222
Legend: Lines:     hit not hit

Function Name Sort by function name Hit count Sort by function 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
mpdiv 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
varnmax 203
mod32 259
dvdsi 371
real_m1 455
mpcopy 665
ugcdui 2737
thuemorseu 3311
stack_calloc_align 3325
divmpr 3759
absr 20510
addss 25081
subss 25081
subuu 25081
varnmin 26180
dvdis 33765
cmprs 40996
cgetr_block 44717
sdivsi 102165
stack_calloc 110638
uabsdivui_rem 128885
gc_stoi 155898
dvdui 167545
subis 171754
Fl_ellj_pre 242728
mindd 265751
truedivis 268430
cmpri 303857
mod16 308666
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467794
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857701
real2n 1070106
addri 1113223
equalis 1149798
equalsi 1149980
gc_utoipos 1155343
real_0 1160837
divrmp 1203037
mpround 1216186
cmpss 1416201
subri 1538264
absrnz_equal2n 1580238
cmpir 1730033
stor 2140788
mpcmp 2164551
udivuu_rem 2418435
mulru 2765059
gc_int 2818770
subir 3030813
equaliu 3042342
equalui 3042342
maxdd 3218318
Mod8 3309346
Mod2 3595514
ceildivuu 3914776
negr 3961189
Fl_center 4490059
absrnz_equal1 4559279
real_1_bit 4699326
itou_or_0 5015387
rdivii 5744730
cmpis 6119306
truedivsi 6202318
subsi 6244828
umuluu_or_0 6343345
cmpsi 6351305
affsi 6484999
maxuu 6603108
mulrs 7181596
fractor 7387946
fractor_lg 7389437
mod4 7594958
umuluu_le 7618608
gc_NULL 7912007
ugcdiu 10312781
affectsign_safe 10755792
addrs 12387734
cmpiu 12999830
cmpui 12999830
rdivii_lg 13134293
rdiviiz 13173920
utor 13344649
utor_lg 13344649
affur 13344789
mpabs_shallow 13428274
smodss 13998082
mod8 15673192
divii 16305684
subrs 16573516
dvdii 17072567
modis 19638526
Fl_halve 20604363
int_bit 21032724
smodis 21176116
hammingu 24078796
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30274420
abscmpiu 32865306
abscmpui 32865306
mpexpo 37847526
itos_or_0 44914285
modsi 45242183
absequaliu 45906175
stack_malloc 46736435
absequalui 47655945
affui 47976646
Fl_div 49581578
Mod4 50720788
sdivsi_rem 51446797
gc_ulong 52329608
mulri 53835787
truedivii 54934746
gc_bool 55263477
stack_malloc_align 55671429
affrr_fixlg 56699587
minuu 57597009
umodi2n 58326712
absi_shallow 60929036
mod2 65902793
Fl_addmulmul_pre 74213750
evalprecp 78703546
remlll_pre 79168015
evalvalp 81660149
mpsqr 91851734
Fl_triple 100085682
addiu 102475065
fixlg 106530809
addui 106549636
Fl_sqr 108112003
mod2BIL 113535581
mpodd 118265959
icopyspec 120487011
real_1 133396853
subiu 133454862
subui 138450197
mpshift 153979329
togglesign_safe 157553426
dvmduBIL 173205743
itou 180921370
cgetr 192138258
vali 194756165
addis 195803653
gc_double 198999011
varncmp 218513460
gc_long 243067624
mpsub 274004571
utoineg 300669241
cgetineg 301591999
rtor 308827918
rtor_lg 308832272
cmpuu 318397197
addsi 320992371
shiftr 363966879
muliu 378985560
itor 451920909
mulis 470864816
shiftr_inplace 472701659
itos 477897044
addir 490368642
real_0_bit 498744233
affsr 509056021
stor_lg 509056021
Fl_double 521430599
mpadd 597785701
negi 661591842
umodsu 734409424
itor_lg 739891041
Fl_neg 741559605
stoi 776390202
mpmul 889368392
mpneg 952035947
expu 955699914
affii 1002987364
subrr 1063037301
rcopy 1101982977
cgetg_copy 1490927061
nbits2lg 1675999991
togglesign 1996652601
minss 2045031386
absi 2076481056
mpabs 2118556071
setabssign 2187220968
expi 2476600144
Fl_mul 2550261021
Fl_sqr_pre 2567860387
addrr 3030708238
remii 3105033848
adduu 3541465850
stackdummy 3741100983
Fl_mul_pre 4447892918
leafcopy 5280168704
shift_right 5948106855
Fl_add 6561341701
dvmdsBIL 7387702776
maxss 7480176477
Fl_sub 7697154528
shift_left 7847958019
subii 8009501669
Fl_addmul_pre 8204863770
uutoi 9225979578
icopy 9396058059
utoi 12428990325
addii 13116537214
evalexpo 13969726256
utoipos 14663063754
gc_const 15931184392
cgetipos 16902044019
cgetg 28023953776
cgeti 28640351284
new_chunk 98654492179
evallg 100078506286
set_avma 136043429196

Generated by: LCOV version 2.0-1