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-11-12 17:03:01 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 110620
uabsdivui_rem 128885
gc_stoi 155903
dvdui 167545
subis 171754
Fl_ellj_pre 242726
mindd 265748
truedivis 268454
cmpri 303856
mod16 308660
Mod32 311157
uutoineg 365874
Mod16 389809
cgetg_block 430408
gc_utoi 467838
dvdiu 576287
umodui 710986
cmpsr 796228
rdivss 839647
newblock 857701
real2n 1070095
addri 1113221
equalis 1149860
equalsi 1150042
gc_utoipos 1155327
real_0 1160900
divrmp 1203052
mpround 1216172
cmpss 1416201
subri 1538342
absrnz_equal2n 1580157
cmpir 1730039
stor 2140782
mpcmp 2164560
udivuu_rem 2418435
mulru 2765059
gc_int 2818783
subir 3030802
equaliu 3042334
equalui 3042334
maxdd 3218534
Mod8 3309346
Mod2 3595514
ceildivuu 3916974
negr 3961185
Fl_center 4490059
absrnz_equal1 4559168
real_1_bit 4699145
itou_or_0 5015378
rdivii 5744732
cmpis 6119300
truedivsi 6202318
subsi 6244771
umuluu_or_0 6349642
cmpsi 6351299
affsi 6484754
maxuu 6603109
mulrs 7181596
fractor 7387947
fractor_lg 7389438
mod4 7594955
umuluu_le 7618608
gc_NULL 7911128
ugcdiu 10312782
affectsign_safe 10756731
addrs 12387763
cmpiu 13000869
cmpui 13000869
rdivii_lg 13134296
rdiviiz 13173923
utor 13344624
utor_lg 13344624
affur 13344764
mpabs_shallow 13428274
smodss 13998082
mod8 15674099
divii 16306824
subrs 16573443
dvdii 17072396
modis 19638526
Fl_halve 20605805
int_bit 21041656
smodis 21176116
hammingu 24078734
evalvalser 25309350
uabsdiviu_rem 26737503
lg2prec 30275584
abscmpiu 32514866
abscmpui 32514866
mpexpo 37849572
itos_or_0 44914245
modsi 45242191
absequaliu 45906164
stack_malloc 46737547
absequalui 47655934
affui 47976646
Fl_div 49581110
Mod4 50721835
sdivsi_rem 51446805
gc_ulong 52333662
mulri 53835792
truedivii 54935705
gc_bool 55263542
stack_malloc_align 55675498
affrr_fixlg 56699523
minuu 57529281
umodi2n 58327759
absi_shallow 60578990
mod2 65903218
Fl_addmulmul_pre 74218065
evalprecp 78703534
remlll_pre 79167996
evalvalp 81660137
mpsqr 91861488
Fl_triple 100143709
addiu 101776802
addui 105851374
fixlg 106530790
Fl_sqr 108118740
mod2BIL 113537738
mpodd 118265130
icopyspec 120487015
real_1 133396187
subiu 133454657
subui 138449984
mpshift 153969465
togglesign_safe 157552969
dvmduBIL 171149625
itou 180921394
cgetr 192138854
vali 194757586
addis 195801842
gc_double 199016862
varncmp 218513206
gc_long 243063913
mpsub 274018629
utoineg 300671099
cgetineg 301593863
rtor 308822633
rtor_lg 308826987
cmpuu 318399920
addsi 320990560
shiftr 363964969
muliu 379022053
itor 451953953
mulis 470865166
shiftr_inplace 472699227
itos 477900971
addir 490368854
real_0_bit 499166660
affsr 509054043
stor_lg 509054043
Fl_double 521567682
mpadd 598163300
negi 661608946
umodsu 734438168
itor_lg 739922108
Fl_neg 741566003
stoi 776255828
mpmul 889767731
mpneg 952043084
expu 955695942
affii 1002960315
subrr 1063019465
rcopy 1101975306
cgetg_copy 1490933776
nbits2lg 1676292357
togglesign 1996666355
minss 2044905542
absi 2076482775
mpabs 2118556707
setabssign 2187221995
expi 2476490679
Fl_mul 2549487958
Fl_sqr_pre 2568443858
addrr 3031041629
remii 3105293429
adduu 3540734688
stackdummy 3738188417
Fl_mul_pre 4449880642
leafcopy 5279528554
shift_right 5948031080
Fl_add 6561757913
dvmdsBIL 7387591717
maxss 7472360106
Fl_sub 7689294350
shift_left 7847934479
subii 8009724332
Fl_addmul_pre 8206478031
uutoi 9225393259
icopy 9396096635
utoi 12427613274
addii 13116973975
evalexpo 13970050242
utoipos 14661687252
gc_const 15931445538
cgetipos 16900654772
cgetg 28020113266
cgeti 28640379699
new_chunk 98648258147
evallg 100070784333
set_avma 136033731590

Generated by: LCOV version 2.0-1