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 17110-9967e23) Lines: 1527 1681 90.8 %
Date: 2014-11-26 Functions: 109 115 94.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 869 1048 82.9 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 3351471
FFT 0
FFTinit 0
QX_complex_roots 6379
RUgen 67210
RgX_addspec 64663
RgX_gtofp_bit 269298
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 35441
ZX_graeffe 3190
ZX_sturm 2685
ZX_sturmpart 75
ZX_uspensky 4173
ZX_uspensky_cst_pol 520
_gen_nored 348730
_gen_one 407675
_gen_zero 5671
_intervalcmp 0
_mp_add 1463207
_mp_cmul 1731144
_mp_mul 323519
_mp_sqr 325330
a_posteriori_errors 6993
abs_update 446140
abs_update_r 22164
addCC 6223818
all_roots 6875
append_clone 35867
bkeval_single_power 136804
check_ab 1528
checkbound 220
checkvalidpol 501
clean_roots 6875
cleanroots 105
cmp_complex_appr 99653
conformal_mapping 14092
conformal_pol 42276
cook_square 3222800
dblexp 246843
dbllog2 12460084
dbllog2mp 2574624
dft 16607
dual_modulus 33689
eval_rel_pol 507558
fft 1038078
findpower 1243085
fix_roots 6993
fix_roots1 3979
fujiwara_bound 47345
fujiwara_bound_real 4698
graeffe 1611400
homothetie 56576
homothetie2n 346611
homothetie_gauss 1110170
ind_maxlog2 27361
initRU 32098
initRUgen 3014
isexactpol 496
isexactscalar 1494
isreal 29583
isvalidcoeff 2109
karasquare 3416789
logmax_modulus 132915
logmax_modulus_bound 1010
logmin_modulus 46759
logmodulus 23506
logpre_modulus 23506
logradius 15491
lower_bound 1243085
mulCC 11756053
mydbllog2i 9072759
mydbllog2r 4926254
mydbllogr 498806
mygprec 2635808
mygprec_absolute 112299
mygprec_special 6993
mygprecrc 9977562
mygprecrc_special 55518
myreal_1 253479
myshiftic 5480718
myshiftrc 1483395
newton_polygon 213696
optimize_split 15491
parameters 15491
pol_to_gaussint 640473
polgraeffe 10
polmod_to_embed 55
polsolve 4012
quicktofp 236126
realroots 1453
refine_F 16607
refine_H 83924
root_error 48495
roots 411
roots_aux 516
roots_com 496
rootsdeg0 25
scalepol 131025
scalepol2n 0
set_karasquare_limit 1611400
solve_exact_pol 326
split_0 15491
split_0_1 14092
split_0_2 14092
split_1 14092
split_2 15491
split_complete 37975
split_fromU 15491
split_polynoms 4012
splitpoleval 136804
sqrCC 9673119
tocomplex 31779
update_radius 15491
usp 4003

Generated by: LCOV version 1.9