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 20277-2bd9113) Lines: 1244 1332 93.4 %
Date: 2017-02-21 05:49:51 Functions: 148 153 96.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 0
FpX_FpV_multieval 0
FpX_Fp_add_shallow 0
FqV_inv 0
get_FpX_algebra 0
FpVV_polint_tree 1
FpV_polint 1
FpXQ_charpoly 1
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpXQ_autpow_mul 7
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_conjvec 8
Fp_neg_FpX 8
FpXQ_auttrace 14
FpX_disc 28
FpXQ_order 30
FpXQ_transmul_init 30
FpX_gcd_check 105
FpXn_mul 108
FpXQ_transmul 123
Fq_ispower 133
FpXQM_autsum 140
FpX_FpXM_qmul 165
FpX_halfgcd_split 165
FpXM_FpX_mul2 169
FpXM_mul2 169
FpX_halfgcd_basecase 191
FpXQM_autsum_sqr 210
FpXM_FpXQV_eval 308
FpXQM_autsum_mul 308
FpX_addmulmul 346
FpX_halfgcd_i 356
FpX_halfgcd 468
FpXQ_autpow 514
FpX_invBarrett_Newton 524
FpXQ_autpow_sqr 542
FpX_dotproduct 566
FpXQ_autpowers 700
FpXQ_autsum 795
FpXQ_autsum_sqr 809
FpXC_FpXQV_eval 854
FpX_chinese_coprime 980
FpX_halve 1090
_FpXQ_easylog 1437
gener_FpXQ_local 1442
FpX_invBarrett_basecase 1450
gener_FpXQ_i 1465
FpXQ_autsum_mul 1551
FpX_Fp_sub_shallow 1559
Z_to_FpX 1710
get_FpXQ_star 1776
FpX_invBarrett 2006
FpV_invVandermonde 2142
FpV_producttree 2143
FpX_FpV_multieval_tree 2143
FpXV_FpX_fromdigits 2296
FpX_is_squarefree 2338
FpX_matFrobenius 2693
FpXQ_norm 3179
FpXQ_issquare 3227
_FpXQ_rand 3405
_FpXQ_zero 3537
FpXQ_minpoly 3746
FpXQ_matrix_pow 4072
FpV_inv 4566
bounded_order 5396
Fp_FpXQ_log 5620
FpX_digits 5642
FpV_roots_to_pol 5803
FpX_resultant 5852
Fp_red_FpX 6598
gener_FpXQ 6841
FpXQ_sqrt 7340
FpXQ_sqrtn 8485
Fp_FpX_sub 8511
deg2pol_shallow 9683
_FpX_add 10241
FpX_rescale 13377
get_FpXQ_algebra 13559
random_FpX 19160
FpXV_prod 19448
FpXQ_trace 20802
FpX_div_by_X_x 23147
FpX_valrem 23779
FpX_Fp_mul_to_monic 47329
FpX_gcd_basecase 52006
_FpX_sqr 56903
_FpXQ_sub 57554
FpXQ_powu 62916
_FpX_divrem 69706
FpXQ_log 71690
_FpX_mul 72621
FpX_neg 73776
Fq_issquare 90664
Fp_issquare 90811
FpX_divrem_Barrett_noGC 95789
FpX_divrem_Barrettspec 96187
FpX_FpXQV_eval 128004
_FpXQ_pow 150203
FpXQ_pow_Frobenius 150913
FpX_Frobenius 157086
FpX_FpXQ_eval 171342
FpXQ_powers 186247
FpX_recipspec 192988
ZX_lgrenormalizespec 203089
FpXQ_div 227394
FpX_extgcd_basecase 245807
FpX_normalize 262773
Fq_log 271082
FpX_powu 273161
FpXQ_inv 290461
FpXQ_invsafe 290482
FpXV_red 290539
FpX_Fp_sub 300253
_FpXQ_one 315052
_FpXQ_red 360888
FpX_extgcd 364626
FpX_eval 379908
get_FpX_mod 387802
FpX_get_red 424053
FpX_gcd 441527
FpXQ_pow 519397
FpX_Fp_add 550299
FpX_deriv 637125
FpX_center 671681
to_Flxq 760046
_FpXQ_mul 872851
_FpXQ_add 1069769
FpXT_red 1098999
FpX_mulu 1181193
_FpXQ_cmul 1200618
get_FpX_var 1387065
get_FpX_degree 1586175
FpX_mulspec 1650555
_FpXQ_sqr 2591720
FpXQ_red 2663014
FpXQ_sqr 3057802
FpX_sqr 3148955
FpX_Fp_mul 3513214
FpX_Fp_mulspec 3518898
FpX_divrem 3675866
FpX_sub 6481207
FpX_subspec 6577393
FpX_add 8073760
FpXQ_mul 39912116
to_Flx 40077510
FpX_mul 46079635
FpX_rem 60973479
FpX_divrem_basecase 61684704
get_FpX_red 64649374
FpX_red 66252763

Generated by: LCOV version 1.11