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 17240-4611fa9) Lines: 1527 1681 90.8 %
Date: 2014-12-21 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 4903701
FFT 0
FFTinit 0
QX_complex_roots 9841
RUgen 98538
RgX_addspec 92597
RgX_gtofp_bit 395874
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 53279
ZX_graeffe 4557
ZX_sturm 4634
ZX_sturmpart 315
ZX_uspensky 6966
ZX_uspensky_cst_pol 1036
_gen_nored 512263
_gen_one 597761
_gen_zero 8526
_intervalcmp 0
_mp_add 2098188
_mp_cmul 2491084
_mp_mul 464089
_mp_sqr 467201
a_posteriori_errors 10722
abs_update 648364
abs_update_r 32244
addCC 8962243
all_roots 10556
append_clone 53416
bkeval_single_power 200711
check_ab 2598
checkbound 728
checkvalidpol 722
clean_roots 10556
cleanroots 147
cmp_complex_appr 144960
conformal_mapping 20616
conformal_pol 61848
cook_square 4719424
dblexp 360080
dbllog2 17987809
dbllog2mp 3750428
dft 24332
dual_modulus 49193
eval_rel_pol 743256
fft 1503843
findpower 1820249
fix_roots 10722
fix_roots1 6096
fujiwara_bound 69306
fujiwara_bound_real 7607
graeffe 2359712
homothetie 82793
homothetie2n 508491
homothetie_gauss 1625634
ind_maxlog2 40015
initRU 46956
initRUgen 4626
isexactpol 715
isexactscalar 2174
isreal 43240
isvalidcoeff 3035
karasquare 4997215
logmax_modulus 194615
logmax_modulus_bound 1568
logmin_modulus 68521
logmodulus 34467
logpre_modulus 34467
logradius 22624
lower_bound 1820249
mulCC 17018296
mydbllog2i 13263244
mydbllog2r 6965386
mydbllogr 725513
mygprec 3839066
mygprec_absolute 168368
mygprec_special 10722
mygprecrc 14544821
mygprecrc_special 82602
myreal_1 370991
myshiftic 8009082
myshiftrc 2165702
newton_polygon 313876
optimize_split 22624
parameters 22624
pol_to_gaussint 937871
polgraeffe 14
polmod_to_embed 77
polsolve 5939
quicktofp 342983
realroots 2283
refine_F 24332
refine_H 122977
root_error 71838
roots 596
roots_aux 743
roots_com 715
rootsdeg0 35
scalepol 191568
scalepol2n 0
set_karasquare_limit 2359712
solve_exact_pol 477
split_0 22624
split_0_1 20616
split_0_2 20616
split_1 20616
split_2 22624
split_complete 55970
split_fromU 22624
split_polynoms 5939
splitpoleval 200711
sqrCC 14107972
tocomplex 48138
update_radius 22624
usp 6417

Generated by: LCOV version 1.9