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.10.0 lcov report (development 20459-9710128) Lines: 1512 1660 91.1 %
Date: 2017-03-30 05:32:39 Functions: 110 117 94.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5022810
FFT 0
FFTinit 0
QX_complex_roots 10530
RgX_addspec 102846
RgX_gtofp_bit 409122
RgX_normalize1 2040
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 354300
ZX_Uspensky 16422
ZX_Uspensky_cst_pol 2064
ZX_Uspensky_equal 24
ZX_graeffe 4692
ZX_sturm 6498
ZX_sturmpart 2058
_gen_nored 1779504
_gen_one 2019300
_gen_zero 22164
_intervalcmp 0
_mp_add 10801800
_mp_cmul 12021084
_mp_mul 2424366
_mp_sqr 2284854
_mp_sub 0
a_posteriori_errors 11802
abs_update 686136
abs_update_r 33072
addCC 9459816
all_roots 11634
append_clone 56604
bkeval_single_power 620724
check_ab 5382
checkbound 4212
checkvalidpol 2796
clean_roots 11640
cleanroots 126
cmp_complex_appr 148764
conformal_mapping 21036
conformal_pol 63108
cook_square 4817664
dblexp 368448
dbllog2 18672574
dbllog2mp 4041924
dft 25014
dual_modulus 50748
eval_rel_pol 766380
fft 1560090
findpower 1849506
fix_roots 11802
fix_roots1 6762
fujiwara_bound 69594
fujiwara_bound_real 10284
graeffe 2408832
homothetie 85422
homothetie2n 521718
homothetie_gauss 1651704
ind_maxlog2 41496
initdft 48192
isexactpol 1110
isexactscalar 3360
isreal 44214
isvalidcoeff 26508
karasquare 5126202
logmax_modulus 197802
logmin_modulus 69660
logmodulus 35466
logpre_modulus 35466
logradius 23178
lower_bound 1849506
mulCC 17779578
mydbllog2i 12910372
mydbllog2r 8138418
mydbllogr 764802
mygprec 3868494
mygprec_absolute 177492
mygprec_special 11802
mygprecrc 15144876
mygprecrc_special 87804
myshiftic 8152404
myshiftrc 2210394
newton_polygon 323916
optimize_split 23178
parameters 23178
pol_to_gaussint 964182
polgraeffe 12
polmod_to_embed 66
polrootsbound 1686
polrootsbound_i 1680
polsolve 21168
quicktofp 331398
realroots 3324
refine_F 25014
refine_H 123108
root_error 75726
roots 1008
roots_aux 1134
roots_com 1110
rootsdeg0 30
scalepol 195750
scalepol2n 0
set_karasquare_limit 2408832
solve_exact_pol 750
split_0 23298
split_0_1 21156
split_0_2 21156
split_1 21036
split_2 23178
split_complete 58398
split_fromU 23178
split_pols 21168
splitcauchy 21168
splitpoleval 620724
sqrCC 14514456
tocomplex 51072
update_radius 23178
usp 14580

Generated by: LCOV version 1.11