зеркало из https://github.com/github/ruby.git
Add spec for `Coverage.supported?` and `start(eval: true)`. (#6499)
* Don't emit coverage for eval when eval coverage is disabled.
This commit is contained in:
Родитель
1e6cdc76e4
Коммит
24f3e397e9
|
@ -106,15 +106,35 @@ describe 'Coverage.result' do
|
|||
end
|
||||
|
||||
ruby_version_is '3.2' do
|
||||
it 'returns the correct results when eval is used' do
|
||||
Coverage.start
|
||||
it 'indicates support for different features' do
|
||||
Coverage.supported?(:lines).should == true
|
||||
end
|
||||
|
||||
it 'returns the correct results when eval coverage is enabled' do
|
||||
Coverage.supported?(:eval).should == true
|
||||
|
||||
Coverage.start(lines: true, eval: true)
|
||||
require @eval_code_file.chomp('.rb')
|
||||
result = Coverage.result
|
||||
|
||||
result.should == {
|
||||
@eval_code_file => [
|
||||
1, nil, 1, nil, 1, 1, nil, nil, nil, nil, 1
|
||||
]
|
||||
@eval_code_file => {
|
||||
lines: [1, nil, 1, nil, 1, 1, nil, nil, nil, nil, 1]
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
it 'returns the correct results when eval coverage is enabled' do
|
||||
Coverage.supported?(:eval).should == true
|
||||
|
||||
Coverage.start(lines: true, eval: false)
|
||||
require @eval_code_file.chomp('.rb')
|
||||
result = Coverage.result
|
||||
|
||||
result.should == {
|
||||
@eval_code_file => {
|
||||
lines: [1, nil, 1, nil, 1, nil, nil, nil, nil, nil, 1]
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
**********************************************************************/
|
||||
|
||||
#include "internal/thread.h"
|
||||
struct local_var_list {
|
||||
VALUE tbl;
|
||||
};
|
||||
|
@ -1672,7 +1673,9 @@ eval_make_iseq(VALUE src, VALUE fname, int line, const rb_binding_t *bind,
|
|||
rb_iseq_t *iseq = NULL;
|
||||
rb_ast_t *ast;
|
||||
int isolated_depth = 0;
|
||||
int coverage_enabled = Qtrue;
|
||||
|
||||
// Conditionally enable coverage depending on the current mode:
|
||||
VALUE coverage_enabled = RBOOL(rb_get_coverage_mode() & COVERAGE_TARGET_EVAL);
|
||||
|
||||
{
|
||||
int depth = 1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче