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 18607-f2efcf2) Lines: 1518 1668 91.0 %
Date: 2016-02-12 Functions: 107 113 94.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 873 1045 83.5 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5816421
FFT 0
FFTinit 0
QX_complex_roots 11865
RgX_addspec 203880
RgX_gtofp_bit 457810
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 66525
ZX_Uspensky 10992
ZX_Uspensky_cst_pol 2009
ZX_graeffe 4816
ZX_sturm 7469
ZX_sturmpart 735
_gen_nored 694170
_gen_one 808415
_gen_zero 9837
_intervalcmp 0
_mp_add 3540838
_mp_cmul 4069053
_mp_mul 755666
_mp_sqr 745889
a_posteriori_errors 12962
abs_update 837148
abs_update_r 37150
addCC 12475087
all_roots 12769
append_clone 62445
bkeval_single_power 269026
check_ab 4174
checkbound 1568
checkvalidpol 918
clean_roots 12776
cleanroots 147
cmp_complex_appr 165536
conformal_mapping 23812
conformal_pol 71436
cook_square 5409872
dblexp 420612
dbllog2 21961990
dbllog2mp 4323758
dft 27970
dual_modulus 57022
eval_rel_pol 863959
fft 2069460
findpower 2072395
fix_roots 12962
fix_roots1 7317
fujiwara_bound 77612
fujiwara_bound_real 10374
graeffe 2704936
homothetie 95706
homothetie2n 582995
homothetie_gauss 1851104
ind_maxlog2 46895
initdft 53799
isexactpol 911
isexactscalar 2594
isreal 49641
isvalidcoeff 6038
karasquare 6021512
logmax_modulus 221291
logmax_modulus_bound 1911
logmin_modulus 77437
logmodulus 39533
logpre_modulus 39533
logradius 25829
lower_bound 2072395
mulCC 22715896
mydbllog2i 15456300
mydbllog2r 9066494
mydbllogr 927027
mygprec 4456068
mygprec_absolute 196769
mygprec_special 12962
mygprecrc 17384876
mygprecrc_special 96948
myshiftic 9402562
myshiftrc 2519546
newton_polygon 361704
optimize_split 25829
parameters 25829
pol_to_gaussint 1085250
polgraeffe 14
polmod_to_embed 77
polsolve 8076
quicktofp 373089
realroots 3439
refine_F 27970
refine_H 141620
root_error 83944
roots 792
roots_aux 939
roots_com 911
rootsdeg0 35
scalepol 220359
scalepol2n 0
set_karasquare_limit 2704936
solve_exact_pol 547
split_0 25964
split_0_1 23947
split_0_2 23947
split_1 23812
split_2 25829
split_complete 64890
split_fromU 25829
split_polynoms 8076
splitpoleval 269026
sqrCC 17374265
tocomplex 58326
update_radius 25829
usp 8743

Generated by: LCOV version 1.9