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 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 - rootpol.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 18890-99e9e62) Lines: 1513 1657 91.3 %
Date: 2016-05-02 Functions: 109 115 94.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 895 1071 83.6 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5914251
FFT 0
FFTinit 0
QX_complex_roots 12147
RgX_addspec 206066
RgX_gtofp_bit 466084
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 61429
ZX_Uspensky 9767
ZX_Uspensky_cst_pol 2191
ZX_Uspensky_equal 28
ZX_graeffe 5054
ZX_sturm 7147
ZX_sturmpart 798
_gen_nored 630328
_gen_one 734270
_gen_zero 9830
_intervalcmp 0
_mp_add 3090782
_mp_cmul 3572168
_mp_mul 653211
_mp_sqr 646261
a_posteriori_errors 13503
abs_update 849180
abs_update_r 37958
addCC 12602740
all_roots 13310
append_clone 63957
bkeval_single_power 245608
check_ab 4272
checkbound 1736
checkvalidpol 1177
clean_roots 13317
cleanroots 147
cmp_complex_appr 169459
conformal_mapping 24242
conformal_pol 72726
cook_square 5503372
dblexp 427399
dbllog2 22453590
dbllog2mp 4386044
dft 28501
dual_modulus 58174
eval_rel_pol 879185
fft 2092993
findpower 2107820
fix_roots 13503
fix_roots1 7627
fujiwara_bound 77306
fujiwara_bound_real 9555
graeffe 2751686
homothetie 97578
homothetie2n 593388
homothetie_gauss 1882638
ind_maxlog2 48037
initdft 54837
isexactpol 1170
isexactscalar 3630
isreal 50578
isvalidcoeff 7074
karasquare 6121570
logmax_modulus 225182
logmax_modulus_bound 1715
logmin_modulus 78955
logmodulus 40253
logpre_modulus 40253
logradius 26336
lower_bound 2107820
mulCC 22976970
mydbllog2i 15686203
mydbllog2r 9359241
mydbllogr 940522
mygprec 4527065
mygprec_absolute 202437
mygprec_special 13503
mygprecrc 17658541
mygprecrc_special 99876
myshiftic 9538934
myshiftrc 2556277
newton_polygon 368206
optimize_split 26336
parameters 26336
pol_to_gaussint 1104367
polgraeffe 14
polmod_to_embed 77
polsolve 7376
quicktofp 371705
realroots 3474
refine_F 28501
refine_H 143796
root_error 86331
roots 1051
roots_aux 1198
roots_com 1170
rootsdeg0 35
scalepol 224460
scalepol2n 0
set_karasquare_limit 2751686
solve_exact_pol 806
split_0 26471
split_0_1 24377
split_0_2 24377
split_1 24242
split_2 26336
split_complete 66445
split_fromU 26336
split_pols 7376
splitcauchy 7376
splitpoleval 245608
sqrCC 17630409
tocomplex 60237
update_radius 26336
usp 8099

Generated by: LCOV version 1.9