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-bordeaux1.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 17710-c8a39c8) Lines: 1527 1681 90.8 %
Date: 2015-03-31 Functions: 109 115 94.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 870 1048 83.0 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5058387
FFT 0
FFTinit 0
QX_complex_roots 10701
RUgen 101694
RgX_addspec 100437
RgX_gtofp_bit 408158
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 56422
ZX_graeffe 4655
ZX_sturm 5733
ZX_sturmpart 546
ZX_uspensky 8485
ZX_uspensky_cst_pol 1554
_gen_nored 625548
_gen_one 718568
_gen_zero 8487
_intervalcmp 0
_mp_add 3421900
_mp_cmul 3883931
_mp_mul 726678
_mp_sqr 708995
a_posteriori_errors 11589
abs_update 676560
abs_update_r 33056
addCC 9390951
all_roots 11423
append_clone 55704
bkeval_single_power 235259
check_ab 3214
checkbound 1190
checkvalidpol 729
clean_roots 11423
cleanroots 147
cmp_complex_appr 151406
conformal_mapping 21211
conformal_pol 63633
cook_square 4858430
dblexp 370832
dbllog2 18146099
dbllog2mp 3939708
dft 25004
dual_modulus 50572
eval_rel_pol 765222
fft 1559206
findpower 1873855
fix_roots 11589
fix_roots1 6411
fujiwara_bound 71713
fujiwara_bound_real 8146
graeffe 2429215
homothetie 85166
homothetie2n 523471
homothetie_gauss 1673521
ind_maxlog2 41044
initRU 48258
initRUgen 5178
isexactpol 722
isexactscalar 2202
isreal 44465
isvalidcoeff 3063
karasquare 5159741
logmax_modulus 200334
logmax_modulus_bound 1596
logmin_modulus 70642
logmodulus 35461
logpre_modulus 35461
logradius 23254
lower_bound 1873855
mulCC 17763915
mydbllog2i 13700318
mydbllog2r 6789647
mydbllogr 755949
mygprec 3960292
mygprec_absolute 179107
mygprec_special 11589
mygprecrc 15213247
mygprecrc_special 87408
myreal_1 381694
myshiftic 8277085
myshiftrc 2234369
newton_polygon 323137
optimize_split 23254
parameters 23254
pol_to_gaussint 965556
polgraeffe 14
polmod_to_embed 77
polsolve 6793
quicktofp 350758
realroots 2668
refine_F 25004
refine_H 126591
root_error 75777
roots 603
roots_aux 750
roots_com 722
rootsdeg0 35
scalepol 197028
scalepol2n 0
set_karasquare_limit 2429215
solve_exact_pol 484
split_0 23254
split_0_1 21211
split_0_2 21211
split_1 21211
split_2 23254
split_complete 58097
split_fromU 23254
split_polynoms 6793
splitpoleval 235259
sqrCC 14607464
tocomplex 51419
update_radius 23254
usp 6816

Generated by: LCOV version 1.9