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 - basemath - lll.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28880-3b5364847c) Lines: 1283 1571 81.7 %
Date: 2023-12-01 07:53:15 Functions: 119 122 97.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Babai 0
RgM_flop 0
fplll 0
matkerint0 28
lllgramkerim 35
lllkerim 35
kerint 42
lllgen 42
lllgramgen 42
lllgramkerimgen 42
lllkerimgen 42
kerint0 70
incrementalGSgen 168
lllallgen 168
lllgramallgen 168
REDgen 196
do_SWAPgen 196
qflllgram0 245
qflll0 301
pslg 504
gramschmidt_upper 1303
ZM_flattergram 1423
ZM_to_RM 3961
fplll_heuristic 3961
gc_lll 4344
RgM_Cholesky_dynprec 4360
flattergram_i 4360
lllgram 8942
lllint 14696
ZC_to_RC 15019
dpeM_diagonal_shallow 19958
truncexpo 29188
RgM_flip 35031
lllgramint 41339
get_gaussred 49663
RgM_is_square_mat 50616
lllall 56112
dpetor 93262
setG2_heuristic 172851
realsqrdotproduct 182321
setG_heuristic 193539
submulzu2n 234227
dpe_negz 241211
addmulzu2n 243578
Babai_heuristic 283012
dpe_addmuluz 337147
dpe_submuluz 403472
mulshift 410188
rotateG 442697
absrsmall2 462940
ZM_is_knapsack 576012
ZM_flatter 604164
fplll_flatter 605587
addmuliu642n 652109
u64toineg 652109
dperotate 660240
submuliu642n 677286
lll_trivial 730947
dpe_muluz 782188
absrsmall 880229
get_gramschmidt 1023709
spread 1039913
lll 1172557
ZM_is_lower 1173513
flat 1304960
sizered 1304961
affii_or_copy_gc 1380539
dpe_abssmall 1380561
realdotproduct 1386744
fplll_dpe 1557302
dpe_addz 1923817
submulshift 2002893
vectail_inplace 2015414
fplll_fast 2027865
lll_finish 2088483
dbldotsquare 2397138
gramschmidt_dynprec 2609918
cget_dpemat 3114598
affdbldpe 3114600
gsisinv 3999438
addmuliu2n 4069480
ZM_is_upper 4106082
submuliu2n 4190453
addmulziu 4534769
Babai_dpe 4578124
ZM2_lll_norms 4623230
drop 4896037
lllfp 5174286
dpe_cmpmul 5191293
dpe_cmp 5191294
submulziu 5844690
nbits2prec64 6223750
ZM_lll_norms 6835053
cget_dblmat 8111431
addmuliu64_inplace 9419878
submuliu64_inplace 9538238
pari_rint 10891892
rotateG_fast 11465927
update_alpha 11908753
cget_dpevec 12977955
dpe_divz 13921983
dpe_abscmp 14356533
setG2_fast 16792242
addzi 17614597
subzi 18328320
u64toi 19635402
affidpe 20466911
mpabscmp 21529454
setG_fast 22295598
set_line 24478477
affdpe 25416611
Babai_fast 29522780
rotate 31724543
cget_dblvec 33915114
dblrotate 34397519
dpe_normalize 47669204
dpe_submulz 51245729
dpe_subz 53254213
dpe_mulz 56436878
dpe_normalize0 107458036
dbldotproduct 115034672
itodbl_exp 158073804

Generated by: LCOV version 1.14