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-03-29 08:06:26 Functions: 121 124 97.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Babai 0
Babai_dpe 4622025
Babai_fast 29799668
Babai_heuristic 285708
REDgen 196
RgM_Cholesky_dynprec 4057
RgM_flip 34648
RgM_flop 0
RgM_is_square_mat 50537
ZC_to_RC 16931
ZM2_lll_norms 4683907
ZM_flatter 627764
ZM_flatter_rank 625783
ZM_flattergram 1322
ZM_flattergram_rank 1322
ZM_is_knapsack 609737
ZM_is_lower 1190916
ZM_is_upper 4222553
ZM_lll_norms 6947417
ZM_to_RM 4254
absrsmall 883924
absrsmall2 469696
addmuliu2n 4097383
addmuliu642n 665952
addmuliu64_inplace 9641715
addmulziu 4599797
addmulzu2n 326940
addzi 17908922
affdbldpe 3149725
affdpe 25745039
affidpe 20656707
affii_or_copy_gc 1406302
cget_dblmat 8317966
cget_dblvec 34679585
cget_dpemat 3149721
cget_dpevec 13101728
dbldotproduct 116296177
dbldotsquare 2448857
dblrotate 34590620
do_SWAPgen 196
dpeM_diagonal_shallow 20028
dpe_abscmp 14486762
dpe_abssmall 1406342
dpe_addmuluz 343411
dpe_addz 1952819
dpe_cmp 5243094
dpe_cmpmul 5243082
dpe_divz 14050280
dpe_muluz 799434
dpe_mulz 56851036
dpe_negz 242913
dpe_normalize 47941928
dpe_normalize0 108247942
dpe_submuluz 408824
dpe_submulz 51608142
dpe_subz 53644790
dperotate 665602
dpetor 93406
drop 5078730
flat 1354438
flattergram_i 4057
fplll 0
fplll_dpe 1574863
fplll_fast 2079501
fplll_flatter 627105
fplll_heuristic 4254
gc_lll 4640
get_gaussred 49570
get_gramschmidt 1093684
gramschmidt_dynprec 2708875
gramschmidt_upper 1455
gsisinv 4181696
incrementalGSgen 168
itodbl_exp 159943994
kerint 42
kerint0 70
lll 1173379
lll_finish 2140035
lll_trivial 768771
lllall 56123
lllallgen 168
lllfp 5323163
lllgen 42
lllgram 8949
lllgramallgen 168
lllgramgen 42
lllgramint 41353
lllgramkerim 35
lllgramkerimgen 42
lllint 14693
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 23077632
mulshift 440248
nbits2prec64 6485746
pari_rint 10931324
pslg 504
qflll0 301
qflllgram0 245
realdotproduct 1397760
realsqrdotproduct 186486
rotate 31941972
rotateG 447130
rotateG_fast 11530241
setG2_fast 16876271
setG2_heuristic 175753
setG_fast 22490531
setG_heuristic 198575
set_line 24728517
sizered 1354438
spread 1127057
submuliu2n 4217308
submuliu642n 688460
submuliu64_inplace 9732654
submulshift 2075086
submulziu 5907874
submulzu2n 320022
subzi 18624008
truncexpo 32828
u64toi 20062829
u64toineg 665952
update_alpha 11977415
vectail_inplace 2066949

Generated by: LCOV version 1.14