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 19823-d80e022) Lines: 1235 1333 92.6 %
Date: 2016-12-03 05:49:13 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 13
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 467
FpXQ_autpow 514
FpX_invBarrett_Newton 523
FpXQ_autpow_sqr 542
FpX_dotproduct 566
FpXQ_autpowers 609
FpX_chinese_coprime 665
FpXQ_autsum 795
FpXQ_autsum_sqr 809
FpXC_FpXQV_eval 854
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 1736
FpV_producttree 1737
FpX_FpV_multieval_tree 1737
get_FpXQ_star 1782
FpX_invBarrett 2046
FpX_is_squarefree 2065
FpX_fromdigits 2296
FpX_matFrobenius 2581
FpXQ_norm 3210
FpXQ_issquare 3258
FpXQ_minpoly 3277
_FpXQ_rand 3384
_FpXQ_zero 3537
FpXQ_matrix_pow 3876
FpV_inv 4160
FpV_roots_to_pol 5306
bounded_order 5382
Fp_FpXQ_log 5626
FpX_digits 5642
FpX_resultant 5878
Fp_red_FpX 6584
gener_FpXQ 6841
FpXQ_sqrt 7340
deg2pol_shallow 8087
Fp_FpX_sub 8426
FpXQ_sqrtn 8436
_FpX_add 10241
FpX_rescale 13377
get_FpXQ_algebra 13559
FpXV_prod 18650
random_FpX 19165
FpX_div_by_X_x 19369
FpXQ_trace 20788
FpX_valrem 23779
FpX_Fp_mul_to_monic 45760
FpX_gcd_basecase 52006
_FpX_sqr 55076
_FpXQ_sub 57554
FpXQ_powu 62860
_FpX_mul 69261
_FpX_divrem 69706
FpXQ_log 71767
FpX_neg 73690
Fq_issquare 90650
Fp_issquare 90797
FpX_divrem_Barrett_noGC 97360
FpX_divrem_Barrettspec 97756
FpX_FpXQV_eval 125351
_FpXQ_pow 150173
FpXQ_pow_Frobenius 150882
FpX_Frobenius 156140
FpX_FpXQ_eval 169872
FpXQ_powers 184728
FpX_recipspec 196126
ZX_lgrenormalizespec 206222
FpXQ_div 228360
Fq_log 245819
FpX_extgcd_basecase 246645
FpX_powu 258181
FpX_normalize 259005
FpXQ_inv 285860
FpXQ_invsafe 285874
FpXV_red 289286
FpX_Fp_sub 299313
_FpXQ_one 308407
_FpXQ_red 352484
FpX_extgcd 356567
FpX_eval 370430
get_FpX_mod 383274
FpX_get_red 420259
FpX_gcd 440417
FpXQ_pow 514883
FpX_Fp_add 550258
FpX_deriv 635235
FpX_center 665531
to_Flxq 753159
_FpXQ_mul 868950
_FpXQ_add 1052868
FpXT_red 1092567
_FpXQ_cmul 1181064
FpX_mulu 1183978
get_FpX_var 1377344
get_FpX_degree 1582301
FpX_mulspec 1653355
_FpXQ_sqr 2589442
FpXQ_red 2639212
FpXQ_sqr 3057466
FpX_sqr 3146790
FpX_Fp_mul 3492469
FpX_Fp_mulspec 3498153
FpX_divrem 3630521
FpX_sub 6480958
FpX_subspec 6578714
FpX_add 8071652
FpXQ_mul 39904947
to_Flx 39994650
FpX_mul 46013255
FpX_rem 60913640
FpX_divrem_basecase 61588770
get_FpX_red 64544191
FpX_red 65996591

Generated by: LCOV version 1.11