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 18955-a6d8269) Lines: 1513 1658 91.3 %
Date: 2016-05-31 Functions: 109 116 94.0 %
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 5923547
FFT 0
FFTinit 0
QX_complex_roots 11931
RgX_addspec 206066
RgX_gtofp_bit 466302
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 61478
ZX_Uspensky 9697
ZX_Uspensky_cst_pol 2191
ZX_Uspensky_equal 28
ZX_graeffe 5054
ZX_sturm 7056
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
_mp_sub 0
a_posteriori_errors 13287
abs_update 849740
abs_update_r 37986
addCC 12604994
all_roots 13094
append_clone 63797
bkeval_single_power 245608
check_ab 4293
checkbound 1736
checkvalidpol 1177
clean_roots 13101
cleanroots 147
cmp_complex_appr 167180
conformal_mapping 24284
conformal_pol 72852
cook_square 5512668
dblexp 427945
dbllog2 22474666
dbllog2mp 4398532
dft 28543
dual_modulus 58258
eval_rel_pol 880207
fft 2094533
findpower 2111922
fix_roots 13287
fix_roots1 7641
fujiwara_bound 77020
fujiwara_bound_real 9576
graeffe 2756334
homothetie 97704
homothetie2n 594200
homothetie_gauss 1886292
ind_maxlog2 48093
initdft 54921
isexactpol 1170
isexactscalar 3630
isreal 50662
isvalidcoeff 7074
karasquare 6130866
logmax_modulus 225630
logmax_modulus_bound 1715
logmin_modulus 79123
logmodulus 40295
logpre_modulus 40295
logradius 26378
lower_bound 2111922
mulCC 22988114
mydbllog2i 15710444
mydbllog2r 9361874
mydbllogr 941208
mygprec 4524581
mygprec_absolute 199078
mygprec_special 13287
mygprecrc 17655097
mygprecrc_special 98322
myshiftic 9552150
myshiftrc 2559595
newton_polygon 368570
optimize_split 26378
parameters 26378
pol_to_gaussint 1105837
polgraeffe 14
polmod_to_embed 77
polsolve 7376
quicktofp 371217
realroots 3495
refine_F 28543
refine_H 144078
root_error 84993
roots 1051
roots_aux 1198
roots_com 1170
rootsdeg0 35
scalepol 224838
scalepol2n 0
set_karasquare_limit 2756334
solve_exact_pol 806
split_0 26513
split_0_1 24419
split_0_2 24419
split_1 24284
split_2 26378
split_complete 66313
split_fromU 26378
split_pols 7376
splitcauchy 7376
splitpoleval 245608
sqrCC 17651255
tocomplex 59345
update_radius 26378
usp 8106

Generated by: LCOV version 1.9