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 20116-58a92a9) Lines: 1514 1662 91.1 %
Date: 2017-01-23 05:49:11 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 5547789
FFT 0
FFTinit 0
QX_complex_roots 11749
RgX_addspec 112951
RgX_gtofp_bit 450486
RgX_normalize1 2017
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 78261
ZX_Uspensky 11865
ZX_Uspensky_cst_pol 2373
ZX_Uspensky_equal 28
ZX_graeffe 5194
ZX_sturm 7490
ZX_sturmpart 2267
_gen_nored 1322549
_gen_one 1467941
_gen_zero 13337
_intervalcmp 0
_mp_add 11309115
_mp_cmul 12159000
_mp_mul 2481412
_mp_sqr 2296351
_mp_sub 0
a_posteriori_errors 13175
abs_update 754776
abs_update_r 35808
addCC 10376237
all_roots 12849
append_clone 62435
bkeval_single_power 431611
check_ab 6160
checkbound 4660
checkvalidpol 2879
clean_roots 12856
cleanroots 147
cmp_complex_appr 164595
conformal_mapping 23272
conformal_pol 69816
cook_square 5322524
dblexp 405686
dbllog2 21080606
dbllog2mp 4489474
dft 27414
dual_modulus 55580
eval_rel_pol 842540
fft 1729129
findpower 2048115
fix_roots 13175
fix_roots1 7471
fujiwara_bound 80285
fujiwara_bound_real 11862
graeffe 2661262
homothetie 93728
homothetie2n 575336
homothetie_gauss 1829079
ind_maxlog2 45223
initdft 52850
isexactpol 1107
isexactscalar 3679
isreal 48708
isvalidcoeff 28703
karasquare 5661377
logmax_modulus 219036
logmin_modulus 77350
logmodulus 38969
logpre_modulus 38969
logradius 25436
lower_bound 2048115
mulCC 19575832
mydbllog2i 14310276
mydbllog2r 9423468
mydbllogr 842015
mygprec 4326696
mygprec_absolute 203045
mygprec_special 13175
mygprecrc 17026434
mygprecrc_special 97718
myshiftic 9029965
myshiftrc 2443197
newton_polygon 356300
optimize_split 25436
parameters 25436
pol_to_gaussint 1061576
polgraeffe 14
polmod_to_embed 77
polrootsbound 1772
polrootsbound_i 1765
polsolve 12281
quicktofp 382174
realroots 3893
refine_F 27414
refine_H 137773
root_error 84501
roots 988
roots_aux 1135
roots_com 1107
rootsdeg0 35
scalepol 215940
scalepol2n 0
set_karasquare_limit 2661262
solve_exact_pol 855
split_0 25571
split_0_1 23407
split_0_2 23407
split_1 23272
split_2 25436
split_complete 64317
split_fromU 25436
split_pols 12281
splitcauchy 12281
splitpoleval 431611
sqrCC 16027401
tocomplex 58648
update_radius 25436
usp 9829

Generated by: LCOV version 1.11