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 - ecpp.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.0 lcov report (development 29821-ad8e616c7c) Lines: 748 805 92.9 %
Date: 2024-12-28 09:09:04 Functions: 95 98 96.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Dmq_get_D 0
time_record 0
timer_record 0
cert_get_qlast 7
cert_out 7
magma_out 14
primo_out 14
ecpp 28
dihedralpol 35
ecppexport 35
ecppisvalid 35
ecppisvalid_i 35
realpart 35
isprimeECPP 42
cert_get_T 49
cert_get_lambda 49
ecpp_flattencert 56
ecpp_step2 56
polmodular_db_init_allinv 56
allh 77
ecpp_disclist_init 77
ecpp_param 77
ecpp_param_set 77
ecpp_primelist_init 77
ecpp_primeord_init 77
ecpp_step1 77
primorial_vec 77
cert_get_J 98
ecpp0 98
cert_get_x 154
cert_get_D 168
cert_get_E 168
j0_find_g 203
cert_get_q 210
allh_r 392
genusfield 413
cert_get_a6 469
Nq_isvalid 504
primecertisvalid_ecpp_worker 511
primo_printval 721
cert_get_m 882
cert_get_s 882
D_polclass 1057
Dfac_to_p 1057
Dfac_to_roots 1057
FpX_classtower_oneroot 1057
NDmqg_get_N 1057
NDmqg_get_g 1057
NDmqg_get_m 1057
NDmqg_get_q 1057
NDmqg_get_sqrt 1057
ecpp_step2_worker 1057
find_EP 1057
mkNDmqg 1057
N_downrun 1120
ecpp_param_get_disclist 1120
ecpp_param_get_maxpcdg 1120
ecpp_param_get_uprimelist 1120
tunevec_batchsize 1120
cert_get_P 1295
cert_get_a4 1456
cert_get_t 1722
sort_Dmq_by_cnum 2317
NqE_check 2429
cert_get_N 3024
sort_NDmq_by_D 3836
Dmbatch_factor_Dmqvec 3857
Dmqvec_slice 3857
Dmvec_batchfactor 3857
ecpp_param_get_primorial_vec 3857
ecpp_qlo 3857
Dmq_get_h 4634
ecpp_param_get_tune 4977
tunevec 4977
tunevec_tdivbd 4977
FpJ_is_inf 5362
NDmqg_get_D 7672
zv_binsearch0 7714
NDmqg_get_Dinfo 9786
NUV_find_m 10864
gained_bits 12047
lessthan_qlo 13356
ecpp_param_get_primeord 14345
ecpp_parsqrt 14345
ecpp_param_get_primelist 15521
ecpp_sqrt_worker 17996
ecpp_ispsp_worker 20934
D_find_discsqrt 40677
sort_Dmq_by_q 57379
D_collectcards 538034
mkDinfo 1907423
Dinfo_get_bi 22753661
sort_disclist 28821478
Dinfo_get_h 30064335
Dinfo_get_Dfac 32506138
D_get_wD 57654513
Dinfo_get_pd 57799749
Dinfo_get_D 58191833

Generated by: LCOV version 1.16