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.10.0 lcov report (development 21925-0da0e71) Lines: 1053 1394 75.5 %
Date: 2018-02-21 06:16:18 Functions: 93 110 84.5 %
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
disassemble_cast 0
err_var 0
evalstate_clone 0
gen_relink 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 6
parforprime 6
parforprime0 6
parsum 6
copybin_unlink 8
closure_callgenall 12
gen_unlink 12
pareval_worker 12
parvector 12
zerovalue 14
parforvec 18
parforvec0 18
get_arg_name 21
pushvalue 28
closure_trapgen 35
pari_self 35
closure_context 84
localbitprec 84
push_localbitprec 84
gp_call2 91
parfor 142
parfor0 142
closure_callgenvecprec 147
closure_evalbrk 161
get_next_label 182
evalstate_reset 270
gp_callbool 672
gp_callprec 3423
gp_evalvoid2 4033
parfor_worker 5189
closure_castlong 5467
localprec 7959
closure_err 8364
closure_func_err 8823
pop_val 12245
new_val_cell 12399
gp_call 18879
gp_evalprec 19040
next0 20349
freeep 26119
evalstate_restore_err 34423
evalstate_restore 42871
restore_trace 42871
return0 52750
closure_callgen1prec 56626
parvector_worker 59914
break0 70295
pop_localprec 76604
push_localprec 84563
closure_evalres 88430
closure_callgen2 89173
pari_init_evaluator 90218
pari_close_evaluator 90519
reset_break 96659
gp_evalbool 166999
pop_val_if_newer 174388
closure_callgen1 257791
gp_evalupto 571676
copyvalue 737989
closure_callgenvec 957924
closure_varn 997058
closure_returnupto 1360563
evalstate_save 1360603
gp_evalvoid 3654644
pop_lex 4655181
push_lex 4795478
gp_eval 7665275
change_compo 8545152
ptr_proplock 8545390
copylex 8594033
get_localprec 14179796
get_localbitprec 14196734
copyupto 20211081
checkvalueptr 23111459
closure_evalgen 23635905
changevalue 29054855
closure_evalnobrk 33998293
closure_return 35886503
set_lex 41021725
new_ptr 59465918
pushlex 60361209
get_lex 79386042
closure_castgen 89445854
check_array_index 98767496
checkvalue 111767184
loop_break 126086658
closure_evalvoid 132437906
freelex 147345715
changelex 163185018
closure_eval 225863108
restore_vars 226026350
trace_push 230344938
st_alloc 2354876707

Generated by: LCOV version 1.11