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-28 05:33:48 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_polint 0
FpXQ_charpoly 0
FpX_FpV_multieval 0
FpX_Fp_add_shallow 0
FqV_inv 0
get_FpX_algebra 0
FpX_FpXM_qmul 3
FpX_extgcd_halfgcd 3
FpX_halfgcd_split 3
matid2_FpXM 3
FpXM_FpX_mul2 6
FpXM_mul2 6
FpXQ_autpow_mul 6
FpXQ_auttrace_mul 6
FpXQ_auttrace_sqr 6
FpXQ_conjvec 6
Fp_neg_FpX 6
FpXQ_auttrace 12
FpX_addmulmul 18
FpX_halfgcd_basecase 18
FpX_halfgcd_i 21
FpXQ_transmul_init 24
FpX_disc 24
FpXQ_order 25
FpX_gcd_check 90
FpXn_mul 90
FpXQ_transmul 102
Fq_ispower 114
FpXQM_autsum 120
FpX_halfgcd 123
FpXQM_autsum_sqr 180
FpXM_FpXQV_eval 264
FpXQM_autsum_mul 264
FpX_matFrobenius 294
FpXQ_autpow 438
FpXQ_autpow_sqr 462
FpX_invBarrett_Newton 463
FpXQ_matrix_pow 474
FpX_dotproduct 480
FpXQ_autpowers 606
FpXQ_autsum 660
FpXQ_autsum_sqr 672
FpXC_FpXQV_eval 732
FpX_chinese_coprime 840
FpX_halve 918
FpX_invBarrett_basecase 1125
_FpXQ_easylog 1183
gener_FpXQ_local 1230
gener_FpXQ_i 1248
FpXQ_autsum_mul 1290
FpX_Fp_sub_shallow 1314
Z_to_FpX 1464
get_FpXQ_star 1500
FpX_invBarrett 1612
FpV_inv 1848
FpV_invVandermonde 1848
FpV_producttree 1848
FpX_FpV_multieval_tree 1848
FpXV_FpX_fromdigits 1968
FpX_is_squarefree 2010
FpXQ_norm 2725
_FpXQ_rand 2740
FpXQ_issquare 2767
_FpXQ_zero 3018
FpXQ_minpoly 3234
bounded_order 4371
Fp_FpXQ_log 4771
FpX_digits 4836
FpX_resultant 4904
FpV_roots_to_pol 4992
Fp_red_FpX 5658
gener_FpXQ 5862
FpXQ_sqrt 6275
FpXQ_sqrtn 6641
Fp_FpX_sub 6978
deg2pol_shallow 8334
_FpX_add 8778
FpX_rescale 11484
get_FpXQ_algebra 11622
random_FpX 16032
FpXV_prod 16080
FpXQ_trace 17858
_FpXQ_pow 19030
FpXQ_pow_Frobenius 19590
FpX_div_by_X_x 19950
FpX_valrem 20394
FpX_Fp_mul_to_monic 38310
FpX_gcd_basecase 43272
_FpX_sqr 48786
_FpXQ_sub 49332
FpXQ_powu 54024
_FpX_divrem 59748
_FpX_mul 60102
FpXQ_log 61350
FpX_neg 61983
FpX_divrem_Barrett_noGC 77254
FpX_divrem_Barrettspec 77535
Fq_issquare 77712
Fp_issquare 77838
FpX_FpXQV_eval 109260
FpX_Frobenius 137352
FpX_FpXQ_eval 145952
FpX_recipspec 155604
FpXQ_powers 156612
ZX_lgrenormalizespec 164629
FpXQ_div 194369
FpX_extgcd_basecase 210194
Fq_log 220470
FpX_normalize 222978
FpX_powu 234126
FpXQ_inv 247946
FpXQ_invsafe 247964
FpXV_red 249090
FpX_get_red 249542
FpX_Fp_sub 257606
_FpXQ_one 264994
_FpXQ_red 307162
FpX_extgcd 311678
FpX_eval 322506
get_FpX_mod 331435
FpXQ_pow 332949
FpX_gcd 378204
FpX_Fp_add 471630
_FpXQ_mul 520732
FpX_deriv 546158
FpX_center 565488
to_Flxq 649153
_FpXQ_add 914240
FpXT_red 942989
FpX_mulu 1012686
_FpXQ_cmul 1025320
get_FpX_var 1179747
get_FpX_degree 1232455
FpX_mulspec 1403378
_FpXQ_sqr 2043966
FpXQ_red 2287378
FpXQ_sqr 2443654
FpX_sqr 2522138
FpX_Fp_mul 2993041
FpX_Fp_mulspec 2997829
FpX_divrem 3122383
FpX_sub 5511856
FpX_subspec 5589391
FpX_add 6903640
FpXQ_mul 33977122
to_Flx 38859277
FpX_mul 39218023
FpX_rem 51712105
FpX_divrem_basecase 52335786
get_FpX_red 54834513
FpX_red 56243274

Generated by: LCOV version 1.11