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.8.0 lcov report (development 19619-c9e92b8) Lines: 1508 1658 91.0 %
Date: 2016-09-29 05:54:10 Functions: 109 116 94.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 6005627
FFT 0
FFTinit 0
QX_complex_roots 11733
RgX_addspec 206584
RgX_gtofp_bit 476136
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 62864
ZX_Uspensky 9900
ZX_Uspensky_cst_pol 2226
ZX_Uspensky_equal 28
ZX_graeffe 4949
ZX_sturm 7224
ZX_sturmpart 798
_gen_nored 632087
_gen_one 736660
_gen_zero 9965
_intervalcmp 0
_mp_add 3092137
_mp_cmul 3575282
_mp_mul 653339
_mp_sqr 646892
_mp_sub 0
a_posteriori_errors 13096
abs_update 858656
abs_update_r 38642
addCC 12762187
all_roots 12903
append_clone 64602
bkeval_single_power 246555
check_ab 4328
checkbound 1708
checkvalidpol 1184
clean_roots 12910
cleanroots 147
cmp_complex_appr 170283
conformal_mapping 24664
conformal_pol 73992
cook_square 5593782
dblexp 434788
dbllog2 22991516
dbllog2mp 4412434
dft 28959
dual_modulus 59062
eval_rel_pol 896492
fft 2118522
findpower 2139318
fix_roots 13096
fix_roots1 7568
fujiwara_bound 77515
fujiwara_bound_real 9821
graeffe 2796891
homothetie 99383
homothetie2n 605293
homothetie_gauss 1910842
ind_maxlog2 48619
initdft 55696
isexactpol 1177
isexactscalar 3644
isreal 51401
isvalidcoeff 7102
karasquare 6213534
logmax_modulus 228476
logmax_modulus_bound 1842
logmin_modulus 79955
logmodulus 41149
logpre_modulus 41149
logradius 26737
lower_bound 2139318
mulCC 23306487
mydbllog2i 16134304
mydbllog2r 9465841
mydbllogr 951796
mygprec 4585439
mygprec_absolute 204021
mygprec_special 13096
mygprecrc 17904534
mygprecrc_special 99255
myshiftic 9704016
myshiftrc 2605595
newton_polygon 376817
optimize_split 26737
parameters 26737
pol_to_gaussint 1124968
polgraeffe 14
polmod_to_embed 77
polsolve 7411
quicktofp 374884
realroots 3530
refine_F 28959
refine_H 146124
root_error 86117
roots 1058
roots_aux 1205
roots_com 1177
rootsdeg0 35
scalepol 228195
scalepol2n 0
set_karasquare_limit 2796891
solve_exact_pol 813
split_0 26872
split_0_1 24799
split_0_2 24799
split_1 24664
split_2 26737
split_complete 66840
split_fromU 26737
split_pols 7411
splitcauchy 7411
splitpoleval 246555
sqrCC 17904149
tocomplex 61272
update_radius 26737
usp 8316

Generated by: LCOV version 1.11