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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20459-9710128) Lines: 1199 1332 90.0 %
Date: 2017-04-27 05:33:52 Functions: 145 153 94.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpVV_polint_tree 0
FpV_FpM_polint 0
FpV_inv 1848
FpV_invVandermonde 1848
FpV_polint 0
FpV_producttree 1848
FpV_roots_to_pol 4992
FpXC_FpXQV_eval 732
FpXM_FpXQV_eval 264
FpXM_FpX_mul2 6
FpXM_mul2 6
FpXQM_autsum 120
FpXQM_autsum_mul 264
FpXQM_autsum_sqr 180
FpXQ_autpow 438
FpXQ_autpow_mul 6
FpXQ_autpow_sqr 462
FpXQ_autpowers 606
FpXQ_autsum 660
FpXQ_autsum_mul 1290
FpXQ_autsum_sqr 672
FpXQ_auttrace 12
FpXQ_auttrace_mul 6
FpXQ_auttrace_sqr 6
FpXQ_charpoly 0
FpXQ_conjvec 6
FpXQ_div 194369
FpXQ_inv 247946
FpXQ_invsafe 247964
FpXQ_issquare 2767
FpXQ_log 61350
FpXQ_matrix_pow 474
FpXQ_minpoly 3234
FpXQ_mul 33977326
FpXQ_norm 2725
FpXQ_order 25
FpXQ_pow 332960
FpXQ_pow_Frobenius 19591
FpXQ_powers 156612
FpXQ_powu 54024
FpXQ_red 2287378
FpXQ_sqr 2443828
FpXQ_sqrt 6275
FpXQ_sqrtn 6641
FpXQ_trace 17867
FpXQ_transmul 102
FpXQ_transmul_init 24
FpXT_red 943368
FpXV_FpX_fromdigits 1968
FpXV_prod 16080
FpXV_red 249090
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 1848
FpX_FpXM_qmul 3
FpX_FpXQV_eval 109260
FpX_FpXQ_eval 145961
FpX_Fp_add 471630
FpX_Fp_add_shallow 0
FpX_Fp_mul 2993041
FpX_Fp_mul_to_monic 38318
FpX_Fp_mulspec 2997829
FpX_Fp_sub 257669
FpX_Fp_sub_shallow 1314
FpX_Frobenius 137352
FpX_add 6903640
FpX_addmulmul 18
FpX_center 565499
FpX_chinese_coprime 840
FpX_deriv 546167
FpX_digits 4836
FpX_disc 24
FpX_div_by_X_x 19950
FpX_divrem 3122394
FpX_divrem_Barrett_noGC 77391
FpX_divrem_Barrettspec 77670
FpX_divrem_basecase 52335946
FpX_dotproduct 480
FpX_eval 322506
FpX_extgcd 311678
FpX_extgcd_basecase 210194
FpX_extgcd_halfgcd 3
FpX_gcd 378204
FpX_gcd_basecase 43272
FpX_gcd_check 90
FpX_get_red 249580
FpX_halfgcd 131
FpX_halfgcd_basecase 18
FpX_halfgcd_i 21
FpX_halfgcd_split 3
FpX_halve 918
FpX_invBarrett 1630
FpX_invBarrett_Newton 481
FpX_invBarrett_basecase 1125
FpX_is_squarefree 2010
FpX_matFrobenius 294
FpX_mul 39218226
FpX_mulspec 1403902
FpX_mulu 1012686
FpX_neg 61991
FpX_normalize 222986
FpX_powu 234126
FpX_recipspec 155893
FpX_red 56244912
FpX_rem 51712751
FpX_rescale 11484
FpX_resultant 4901
FpX_sqr 2522422
FpX_sub 5512029
FpX_subspec 5589699
FpX_valrem 20394
FpXn_mul 90
Fp_FpXQ_log 4771
Fp_FpX_sub 6978
Fp_issquare 77838
Fp_neg_FpX 6
Fp_red_FpX 5658
FqV_inv 0
Fq_ispower 114
Fq_issquare 77712
Fq_log 220470
ZX_lgrenormalizespec 165277
Z_to_FpX 1464
_FpXQ_add 914302
_FpXQ_cmul 1025392
_FpXQ_easylog 1183
_FpXQ_mul 520783
_FpXQ_one 265039
_FpXQ_pow 19030
_FpXQ_rand 2740
_FpXQ_red 307207
_FpXQ_sqr 2044131
_FpXQ_sub 49332
_FpXQ_zero 3018
_FpX_add 8778
_FpX_divrem 59748
_FpX_mul 60102
_FpX_sqr 48786
bounded_order 4371
deg2pol_shallow 8334
gener_FpXQ 5862
gener_FpXQ_i 1248
gener_FpXQ_local 1230
get_FpXQ_algebra 11622
get_FpXQ_star 1500
get_FpX_algebra 0
get_FpX_degree 1232465
get_FpX_mod 331453
get_FpX_red 54835168
get_FpX_var 1179802
matid2_FpXM 3
random_FpX 16029
to_Flx 38859296
to_Flxq 649393

Generated by: LCOV version 1.11