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 - language - eval.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23008-54b2e2f01) Lines: 1026 1391 73.8 %
Date: 2018-09-20 05:37:46 Functions: 91 110 82.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
bincopy_relink 0
closure_callvoid1 0
closure_disassemble 0
closure_relink 0
closure_unlink 0
copybin_unlink 0
disassemble_cast 0
err_var 0
evalstate_clone 0
gen_relink 0
gen_unlink 0
gp_callvoid 0
hash_from_link 0
lvar_make_safe 0
opcode_need_relink 0
safeel 0
safegcoeff 0
safegel 0
safelistel 0
pareval 2
parforprime 2
parforprime0 2
parsum 2
closure_callgenall 4
pareval_worker 4
parvector 4
parforvec 6
parforvec0 6
zerovalue 14
get_arg_name 21
pushvalue 28
closure_trapgen 35
pari_self 35
parfor 45
parfor0 45
closure_context 84
gp_call2 91
closure_callgenvecprec 147
closure_evalbrk 161
get_next_label 182
evalstate_reset 284
gp_callbool 672
localbitprec 2401
push_localbitprec 2401
gp_evalvoid2 2524
parfor_worker 3015
gp_callprec 3423
closure_castlong 5467
localprec 7959
closure_err 8798
closure_func_err 9292
pop_val 12947
new_val_cell 13143
gp_evalprec 19040
gp_call 19145
parvector_worker 20142
next0 20349
freeep 26998
evalstate_restore_err 34418
evalstate_restore 43307
restore_trace 43307
return0 53191
closure_callgen1prec 56626
break0 70319
pop_localprec 76821
push_localprec 84780
closure_callgen2 89929
closure_evalres 94818
reset_break 97548
pari_close_evaluator 111580
pari_init_evaluator 113697
gp_evalbool 167426
pop_val_if_newer 195325
closure_callgen1 212430
gp_evalupto 577304
copyvalue 737989
closure_callgenvec 926599
closure_varn 1130282
closure_returnupto 1285312
evalstate_save 1368125
gp_evalvoid 3654644
pop_lex 5364777
push_lex 5503589
gp_eval 7689712
change_compo 9693712
copylex 9743069
ptr_proplock 9898707
get_localprec 14262111
get_localbitprec 14279618
copyupto 20530728
checkvalueptr 23111536
closure_evalgen 23657438
changevalue 29064549
closure_evalnobrk 34274140
closure_return 35891886
set_lex 41455656
get_lex 45613860
pushlex 60513592
new_ptr 60615888
closure_castgen 90981237
loop_break 92327833
closure_evalvoid 98620419
check_array_index 103029405
checkvalue 112146622
freelex 148373663
changelex 163506291
closure_eval 192456150
restore_vars 192579461
trace_push 197637766
st_alloc 2320646213

Generated by: LCOV version 1.13