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.8.0 lcov report (development 19191-d7615ef) Lines: 1228 1328 92.5 %
Date: 2016-07-23 07:10:28 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
FpXQ_auttrace 14
Fp_neg_FpX 17
FpX_disc 28
FpXQ_order 29
FpXQ_transmul_init 30
FpXn_mul 108
Fq_ispower 112
FpXQ_transmul 123
FpXQM_autsum 140
FpX_FpXM_qmul 162
FpX_halfgcd_split 162
FpXM_FpX_mul2 166
FpXM_mul2 166
FpX_halfgcd_basecase 187
FpXQM_autsum_sqr 210
FpXM_FpXQV_eval 308
FpXQM_autsum_mul 308
FpX_addmulmul 340
FpX_halfgcd_i 349
FpX_halfgcd 455
FpX_invBarrett_Newton 508
FpXQ_autpow 514
FpXQ_autpow_sqr 542
FpX_dotproduct 566
FpXQ_autpowers 595
FpX_chinese_coprime 665
FpXC_FpXQV_eval 854
FpXQ_autsum 956
FpXQ_autsum_sqr 970
FpX_halve 1124
_FpXQ_easylog 1348
FpX_invBarrett_basecase 1421
gener_FpXQ_local 1428
gener_FpXQ_i 1451
FpX_Fp_sub_shallow 1565
Z_to_FpX 1710
get_FpXQ_star 1771
FpXQ_autsum_mul 1866
Fq_log 1876
FpX_invBarrett 1933
FpX_fromdigits 2296
FpV_invVandermonde 2324
FpV_producttree 2325
FpX_FpV_multieval_tree 2325
FpX_is_squarefree 2478
FpX_matFrobenius 2583
FpXQ_minpoly 3095
FpXQ_norm 3422
_FpXQ_rand 3462
FpXQ_issquare 3470
_FpXQ_zero 3537
FpXQ_matrix_pow 3878
FpV_inv 4748
FpV_roots_to_pol 5131
bounded_order 5442
FpX_digits 5642
FpX_resultant 5927
Fp_red_FpX 6584
gener_FpXQ 6673
FpXQ_sqrt 7195
FpXQ_sqrtn 8249
Fp_FpX_sub 9215
deg2pol_shallow 9865
_FpX_add 10241
FpX_rescale 13062
get_FpXQ_algebra 13559
FpXV_prod 19574
FpX_div_by_X_x 20293
FpXQ_trace 20750
FpX_valrem 23282
Fp_FpXQ_log 38306
random_FpX 46927
FpX_gcd_basecase 52052
FpX_Fp_mul_to_monic 52411
_FpX_sqr 55083
_FpXQ_sub 57554
FpXQ_powu 61817
_FpX_mul 69001
_FpX_divrem 69706
FpX_Frobenius 77515
FpXQ_log 84591
Fq_issquare 90538
Fp_issquare 90713
FpX_divrem_Barrett_noGC 97666
FpX_divrem_Barrettspec 98090
FpX_FpXQV_eval 124331
FpX_gcd 127058
FpX_neg 149871
FpX_FpXQ_eval 175147
FpXQ_powers 184003
FpX_recipspec 196777
ZX_lgrenormalizespec 206509
FpXQ_div 226448
FpX_extgcd_basecase 244465
FpX_normalize 245914
FpX_powu 258146
FpXQ_inv 285974
FpXQ_invsafe 285988
FpXV_red 288146
FpX_Fp_sub 298218
_FpXQ_one 303365
FpX_extgcd 319723
_FpXQ_red 345710
get_FpX_mod 396544
FpX_eval 525269
FpX_Fp_add 548983
FpX_deriv 634607
to_Flxq 671974
FpX_center 707798
_FpXQ_pow 852492
FpXQ_pow_Frobenius 853158
_FpXQ_add 1024163
FpXT_red 1089007
FpX_get_red 1121782
FpXQ_pow 1133252
_FpXQ_cmul 1151288
FpX_mulu 1179435
get_FpX_var 1388852
FpX_mulspec 1661334
_FpXQ_mul 2273717
get_FpX_degree 2400152
FpX_Fp_mul 3302420
_FpXQ_sqr 3302840
FpX_Fp_mulspec 3308104
FpX_divrem 3324256
FpXQ_sqr 3768886
FpXQ_red 3778739
FpX_sqr 3858098
FpX_sub 6644885
FpX_subspec 6742975
FpX_add 8128189
to_Flx 39565950
FpXQ_mul 41422351
FpX_mul 47597374
FpX_divrem_basecase 63922679
FpX_rem 64617649
get_FpX_red 67941936
FpX_red 70269358

Generated by: LCOV version 1.11