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 - buch2.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 22303-eb3e11d) Lines: 2338 2500 93.5 %
Date: 2018-04-21 06:16:28 Functions: 144 153 94.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Buchall 7316
Buchall_deg1 469
Buchall_param 8471
FB_aut_perm 8191
FBgen 8191
Fincke_Pohst_ideal 344955
GRHchk 59242
GRHok 276508
RgM_bit 10104
RgV_is1 8888
SPLIT 352811
Vbase_to_FB 10574
act_arch 601325
addRe_modIm 746888
add_cyclotomic_units 8191
add_principal_part 22391
add_rel 597653
add_rel_i 678014
add_to_fact 14694
already_known 677873
assign_subFB 8346
automorphism_matrices 8051
automorphism_perms 8002
bad_subFB 33640
be_honest 7
bnf_build_cycgen 8225
bnf_build_matalpha 38
bnf_build_units 27023
bnf_get_B 673941
bnf_get_C 682345
bnf_get_W 336540
bnf_get_vbase 336589
bnfcompress 7
bnfinit0 1162
bnfisprincipal0 367065
bnfisunit 2310
bnfnewprec 14
bnfnewprec_shallow 31
bnftestprimes 49
bnrnewprec 7
bnrnewprec_shallow 0
buchall_end 8478
cache_prime_dec 126270
can_factor 1603881
class_group_gen 8040
clean_cols 10299
cleanarch 326825
codeprime 49
codeprimes 7
compute_R 10104
compute_invres 8002
compute_multiple_of_R 15906
compute_multiple_of_R_pivot 877678
compute_vecG 8002
dbg_cancelrel 0
dbg_newrel 0
decode_pr_lists 7
decodeprime 49
delete_FB 8191
delete_cache 8191
divide_p 1478228
divide_p_elt 1146106
divide_p_id 102281
divide_p_quo 229841
exp_OK 2841
expand 0
expandext 22409
extract_full_lattice 8098
fact_ok 244183
factorgen 339052
famat_get_arch_real 1334
famat_to_arch 6944
free_GRHcheck 24241
get_arch 224549
get_arch_real 6938
get_archclean 106
get_clfu 8478
get_fs 924608
get_log_embed 83038
get_norm_fact 243044
get_norm_fact_primes 885
get_pr_lists 336529
get_random_ideal 2969
get_regulator 38
get_y 896
getfu 8098
i2print 0
idealHNF_mulred 16674
idnorm 18705
init_GRHcheck 24241
init_famat 22097
init_red_mod_units 211190
init_rel 8191
inv_fact 2886
inverse_if_smaller 6235
isprincipal 101059
isprincipalall 337432
isprincipalarch 245329
isprincipalfact 22309
isprincipalfact_or_fail 100
isprincipalforce 0
isprincipalgen 0
isprincipalgenforce 0
log_m1 2738
low_prec 13924
makecycgen 1771
makematal 29
makeunits 4811
my_class_group_gen 31
needed_bitprec 1146
neg_row 250
nfcyclotomicunits 8191
nfsign_from_logarch 14483
nfsign_units 22575
not_given 103
nthideal 16004
perm_log_embed 49099
powFBgen 465
powPgen 912
pr_index 10623
pr_orbit_fill 11851
pre_allocate 28241
prec_arch 344853
primeneeded 8002
reallocate 8212
recover_partFB 336522
red 2969
red_mod_units 211190
remove_content 2969
rnd_rel 2969
sbnf2bnf 7
scalar_bit 1171397
scalar_get_arch_real 1309
set_fact 572185
setlg_col 483
shift_G 12607
shift_embed 18612
signunits 7
small_norm 24436
smooth_norm 1492037
split_ideal 336473
step 4650739
store 2422830
subFB_change 463
subFBgen 8191
tailres 139485
tailresback 278970
trim_list 27776
triv_arch 6835
triv_gen 52052
try_elt 1659
unclone_subFB 8191
wr_rel 0

Generated by: LCOV version 1.11