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 17932-6fdb233) Lines: 1541 1695 90.9 %
Date: 2015-07-31 Functions: 110 116 94.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 882 1061 83.1 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5506002
FFT 0
FFTinit 0
QX_complex_roots 10729
RUgen 107910
RgX_addspec 181658
RgX_gtofp_bit 434989
RgX_normalize1 357
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 57409
ZX_graeffe 4655
ZX_sturm 5754
ZX_sturmpart 546
ZX_uspensky 8513
ZX_uspensky_cst_pol 1554
_gen_nored 626403
_gen_one 719750
_gen_zero 8688
_intervalcmp 0
_mp_add 3422428
_mp_cmul 3885314
_mp_mul 726678
_mp_sqr 708995
a_posteriori_errors 11736
abs_update 783100
abs_update_r 35786
addCC 11518741
all_roots 11570
append_clone 58231
bkeval_single_power 235787
check_ab 3221
checkbound 1190
checkvalidpol 855
clean_roots 11577
cleanroots 147
cmp_complex_appr 157083
conformal_mapping 22569
conformal_pol 67707
cook_square 5143834
dblexp 400197
dbllog2 19236853
dbllog2mp 3940156
dft 26740
dual_modulus 54275
eval_rel_pol 822097
fft 1957422
findpower 1970063
fix_roots 11736
fix_roots1 6544
fujiwara_bound 72112
fujiwara_bound_real 8188
graeffe 2571917
homothetie 91102
homothetie2n 554369
homothetie_gauss 1759656
ind_maxlog2 44439
initRU 51359
initRUgen 5192
isexactpol 848
isexactscalar 2370
isreal 47188
isvalidcoeff 5674
karasquare 5688808
logmax_modulus 210407
logmax_modulus_bound 1610
logmin_modulus 73498
logmodulus 37694
logpre_modulus 37694
logradius 24619
lower_bound 1970063
mulCC 21134436
mydbllog2i 14456731
mydbllog2r 7129287
mydbllogr 868355
mygprec 4239605
mygprec_absolute 181956
mygprec_special 11736
mygprecrc 16187154
mygprecrc_special 90124
myreal_1 403401
myshiftic 8904240
myshiftrc 2395339
newton_polygon 343962
optimize_split 24619
parameters 24619
pol_to_gaussint 1032504
polgraeffe 14
polmod_to_embed 77
polsolve 6807
quicktofp 354461
realroots 2675
refine_F 26740
refine_H 135692
root_error 78346
roots 729
roots_aux 876
roots_com 848
rootsdeg0 35
scalepol 209271
scalepol2n 0
set_karasquare_limit 2571917
solve_exact_pol 491
split_0 24619
split_0_1 22569
split_0_2 22569
split_1 22569
split_2 24619
split_complete 60974
split_fromU 24619
split_polynoms 6807
splitpoleval 235787
sqrCC 16377680
tocomplex 53995
update_radius 24619
usp 6851

Generated by: LCOV version 1.9