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 17072-bc6ca01) Lines: 1527 1681 90.8 %
Date: 2014-11-17 Functions: 109 115 94.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 869 1048 82.9 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 4627205
FFT 0
FFTinit 0
QX_complex_roots 8745
RUgen 92882
RgX_addspec 90581
RgX_gtofp_bit 371152
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 48236
ZX_graeffe 4466
ZX_sturm 3668
ZX_sturmpart 105
ZX_uspensky 5637
ZX_uspensky_cst_pol 728
_gen_nored 464761
_gen_one 540737
_gen_zero 6342
_intervalcmp 0
_mp_add 2013179
_mp_cmul 2366607
_mp_mul 447241
_mp_sqr 445665
a_posteriori_errors 9605
abs_update 618540
abs_update_r 30640
addCC 8662356
all_roots 9439
append_clone 49323
bkeval_single_power 179885
check_ab 2025
checkbound 308
checkvalidpol 701
clean_roots 9439
cleanroots 147
cmp_complex_appr 138189
conformal_mapping 19422
conformal_pol 58266
cook_square 4446960
dblexp 341013
dbllog2 17238885
dbllog2mp 3565376
dft 22943
dual_modulus 46553
eval_rel_pol 700914
fft 1442108
findpower 1714697
fix_roots 9605
fix_roots1 5371
fujiwara_bound 65647
fujiwara_bound_real 6188
graeffe 2223480
homothetie 78084
homothetie2n 477515
homothetie_gauss 1531380
ind_maxlog2 37739
initRU 44324
initRUgen 4234
isexactpol 694
isexactscalar 2090
isreal 40803
isvalidcoeff 2951
karasquare 4718703
logmax_modulus 183317
logmax_modulus_bound 1414
logmin_modulus 64509
logmodulus 32398
logpre_modulus 32398
logradius 21381
lower_bound 1714697
mulCC 16323337
mydbllog2i 12518326
mydbllog2r 6852294
mydbllogr 691148
mygprec 3641268
mygprec_absolute 155317
mygprec_special 9605
mygprecrc 13770490
mygprecrc_special 76692
myreal_1 349653
myshiftic 7571040
myshiftrc 2049965
newton_polygon 294198
optimize_split 21381
parameters 21381
pol_to_gaussint 884231
polgraeffe 14
polmod_to_embed 77
polsolve 5263
quicktofp 327666
realroots 1920
refine_F 22943
refine_H 115386
root_error 67045
roots 575
roots_aux 722
roots_com 694
rootsdeg0 35
scalepol 180675
scalepol2n 0
set_karasquare_limit 2223480
solve_exact_pol 456
split_0 21381
split_0_1 19422
split_0_2 19422
split_1 19422
split_2 21381
split_complete 52367
split_fromU 21381
split_polynoms 5263
splitpoleval 179885
sqrCC 13378237
tocomplex 43953
update_radius 21381
usp 5222

Generated by: LCOV version 1.9