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 - language - eval.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 19242-33fa882) Lines: 1012 1388 72.9 %
Date: 2016-07-31 07:11:10 Functions: 90 110 81.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
bincopy_relink 0
break0 70200
change_compo 8394358
changelex 116233882
changevalue 5684763
check_array_index 49186270
checkvalue 82632889
checkvalueptr 499807
closure_callgen1 58977
closure_callgen1prec 10798
closure_callgen2 73962
closure_callgenall 4
closure_callgenvec 453133
closure_callgenvecprec 91
closure_callvoid1 0
closure_castgen 40747927
closure_castlong 651
closure_context 56
closure_disassemble 0
closure_err 15735
closure_eval 151578117
closure_evalbrk 105
closure_evalgen 9981224
closure_evalnobrk 31552876
closure_evalres 78777
closure_evalvoid 75547583
closure_func_err 16092
closure_relink 0
closure_return 34597671
closure_returnupto 596759
closure_trapgen 35
closure_unlink 0
closure_varn 144921
copybin_unlink 0
copylex 8442581
copyupto 13917699
copyvalue 737723
disassemble_cast 0
err_var 0
evalstate_clone 0
evalstate_reset 161
evalstate_restore 30826
evalstate_restore_err 15042
evalstate_save 1315255
freeep 23261
freelex 98353317
gen_relink 0
gen_unlink 0
get_arg_name 14
get_lex 45730108
get_localbitprec 13916312
get_localprec 13904704
get_next_label 147
gp_call 4655
gp_call2 91
gp_callbool 46634
gp_callprec 3290
gp_callvoid 0
gp_eval 7584047
gp_evalbool 166887
gp_evalprec 1925
gp_evalupto 637665
gp_evalvoid 3651473
gp_evalvoid2 2461
hash_from_link 0
localbitprec 35
localprec 7931
loop_break 69422767
lvar_make_safe 0
new_ptr 36690330
new_val_cell 9786
next0 16849
opcode_need_relink 0
pareval 2
pareval_worker 4
parfor 46
parfor0 46
parfor_worker 2876
parforprime 2
parforprime0 2
parforvec 6
parforvec0 6
pari_close_evaluator 201948
pari_init_evaluator 201479
pari_self 35
parsum 0
parvector 4
parvector_worker 173
pop_lex 4318847
pop_localprec 13773
pop_val 9702
pop_val_if_newer 162094
ptr_proplock 8394582
push_lex 4323379
push_localbitprec 35
push_localprec 21704
pushlex 59411484
pushvalue 28
reset_break 32122
restore_trace 30826
restore_vars 151826108
return0 381
safeel 0
safegcoeff 0
safegel 0
safelistel 0
set_lex 15835744
st_alloc 1678860407
trace_push 155744783
zerovalue 14

Generated by: LCOV version 1.11