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-08-12 17:02:34 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 44729
sdivsi 102165
stack_calloc 110622
uabsdivui_rem 128885
gc_stoi 155898
dvdui 167545
subis 171754
Fl_ellj_pre 242732
mindd 265751
truedivis 268442
cmpri 303856
mod16 308662
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467851
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857713
real2n 1070112
addri 1113223
equalis 1149809
equalsi 1149991
gc_utoipos 1155326
real_0 1160928
divrmp 1203034
mpround 1216187
cmpss 1416201
subri 1538306
absrnz_equal2n 1580211
cmpir 1730060
stor 2140783
mpcmp 2164580
udivuu_rem 2418435
mulru 2765059
gc_int 2818775
subir 3030784
equaliu 3042330
equalui 3042330
maxdd 3218486
Mod8 3309346
Mod2 3595514
ceildivuu 3918923
negr 3961172
Fl_center 4490059
absrnz_equal1 4559239
real_1_bit 4699384
itou_or_0 5015374
rdivii 5744766
cmpis 6119308
truedivsi 6202318
subsi 6244514
umuluu_or_0 6342977
cmpsi 6351307
affsi 6485058
maxuu 6603108
mulrs 7181596
fractor 7387947
fractor_lg 7389438
mod4 7594956
umuluu_le 7618608
gc_NULL 7913051
ugcdiu 10312784
affectsign_safe 10754704
addrs 12387748
cmpiu 12999791
cmpui 12999791
rdivii_lg 13134330
rdiviiz 13173957
utor 13344656
utor_lg 13344656
affur 13344796
mpabs_shallow 13428274
smodss 13998082
mod8 15673270
divii 16305888
subrs 16573512
dvdii 17072537
modis 19638526
Fl_halve 20603716
int_bit 21042606
smodis 21176116
hammingu 24078697
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30275463
abscmpiu 31885864
abscmpui 31885864
mpexpo 37846076
itos_or_0 44914252
modsi 45242231
absequaliu 45906154
stack_malloc 46736567
absequalui 47655924
affui 47976646
Fl_div 49583544
Mod4 50720250
sdivsi_rem 51446845
gc_ulong 52325565
mulri 53835785
truedivii 54929595
gc_bool 55264300
stack_malloc_align 55671572
affrr_fixlg 56699541
minuu 57568843
umodi2n 58326174
absi_shallow 59949371
mod2 65901891
Fl_addmulmul_pre 74215988
evalprecp 78703524
remlll_pre 79167996
evalvalp 81660127
mpsqr 91850257
Fl_triple 100222422
addiu 100514794
addui 104589365
fixlg 106530840
Fl_sqr 108111605
mod2BIL 113534840
mpodd 118264321
icopyspec 120487070
real_1 133395693
subiu 133454455
subui 138449777
mpshift 153980842
togglesign_safe 157552341
dvmduBIL 173044520
itou 180921647
cgetr 192137240
vali 194756813
addis 195806567
gc_double 199001809
varncmp 218513288
gc_long 243067618
mpsub 273976419
utoineg 300671920
cgetineg 301594682
rtor 308826692
rtor_lg 308831046
cmpuu 318397318
addsi 320995285
shiftr 363969834
muliu 379052680
itor 451912507
mulis 470853662
shiftr_inplace 472701705
itos 477891146
addir 490366208
real_0_bit 499107444
affsr 509055124
stor_lg 509055124
Fl_double 521740588
mpadd 598063056
negi 661636110
umodsu 734456291
itor_lg 739882528
Fl_neg 741550242
stoi 776333128
mpmul 889619145
mpneg 952078242
expu 955703388
affii 1002994388
subrr 1062996508
rcopy 1101981457
cgetg_copy 1490932901
nbits2lg 1676163757
togglesign 1996703390
minss 2044826384
absi 2076483831
mpabs 2118559334
setabssign 2187224529
expi 2476412047
Fl_mul 2548214147
Fl_sqr_pre 2568713236
addrr 3030978587
remii 3105329223
adduu 3539456148
stackdummy 3735144499
Fl_mul_pre 4450321103
leafcopy 5280184250
shift_right 5948007776
Fl_add 6561754349
dvmdsBIL 7387580479
maxss 7461363777
Fl_sub 7678432829
shift_left 7847899586
subii 8009851675
Fl_addmul_pre 8206606027
uutoi 9223950216
icopy 9395981512
utoi 12424879820
addii 13116704128
evalexpo 13969886198
utoipos 14658964893
gc_const 15931558838
cgetipos 16897826882
cgetg 28012434519
cgeti 28637534963
new_chunk 98638403802
evallg 100055268910
set_avma 136020143950

Generated by: LCOV version 2.0-1