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 - base4.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 19230-c71492b) Lines: 1424 1553 91.7 %
Date: 2016-07-30 07:10:28 Functions: 131 140 93.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
RM_round_maxrank 31240
ZM_Q_mul 46066
ZM_famat_limit 60872
Z_cba 343504
Z_cba_rec 3058286
Z_dcba_rec 0
Z_ppgle 0
Z_ppio 451654
_idealmulred 44821
_idealsqrred 65373
_mul 28546
_sqr 65373
addmul_col 50379
addmul_mat 24619
append 96321
check_listpr 770
chineseinit_i 1379
chk_vdir 21
coprime_part 352736
elt_cmp 20819
elt_egal 6048
err_divexact 7
ext_inv 4280
ext_mul 184544
ext_pow 259
ext_sqr 65359
extideal_HNF_mul 18844
factor_norm 26733
factorbackprime 5971
famat_Z_gcd 0
famat_add 121124
famat_inv 4420
famat_inv_shallow 7
famat_makecoprime 95508
famat_mul 175115
famat_mul_shallow 3101
famat_pow 2989
famat_reduce 7903
famat_sqr 54810
famat_to_Fp_simple 385
famat_to_Fq_simple 0
famat_to_nf 0
famat_to_nf_moddivisor 15022
famatsmall_reduce 8806
get_random_a 209709
gpidealval 42
hnf_QC_QC 7
hnf_Q_Q 21
hnf_Q_QC 28
hnf_Z_QC 21
hnf_Z_ZC 28
idealadd 29330
idealaddmultoone 35
idealaddtoone 2981
idealaddtoone0 70
idealaddtoone_i 317124
idealappr 784
idealappr0 14
idealapprfact 770
idealapprfact_i 15939
idealchinese 2751
idealcoprime 63
idealcoprimefact 4711
idealdiv 15379
idealdiv0 35
idealdivexact 2135
idealdivpowprime 4116
idealfactor 29372
idealfactor_HNF 26733
idealhnf 2240
idealhnf0 119
idealhnf_principal 182474
idealhnf_shallow 454164
idealhnf_two 1830770
idealintersect 21
idealinv 48766
idealinv_HNF 32800
idealinv_HNF_Z 33360
idealmin 7
idealmul 519912
idealmul0 28
idealmul_HNF 488472
idealmul_HNF_two 825663
idealmul_aux 585285
idealmulelt 136587
idealmulpowprime 37793
idealmulred 16275
idealnorm 10562
idealnumden 26859
idealpow 397049
idealpow0 42
idealpow_aux 397049
idealpowprime 231354
idealpowred 71356
idealpows 14588
idealprodprime 0
idealred0 169192
idealsqr 65373
idealtwoelt 19690
idealtwoelt0 63
idealtwoelt2 42
idealtyp 3076161
idealval 342810
init_unif_mod_fZ 21112
is_chineseinit 2716
isideal 84
isprfact 1316
make_integral 3668
mat_ideal_two_elt 479094
mat_ideal_two_elt2 21
merge_fact 21
nf_coprime_part 49
nf_get_Gtwist 21
nf_get_Gtwist1 26130
nf_to_Fp_simple 3640
nf_to_Fq_simple 0
nfdivmodpr 588
nfkermodpr 14
nfmulmodpr 595
nfpowmodpr 168
nfsolvemodpr 21
not_in_ideal 14
ok_elt 252644
pidealprimeinv 1972
pl_normalize 595
pr_init 1316
to_Fp_simple 3444
to_Fq_simple 0
to_famat 910
to_famat_shallow 715051
trivial_merge 28
twistG 26172
ucoprime_part 161840
unif_mod_fZ 29029
val_norm 362081
vec_mulid 7
vecdiv 903
vecinv 0
vecmul 178087
vecpow 15792

Generated by: LCOV version 1.11