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-bordeaux1.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 - F2x.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 17411-5d2797e) Lines: 869 938 92.6 %
Date: 2015-01-31 Functions: 104 107 97.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 469 603 77.8 %

Function Name Sort by function name Hit count Sort by hit count
F2x_degree_lg 106511716
F2x_addshiftip 64342843
F2v_add_inplace 52709252
F2x_mulspec 32900212
F2x_shiftip 32788456
F2x_degree 22912141
F2x_mul1 21497663
F2x_add 13180094
F2x_rem 11907569
F2x_addshift 11901058
F2x_mul 10317278
F2x_addspec 9555046
F2x_divrem 9199204
ZV_to_F2v 1949179
F2x_sqr 1721589
F2xq_sqr 1629022
F2xq_mul 1349901
F2x_gcd 1064383
F2c_to_ZC 921878
_F2xq_cmul 645569
_F2xq_add 624229
F2x_extgcd 358529
F2xq_invsafe 358528
F2xq_inv 358527
F2x_to_F2v 336309
_F2xq_mul 335773
F2xq_div 328212
ZM_to_F2m 323425
F2x_deriv 253754
_F2xq_sqr 237348
F2m_to_ZM 166518
_F2xq_one 166365
Flx_to_F2x 123668
_F2xq_red 115151
Rg_to_F2xq 107035
F2x_to_ZX 96077
F2x_is_smooth_squarefree 91742
F2x_shift 81256
F2x_shiftpos 80794
F2x_is_smooth 77392
F2xq_trace 67059
rel_Coppersmith 54019
F2xq_matrix_pow 51733
F2xq_powers 51733
F2xV_to_F2m 51733
F2x_to_Flx 49311
F2x_pow2n 46284
F2x_valrem 45484
F2x_even_odd 44873
F2xq_sqrt_fast 44873
F2x_deflate 37093
F2xq_Artin_Schreier 30901
F2x_F2xq_eval 21214
F2x_sqrt 17521
F2x_issquare 14350
F2xq_autpow_sqr 11854
F2xq_autpow_mul 9344
mkF2 8062
RgV_to_F2v 7623
F2x_factorel 7322
F2xq_pow 6468
Flv_to_F2v 6034
ZX_to_F2x 5963
F2xq_sqrt 5488
F2x_is_x 5332
F2xq_autpow 5331
F2xq_powu 3843
F2c_to_Flc 3374
F2c_to_mod 3010
Z_to_F2x 1806
ZXX_to_F2xX 1666
F2xC_to_ZXC 1666
F2m_to_Flm 1232
Flm_to_F2m 1232
F2x_1_add 1178
_F2xq_pow 1063
_F2xq_rmul 665
F2x_shiftneg 462
F2xq_order 346
RgM_to_F2m 259
_F2xq_equal0 147
F2x_halfgcd_i 147
F2x_halfgcd 147
_F2xq_neg 140
F2m_to_mod 98
_F2xq_s 98
gener_F2xq 84
_F2xq_inv 77
_F2xq_rand 70
F2xq_easylog 63
F2xq_sqrtn 63
get_F2xq_field 56
F2xq_log_Coppersmith_d 42
F2xq_log_from_rel 42
F2v_slice 28
F2xq_log 21
F2xq_log_find_rel 14
F2xq_log_Coppersmith_rec 14
F2m_rowslice 14
F2xq_log_index 7
F2xq_conjvec 7
check_kernel 7
F2xq_log_Coppersmith 7
smallirred_F2x 7
F2x_F2xqV_eval 0
RgX_to_F2x 0
_F2xq_zero 0

Generated by: LCOV version 1.9