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 - FpXX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21353-12523aa) Lines: 821 899 91.3 %
Date: 2017-11-24 06:20:58 Functions: 101 106 95.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpXQXQ_div 0
FpXQXQ_matrix_pow 0
FpXQX_extgcd_basecase 0
FpXQX_extgcd_halfgcd 0
matid2_FpXQXM 0
FpXQXQ_auttrace_mul 1
FpXQXQ_auttrace_sqr 1
FpXQXQ_auttrace 8
FpXQXQ_minpoly 8
polxn_FpXX 8
FpXQX_powu 14
FpXQXQ_transmul_init 16
random_FpXQX 16
FpXQXQ_inv 21
FpXQXQ_invsafe 21
FpXQXn_mul 32
FpXQXQ_autpow_mul 36
FpXQXQ_transmul 40
get_FpXQX_algebra 42
FpXQX_recipspec 48
FpXQXM_mul2 56
FpXQX_FpXQXM_qmul 56
FpXQX_halfgcd_split 56
FpXQXM_FpXQX_mul2 68
FpXQX_dotproduct 68
_FpXQXQ_zero 68
FpXQX_halfgcd_basecase 76
FpXQX_to_mod 77
ZXX_copy 81
FpXQX_halfgcd 132
FpXQX_halfgcd_i 132
FpXQX_addmulmul 136
FpXQXV_prod 137
FpXYQQ_pow 140
FpXY_FpXQ_evalx 147
FpXYQQ_mul 154
FpXQXQ_autpow 173
FpXQX_invBarrett_Newton 182
FpXQXQ_autpow_sqr 187
FpXQXV_FpXQX_fromdigits 189
FpXYQQ_sqr 238
FpXQX_FpXQXQ_eval 246
FpXYQQ_redswap 392
FpXX_neg 471
get_FpXQXQ_algebra 495
FpXQX_digits 588
FpXQXQ_autsum 1120
FpXQXQ_autsum_sqr 1134
FpXQXQ_autsum_mul 1174
FpXQXQ_powers 1327
FpXQXQ_pow 1373
_FpXQX_sqr 1925
ZXX_sqr_Kronecker 2065
FpXQX_FpXQXQV_eval 2632
_FpXQX_mul 2703
FpXY_FpXQV_evalx 2718
FpXQX_invBarrett_basecase 2855
FpXQX_invBarrett 3194
FpXQX_gcd_basecase 3435
_FpXQX_sub 4109
FpXQX_extgcd 5901
FpXQX_div_by_X_x 5957
FpXY_FpY_mulspec 6315
FpXQX_get_red 8635
_FpXQXQ_one 9312
_FpXQX_divrem 9905
Fq_addmul 11914
_FpXQXQ_red 12198
FpXY_eval 12397
FpXQX_gcd 12630
FpXX_sub 13903
FpXY_evaly 16825
_FpXQXQ_mul 29948
FpXQXQ_mul 32483
FpXX_red 32515
_FpXQX_add 35156
FpXX_FpX_mul 36842
_FpXQXQ_cmul 36865
FpXX_FpX_mulspec 43157
FpXQX_divrem_Barrett_noGC 48966
FpXX_mulu 51908
FpXY_evalx 55622
FpXX_Fp_mul 63996
Kronecker_to_ZXX 99127
FpXQX_divrem_Barrettspec 116796
FpXX_subspec 116796
FpXQX_divrem_basecase 127394
FpXQXQ_sqr 132252
_FpXQXQ_sqr 132252
FpXQX_sqr 135080
ZXX_is_ZX 135080
FpXQX_FpXQ_mul 156433
ZXX_mul_Kronecker 157178
FpXQX_red 163850
FpXQX_rem 188491
FpXQX_divrem 201935
to_FlxqX 214998
FpXX_recipspec 233592
ZXX_lgrenormalizespec 237057
FpXX_deriv 269977
FpXQX_mul 303466
get_FpXQX_red 390442
FpXX_add 402954
FpXQX_mulspec 539368
Kronecker_to_FpXQX 663660
ZXX_is_ZX_spec 1213816

Generated by: LCOV version 1.11