Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
Go to the documentation of this file.
18 static int current_mode;
67 if (!
RTEST(coverages)) {
74 else if (current_mode != mode) {
124 branch_coverage(
VALUE branches)
139 method_coverage_i(
void *vstart,
void *vend,
size_t stride,
void *data)
153 for (v = (
VALUE)vstart; v != (
VALUE)vend; v += stride) {
154 void *poisoned = asan_poisoned_object_p(v);
155 asan_unpoison_object(v,
false);
159 VALUE path, first_lineno, first_column, last_lineno, last_column;
160 VALUE data[5], ncoverage, methods;
164 if (me != me2)
continue;
170 first_lineno = data[1];
171 first_column = data[2];
172 last_lineno = data[3];
173 last_column = data[4];
174 if (
FIX2LONG(first_lineno) <= 0)
continue;
176 if (
NIL_P(ncoverage))
continue;
198 asan_poison_object(v);
210 if (current_mode == 0) {
256 rb_coverage_peek_result(
VALUE klass)
260 if (!
RTEST(coverages)) {
295 int stop = 1, clear = 1;
305 ncoverages = rb_coverage_peek_result(klass);
306 if (stop && !clear) {
330 rb_coverage_running(
VALUE klass)
VALUE rb_obj_hide(VALUE obj)
Make the object invisible from Ruby code.
Internal header for Hash.
VALUE rb_ident_hash_new(void)
void rb_warn(const char *fmt,...)
void rb_clear_coverages(void)
ID rb_intern(const char *)
void rb_global_variable(VALUE *var)
An alias for rb_gc_register_address().
VALUE rb_get_coverages(void)
VALUE rb_hash_aref(VALUE hash, VALUE key)
void rb_reset_coverages(void)
VALUE rb_define_module(const char *name)
#define COVERAGE_TARGET_LINES
void rb_set_coverages(VALUE coverages, int mode, VALUE me2counter)
const rb_method_entry_t * rb_resolve_me_location(const rb_method_entry_t *, VALUE[5])
Internal header for Thread.
void rb_raise(VALUE exc, const char *fmt,...)
#define COVERAGE_INDEX_LINES
#define COVERAGE_INDEX_BRANCHES
VALUE rb_hash_lookup(VALUE hash, VALUE key)
#define COVERAGE_TARGET_METHODS
void rb_hash_foreach(VALUE hash, rb_foreach_func *func, VALUE farg)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
#define COVERAGE_TARGET_BRANCHES
int st_foreach(st_table *tab, st_foreach_callback_func *func, st_data_t arg)
Internal header for ASAN / MSAN / etc.
void rb_objspace_each_objects(each_obj_callback *callback, void *data)
void rb_bug(const char *fmt,...)
VALUE rb_convert_type(VALUE, int, const char *, const char *)
Converts an object into another type.
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
#define RARRAY_AREF(a, i)
VALUE rb_ary_freeze(VALUE ary)
#define COVERAGE_TARGET_ONESHOT_LINES
#define rb_ary_new_from_args(...)
VALUE rb_ary_dup(VALUE ary)
#define rb_define_module_function(klass, mid, func, arity)
Defines klass#mid and makes it a module function.
struct rb_method_definition_struct *const def
VALUE rb_hash_freeze(VALUE hash)