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 to exceed 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 - lfun.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23171-a5c0ed393) Lines: 1355 1421 95.4 %
Date: 2018-10-21 05:38:32 Functions: 140 141 99.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
lfun_get_dom 0
lfunthetacost0 14
lfun_get_bitprec 42
lfuncost0 42
lfunzeros 42
sersplit1 42
Rtor 56
checkconductor 84
lfunconductor 91
lfunthetaspec 91
parse_maxcond 91
derivnser 112
vecpowuu 112
ser_coeff0 210
lfunthetainit 259
lfuncenterinit 406
lfuninit0 406
lfunorderzero 427
Z_radical 588
znchargauss_i 588
znchargauss 805
lfunlambda 812
lfunan 819
der_level 1086
gammafrac 1099
lfunlambda0 1211
lfunderiv 1267
lfunlambda_product 1279
ldata_isreal 1706
lfunprod_get_fact 1797
lfunlambdaord 1834
powersshift 1939
lfuninit_vecc2_sum 2058
wrap2 2194
lfunrootres 2471
lfunparams2 2485
lfuncheckfeq_i 2492
lfuninit_vecc_sum 2506
lfuncheckfeq 2562
theta_get_R 2663
lfun 3185
lfun0 3206
lfunsumcoth 3316
theta_pole_contrib 3675
lfunrootno 3787
get_eno 3822
ropm1 3843
lfun_OK 3962
lfun_get_factgammavec 3962
gammaordinary 4032
lfun_get_Residue 4205
lfunpoleresidue 4205
theta_add_polar_part 4270
lfuninit_vecc 4424
lfun_init_theta 4431
gamma_C 4459
lfuninit_pol 4564
lfuninit_make 5110
get_domain 5257
simple_pole 5334
mkvroots 5351
theta_get_K 5351
ldata_get_type 5530
normalize_simple_pole 5712
theta_dual 6328
wrap1 6473
lfunrtopoles 6482
rtoR 6531
veccothderivn 6639
polepart 6702
lfunthetainit_i 7007
normalizepoles 7273
fracgammadegree 7854
vecpowug 8440
condset 8709
residues_known 8883
antwist 9898
lfunhardyzeros 10344
lfuncost 10421
gamma_R 10801
lfun_get_expot 10834
lfun_get_w2 10834
lfunhardy 10841
ldata_get_degree 11079
lfunthetainit0 11424
mysercoeff 11721
checklfuninit 13340
sdomain_isincl 13340
deg1ser_shallow 13489
domain_get_der 13739
ldata_get_an 13846
lfunrtoR 13846
vgaell 13895
fracgammaeval 14497
gammafactproduct 14497
lfunparams 14852
sumVgaimpos 14852
isnegint 15260
gammafactor 15491
polgammaeval 15687
lfunrtoR_eno 16506
lfunrtoR_i 16583
lfun_get_pol 18077
lfun_get_step 18077
lfuninit 18247
domain_get_bitprec 18520
lfunlambda_OK 19356
theta1 25348
lfun_get_k2 28491
ldata_get_dual 28628
domain_get_dom 31445
lfun_get_domain 31858
lfuntheta 32404
theta_get_an 32530
theta_get_tdom 34791
theta_get_sqrtN 36821
lfunthetacheckinit 38697
lfunthetacost 39306
vgaeasytheta 39313
theta_get_bitprec 43563
ldata_get_rootno 44537
get_cone_fuzz 50716
gammavec_expo 54151
ldata_get_k1 54158
sumVga 59261
theta_get_m 64434
linit_get_type 72107
parse_dom 77686
get_cone 85507
ldata_get_k 89697
ldata_get_residue 103497
linit_get_ldata 109049
is_linit 109683
theta2 115175
ldata_get_conductor 122215
linit_get_tech 131481
mulT 140523
ldata_get_gammavec 169424
get_an 4681547
mul_an 11278649
vecan_cmul 23339281

Generated by: LCOV version 1.13