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.2 lcov report (development 29115-f22e516b23) Lines: 1301 1607 81.0 %
Date: 2024-05-06 08:07:23 Functions: 121 124 97.6 %
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
ZM_flattergram 1322
ZM_flattergram_rank 1322
gramschmidt_upper 1455
RgM_Cholesky_dynprec 4057
flattergram_i 4057
ZM_to_RM 4254
fplll_heuristic 4254
gc_lll 4640
lllgram 8949
lllint 14693
ZC_to_RC 16931
dpeM_diagonal_shallow 20028
truncexpo 32828
RgM_flip 34648
lllgramint 41353
get_gaussred 49569
RgM_is_square_mat 50537
lllall 56123
dpetor 93410
setG2_heuristic 175753
realsqrdotproduct 186486
setG_heuristic 198575
dpe_negz 242906
Babai_heuristic 285708
submulzu2n 320022
addmulzu2n 326940
dpe_addmuluz 343412
dpe_submuluz 408825
mulshift 440248
rotateG 447129
absrsmall2 469696
ZM_is_knapsack 609863
ZM_flatter_rank 625934
fplll_flatter 627256
ZM_flatter 627915
dperotate 665601
addmuliu642n 665952
u64toineg 665952
submuliu642n 688460
lll_trivial 768771
dpe_muluz 799436
absrsmall 883924
get_gramschmidt 1093840
spread 1127193
lll 1173382
ZM_is_lower 1191073
flat 1354772
sizered 1354772
realdotproduct 1397760
affii_or_copy_gc 1406327
dpe_abssmall 1406353
fplll_dpe 1575019
dpe_addz 1952822
vectail_inplace 2067232
submulshift 2075086
fplll_fast 2079779
lll_finish 2140317
dbldotsquare 2449040
gramschmidt_dynprec 2709542
affdbldpe 3150033
cget_dpemat 3150037
addmuliu2n 4096175
gsisinv 4182538
submuliu2n 4216443
ZM_is_upper 4223376
addmulziu 4599881
Babai_dpe 4622537
ZM2_lll_norms 4684781
drop 5079905
dpe_cmpmul 5243590
dpe_cmp 5243595
lllfp 5324166
submulziu 5907976
nbits2prec64 6487464
ZM_lll_norms 6948580
cget_dblmat 8319086
addmuliu64_inplace 9641715
submuliu64_inplace 9732654
pari_rint 10933196
rotateG_fast 11531854
update_alpha 11979088
cget_dpevec 13102963
dpe_divz 14051454
dpe_abscmp 14487877
setG2_fast 16878125
addzi 17909742
subzi 18624677
u64toi 20062829
affidpe 20658475
setG_fast 22492896
mpabscmp 23082362
set_line 24730741
affdpe 25746895
Babai_fast 29802350
rotate 31946933
dblrotate 34595438
cget_dblvec 34684444
dpe_normalize 47944128
dpe_submulz 51610690
dpe_subz 53647360
dpe_mulz 56854134
dpe_normalize0 108253659
dbldotproduct 116299200
itodbl_exp 159902764

Generated by: LCOV version 1.14