From 357dedd63a31d95543c53af233e96e368fa629e9 Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 10 Jun 2024 13:09:59 +0200 Subject: [PATCH] raise when starting coverage without root --- ext/datadog_cov/datadog_cov.c | 8 +++++--- spec/ddcov/ddcov_spec.rb | 7 ++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ext/datadog_cov/datadog_cov.c b/ext/datadog_cov/datadog_cov.c index 21065667..0bd1173f 100644 --- a/ext/datadog_cov/datadog_cov.c +++ b/ext/datadog_cov/datadog_cov.c @@ -160,12 +160,14 @@ static VALUE dd_cov_start(VALUE self) struct dd_cov_data *dd_cov_data; TypedData_Get_Struct(self, struct dd_cov_data, &dd_cov_data_type, dd_cov_data); - if (dd_cov_data->root_len != 0) + if (dd_cov_data->root_len == 0) { - // add event hook - rb_thread_add_event_hook(thval, dd_cov_update_coverage, RUBY_EVENT_LINE, self); + rb_raise(rb_eRuntimeError, "root is required"); } + // add event hook + rb_thread_add_event_hook(thval, dd_cov_update_coverage, RUBY_EVENT_LINE, self); + return self; } diff --git a/spec/ddcov/ddcov_spec.rb b/spec/ddcov/ddcov_spec.rb index c1f57fae..d40633f7 100644 --- a/spec/ddcov/ddcov_spec.rb +++ b/spec/ddcov/ddcov_spec.rb @@ -17,13 +17,10 @@ def absolute_path(path) let!(:calculator) { Calculator.new } context "when allocating and starting coverage without a root" do - it "does not fail" do + it "throws Runtime error" do cov = described_class.allocate - cov.start - expect(calculator.add(1, 2)).to eq(3) - coverage = cov.stop - expect(coverage).to eq({}) + expect { cov.start }.to raise_error(RuntimeError, "root is required") end end