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 17577-e669ab5) Lines: 1527 1681 90.8 %
Date: 2015-03-01 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 5057169
FFT 0
FFTinit 0
QX_complex_roots 10701
RUgen 101666
RgX_addspec 100437
RgX_gtofp_bit 408081
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 54245
ZX_graeffe 4655
ZX_sturm 5733
ZX_sturmpart 546
ZX_uspensky 8450
ZX_uspensky_cst_pol 1554
_gen_nored 509723
_gen_one 595342
_gen_zero 8326
_intervalcmp 0
_mp_add 2086255
_mp_cmul 2478227
_mp_mul 461777
_mp_sqr 464334
a_posteriori_errors 11582
abs_update 676504
abs_update_r 33042
addCC 9390951
all_roots 11416
append_clone 55683
bkeval_single_power 200149
check_ab 3214
checkbound 1190
checkvalidpol 722
clean_roots 11416
cleanroots 147
cmp_complex_appr 151385
conformal_mapping 21204
conformal_pol 63612
cook_square 4857212
dblexp 370748
dbllog2 18427826
dbllog2mp 3939708
dft 24997
dual_modulus 50558
eval_rel_pol 765068
fft 1559136
findpower 1873344
fix_roots 11582
fix_roots1 6404
fujiwara_bound 71671
fujiwara_bound_real 8111
graeffe 2428606
homothetie 85145
homothetie2n 523352
homothetie_gauss 1673066
ind_maxlog2 41030
initRU 48244
initRUgen 5178
isexactpol 715
isexactscalar 2174
isreal 44451
isvalidcoeff 3035
karasquare 5158523
logmax_modulus 200278
logmax_modulus_bound 1596
logmin_modulus 70621
logmodulus 35454
logpre_modulus 35454
logradius 23247
lower_bound 1873344
mulCC 17763117
mydbllog2i 13698183
mydbllog2r 7072970
mydbllogr 755872
mygprec 3959515
mygprec_absolute 179058
mygprec_special 11582
mygprecrc 15211630
mygprecrc_special 87380
myreal_1 381582
myshiftic 8275741
myshiftrc 2234047
newton_polygon 323074
optimize_split 23247
parameters 23247
pol_to_gaussint 965346
polgraeffe 14
polmod_to_embed 77
polsolve 5855
quicktofp 350226
realroots 2668
refine_F 24997
refine_H 126563
root_error 75756
roots 596
roots_aux 743
roots_com 715
rootsdeg0 35
scalepol 196965
scalepol2n 0
set_karasquare_limit 2428606
solve_exact_pol 477
split_0 23247
split_0_1 21204
split_0_2 21204
split_1 21204
split_2 23247
split_complete 58076
split_fromU 23247
split_polynoms 5855
splitpoleval 200149
sqrCC 14605028
tocomplex 51398
update_radius 23247
usp 6781

Generated by: LCOV version 1.9