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 19214-1621e44) Lines: 1508 1658 91.0 %
Date: 2016-07-26 07:10:39 Functions: 109 116 94.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5887673
FFT 0
FFTinit 0
QX_complex_roots 11937
RgX_addspec 206066
RgX_gtofp_bit 465727
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 61555
ZX_Uspensky 9746
ZX_Uspensky_cst_pol 2198
ZX_Uspensky_equal 28
ZX_graeffe 5054
ZX_sturm 7084
ZX_sturmpart 798
_gen_nored 631044
_gen_one 735228
_gen_zero 9830
_intervalcmp 0
_mp_add 3091024
_mp_cmul 3573126
_mp_mul 653211
_mp_sqr 646503
_mp_sub 0
a_posteriori_errors 13293
abs_update 846464
abs_update_r 37972
addCC 12593868
all_roots 13100
append_clone 63705
bkeval_single_power 245966
check_ab 4314
checkbound 1736
checkvalidpol 1177
clean_roots 13107
cleanroots 147
cmp_complex_appr 166901
conformal_mapping 24193
conformal_pol 72579
cook_square 5476794
dblexp 426452
dbllog2 22658813
dbllog2mp 4322212
dft 28410
dual_modulus 57907
eval_rel_pol 877494
fft 2094267
findpower 2094846
fix_roots 13293
fix_roots1 7613
fujiwara_bound 77131
fujiwara_bound_real 9604
graeffe 2738397
homothetie 97297
homothetie2n 591776
homothetie_gauss 1871090
ind_maxlog2 47720
initdft 54634
isexactpol 1170
isexactscalar 3616
isreal 50417
isvalidcoeff 7074
karasquare 6094992
logmax_modulus 223756
logmax_modulus_bound 1715
logmin_modulus 78340
logmodulus 40225
logpre_modulus 40225
logradius 26224
lower_bound 2094846
mulCC 22951335
mydbllog2i 15738299
mydbllog2r 9480396
mydbllogr 937714
mygprec 4502184
mygprec_absolute 198820
mygprec_special 13293
mygprecrc 17547643
mygprecrc_special 98270
myshiftic 9503245
myshiftrc 2553617
newton_polygon 368020
optimize_split 26224
parameters 26224
pol_to_gaussint 1101250
polgraeffe 14
polmod_to_embed 77
polsolve 7390
quicktofp 371761
realroots 3516
refine_F 28410
refine_H 142982
root_error 84935
roots 1051
roots_aux 1198
roots_com 1170
rootsdeg0 35
scalepol 223830
scalepol2n 0
set_karasquare_limit 2738397
solve_exact_pol 806
split_0 26359
split_0_1 24328
split_0_2 24328
split_1 24193
split_2 26224
split_complete 66011
split_fromU 26224
split_pols 7390
splitcauchy 7390
splitpoleval 245966
sqrCC 17577524
tocomplex 59273
update_radius 26224
usp 8141

Generated by: LCOV version 1.11