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 20076-e66e249) Lines: 1235 1333 92.6 %
Date: 2017-01-17 05:50:07 Functions: 147 153 96.1 %
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
FpX_gcd_check 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 29
FpXQ_transmul_init 30
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 518
FpXQ_autpow_sqr 542
FpX_dotproduct 566
FpXQ_autpowers 616
FpXQ_autsum 795
FpXQ_autsum_sqr 809
FpXC_FpXQV_eval 854
FpX_chinese_coprime 980
FpX_halve 1090
gener_FpXQ_local 1442
_FpXQ_easylog 1443
gener_FpXQ_i 1465
FpX_invBarrett_basecase 1490
FpXQ_autsum_mul 1551
FpX_Fp_sub_shallow 1559
Z_to_FpX 1710
FpV_invVandermonde 1771
FpV_producttree 1772
FpX_FpV_multieval_tree 1772
get_FpXQ_star 1782
FpX_invBarrett 2040
FpX_is_squarefree 2107
FpXV_FpX_fromdigits 2296
FpX_matFrobenius 2693
FpXQ_norm 3210
FpXQ_issquare 3258
FpXQ_minpoly 3277
_FpXQ_rand 3384
_FpXQ_zero 3537
FpXQ_matrix_pow 4072
FpV_inv 4195
FpV_roots_to_pol 5341
bounded_order 5382
Fp_FpXQ_log 5626
FpX_digits 5642
FpX_resultant 5878
Fp_red_FpX 6598
gener_FpXQ 6841
FpXQ_sqrt 7347
deg2pol_shallow 8171
Fp_FpX_sub 8427
FpXQ_sqrtn 8492
_FpX_add 10241
FpX_rescale 13377
get_FpXQ_algebra 13559
FpXV_prod 18692
random_FpX 19165
FpX_div_by_X_x 19593
FpXQ_trace 20785
FpX_valrem 23779
FpX_Fp_mul_to_monic 45775
FpX_gcd_basecase 52006
_FpX_sqr 55979
_FpXQ_sub 57554
FpXQ_powu 62867
_FpX_mul 69597
_FpX_divrem 69706
FpXQ_log 71767
FpX_neg 73811
Fq_issquare 90664
Fp_issquare 90811
FpX_divrem_Barrett_noGC 97316
FpX_divrem_Barrettspec 97712
FpX_FpXQV_eval 126079
_FpXQ_pow 150173
FpXQ_pow_Frobenius 150882
FpX_Frobenius 156399
FpX_FpXQ_eval 170401
FpXQ_powers 185288
FpX_recipspec 196031
ZX_lgrenormalizespec 206014
FpXQ_div 228402
FpX_extgcd_basecase 246820
FpX_normalize 259916
FpX_powu 267610
Fq_log 271845
FpXQ_inv 289479
FpXQ_invsafe 289493
FpXV_red 289643
FpX_Fp_sub 299637
_FpXQ_one 311524
_FpXQ_red 356081
FpX_extgcd 361306
FpX_eval 371459
get_FpX_mod 386887
FpX_get_red 421308
FpX_gcd 440620
FpXQ_pow 515140
FpX_Fp_add 550299
FpX_deriv 635757
FpX_center 676674
to_Flxq 754245
_FpXQ_mul 871554
_FpXQ_add 1069640
FpXT_red 1092972
FpX_mulu 1183982
_FpXQ_cmul 1198561
get_FpX_var 1382068
get_FpX_degree 1584415
FpX_mulspec 1653186
_FpXQ_sqr 2590114
FpXQ_red 2645307
FpXQ_sqr 3058136
FpX_sqr 3148327
FpX_Fp_mul 3497762
FpX_Fp_mulspec 3503446
FpX_divrem 3651472
FpX_sub 6482677
FpX_subspec 6580387
FpX_add 8073578
FpXQ_mul 39910834
to_Flx 40026305
FpX_mul 46038524
FpX_rem 60931520
FpX_divrem_basecase 61623533
get_FpX_red 64583022
FpX_red 66107884

Generated by: LCOV version 1.11