From 2d85b31bd783c07f56dc77de45c885b460c608f2 Mon Sep 17 00:00:00 2001 From: Aaron Huntsman Date: Thu, 24 Jun 2021 21:59:10 -0400 Subject: [PATCH] reset error filter in multiverse test --- lib/new_relic/agent/error_collector.rb | 12 ++++++++++-- .../suites/sinatra/sinatra_error_tracing_test.rb | 1 - test/new_relic/agent/error_collector_test.rb | 1 - test/new_relic/multiverse_helpers.rb | 6 ++++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/new_relic/agent/error_collector.rb b/lib/new_relic/agent/error_collector.rb index f8842e9cc4..89bf462890 100644 --- a/lib/new_relic/agent/error_collector.rb +++ b/lib/new_relic/agent/error_collector.rb @@ -87,6 +87,14 @@ def expected?(ex, status_code = nil) @error_filter.expected?(ex, status_code) end + def load_error_filters + @error_filter.load_all + end + + def reset_error_filters + @error_filter.reset + end + # Checks the provided error against the error filter, if there # is an error filter def ignored_by_filter_proc?(error) @@ -179,9 +187,9 @@ def increment_expected_error_count!(state, exception) def skip_notice_error?(exception, status_code = nil) disabled? || - error_is_ignored?(exception, status_code) || exception.nil? || - exception_tagged_with?(EXCEPTION_TAG_IVAR, exception) + exception_tagged_with?(EXCEPTION_TAG_IVAR, exception) || + error_is_ignored?(exception, status_code) end # calls a method on an object, if it responds to it - used for diff --git a/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb b/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb index b2bec113a6..c0b814b23a 100644 --- a/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb +++ b/test/multiverse/suites/sinatra/sinatra_error_tracing_test.rb @@ -41,7 +41,6 @@ def test_ignores_notfound_errors_by_default get '/ignored_boom' assert_equal 404, last_response.status assert_match %r{Sinatra doesn(’|’)t know this ditty\.}, last_response.body - errors = harvest_error_traces! assert_equal(0, errors.size) end diff --git a/test/new_relic/agent/error_collector_test.rb b/test/new_relic/agent/error_collector_test.rb index 5ac80f0fe7..e7a76c9bec 100644 --- a/test/new_relic/agent/error_collector_test.rb +++ b/test/new_relic/agent/error_collector_test.rb @@ -318,7 +318,6 @@ def test_skip_notice_error_is_true_if_the_error_collector_is_disabled def test_skip_notice_error_is_true_if_the_error_is_nil error = nil with_config(:'error_collector.enabled' => true) do - @error_collector.expects(:error_is_ignored?).with(error, nil).returns(false) assert @error_collector.skip_notice_error?(error) end end diff --git a/test/new_relic/multiverse_helpers.rb b/test/new_relic/multiverse_helpers.rb index 46187ea382..91a21c5fa2 100644 --- a/test/new_relic/multiverse_helpers.rb +++ b/test/new_relic/multiverse_helpers.rb @@ -55,6 +55,8 @@ def setup_agent(opts = {}, &block) # to clean up before a test too. NewRelic::Agent.drop_buffered_data + NewRelic::Agent.instance.error_collector.load_error_filters + trigger_agent_reconnect(opts) end @@ -69,8 +71,8 @@ def teardown_agent # Clear out lingering stats we didn't transmit NewRelic::Agent.drop_buffered_data - # Clear the error collector's ignore_filter - NewRelic::Agent.instance.error_collector.instance_variable_set(:@ignore_filter, nil) + # Clear the error collector's error filters + NewRelic::Agent.instance.error_collector.reset_error_filters # Clean up any thread-local variables starting with 'newrelic' NewRelic::Agent::Tracer.clear_state