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 to exceed 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 - FpE.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23339-b1c33c51a) Lines: 984 1067 92.2 %
Date: 2018-12-11 05:41:34 Functions: 106 114 93.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpE_neg_i 0
FpE_sub 0
FpJ_neg 0
FpXQE_log 0
FpXQE_neg_i 0
FpXQE_sub 0
Fp_ellpoint 0
Fp_elltwist 0
FpXQE_tatepairing 7
FpXQ_ellgens 8
get_FpXQE_group 8
FpXQE_order 14
FpXQ_ellgroup 15
_FpXQE_pairorder 28
FpXQE_weilpairing 35
FpE_log 49
FpXQE_Miller 77
Fp_ellcard_Shanks 78
get_table_size 78
Fp_ellj 98
ap_j8000 126
_FpXQE_rand 128
ap_j287496 140
FpE_tatepairing 203
nonsquare_Fp 420
FpE_to_mod 488
Fp_ellgens 574
FpE_order 736
FpXQE_neg 749
FpE_mul 765
FpXQE_Miller_add 833
FpXQE_chord_update 833
FpXQ_elltwist 840
nonsquare_FpXQ 840
FpXQE_mul 854
FpXQE_changepointinv 896
RgE_to_FpXQE 896
get_FpE_group 903
random_FpXQE 982
Fp_elljissupersingular 1057
FpE_changepoint 1160
RgE_to_FpE 1290
ap_cm 1337
FpXQ_ellcardj 1687
FpXQ_ellj 1695
FpXQE_changepoint 1716
FpE_changepointinv 2185
path_extends_to_floor 2590
_FpXQE_mul 2815
FpXQ_ellcard 3445
FpJ_mul 4928
_FpJ_mul 4928
FpXQE_Miller_dbl 5026
FpXQE_tangent_update 5026
FpE_Miller_add 5257
FpE_chord_update 5257
Fl_ellpoint 5397
FqX_quad_root 5684
FpXQE_Miller_line 5761
FpXQE_vert 5936
_FpE_pairorder 10270
FpE_weilpairing 10515
u2_is_CMj 10787
ec_ap_cm 11277
Fp_ffellcard 13041
elltrace_extension 13622
jissupersingular 13860
FpE_Miller 14733
FpE_Miller_line 18724
_fix 19038
Fp_ellgroup 21602
_FpE_rand 28914
random_FpE 31084
FpE_Miller_dbl 32359
FpE_tangent_update 32359
FpXQE_add 34472
_FpXQE_add 34472
FpXQE_add_slope 35284
FpE_dbl 37177
_FpE_dbl 37177
Fp_ellj_nodiv 38595
Fp_ellj_get_CM 39441
FpJ_to_FpE 52776
FpE_vert 52951
FpE_to_FpJ 53155
FpE_dbl_slope 53535
ap_j0 71525
FpXQ_elljissupersingular 164227
FpXQE_dbl 180444
_FpXQE_dbl 180444
FpXQE_dbl_slope 185400
Fle_dbl_inplace 191180
Fl_ellcard_Shanks 212945
closest_lift 213104
uclosest_lift 218343
Fl_elltrace_naive 268762
Fl_elltrace 271917
Fl_elltrace_CM 305448
FpE_add_ip 305694
FpE_neg 375964
is_CMj 490025
_FpE_mul 490701
_FpJ_add 628212
FpJ_add 628289
_FpE_add 932498
FpE_add 951689
FpE_add_slope 954608
ap_j1728 2617818
Fp_ellcard_CM 2718134
Fp_ellcard 2867797
FpJ_dbl 3471149
_FpJ_dbl 3471950
Fle_add_inplace 5193715
compare_multiples 14490841

Generated by: LCOV version 1.13