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 17403-69c3b04) Lines: 1527 1681 90.8 %
Date: 2015-01-28 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 5032305
FFT 0
FFTinit 0
QX_complex_roots 10408
RUgen 101079
RgX_addspec 100437
RgX_gtofp_bit 406458
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 54287
ZX_graeffe 4613
ZX_sturm 5145
ZX_sturmpart 427
ZX_uspensky 7533
ZX_uspensky_cst_pol 1183
_gen_nored 514998
_gen_one 601091
_gen_zero 8549
_intervalcmp 0
_mp_add 2101167
_mp_cmul 2496798
_mp_mul 464472
_mp_sqr 467676
a_posteriori_errors 11289
abs_update 672640
abs_update_r 32818
addCC 9352731
all_roots 11123
append_clone 55110
bkeval_single_power 202090
check_ab 2766
checkbound 952
checkvalidpol 722
clean_roots 11123
cleanroots 147
cmp_complex_appr 150728
conformal_mapping 21078
conformal_pol 63234
cook_square 4832348
dblexp 369026
dbllog2 18331184
dbllog2mp 3935788
dft 24885
dual_modulus 50320
eval_rel_pol 761890
fft 1555916
findpower 1862942
fix_roots 11289
fix_roots1 6250
fujiwara_bound 70629
fujiwara_bound_real 7880
graeffe 2416174
homothetie 84795
homothetie2n 521308
homothetie_gauss 1663770
ind_maxlog2 40834
initRU 48020
initRUgen 5039
isexactpol 715
isexactscalar 2174
isreal 44213
isvalidcoeff 3035
karasquare 5133659
logmax_modulus 199172
logmax_modulus_bound 1582
logmin_modulus 70215
logmodulus 35342
logpre_modulus 35342
logradius 23135
lower_bound 1862942
mulCC 17689057
mydbllog2i 13638325
mydbllog2r 7031995
mydbllogr 751588
mygprec 3940764
mygprec_absolute 177034
mygprec_special 11289
mygprecrc 15141606
mygprecrc_special 86361
myreal_1 379524
myshiftic 8233273
myshiftrc 2224617
newton_polygon 322136
optimize_split 23135
parameters 23135
pol_to_gaussint 961062
polgraeffe 14
polmod_to_embed 77
polsolve 5918
quicktofp 348107
realroots 2339
refine_F 24885
refine_H 125877
root_error 75030
roots 596
roots_aux 743
roots_com 715
rootsdeg0 35
scalepol 195873
scalepol2n 0
set_karasquare_limit 2416174
solve_exact_pol 477
split_0 23135
split_0_1 21078
split_0_2 21078
split_1 21078
split_2 23135
split_complete 57559
split_fromU 23135
split_polynoms 5918
splitpoleval 202090
sqrCC 14538038
tocomplex 50756
update_radius 23135
usp 6655

Generated by: LCOV version 1.9