From 30dfdd03743e78e76a882dfdbbb8f3bbf4faf7ee Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Fri, 3 Nov 2023 10:16:16 +0100 Subject: [PATCH] fix multithreading regression in Minitest, keep Thread.local before context is introduced --- lib/datadog/ci/contrib/minitest/hooks.rb | 7 ++++--- sig/datadog/ci/contrib/minitest/hooks.rbs | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/datadog/ci/contrib/minitest/hooks.rb b/lib/datadog/ci/contrib/minitest/hooks.rb index b02bf668..0ec5be15 100644 --- a/lib/datadog/ci/contrib/minitest/hooks.rb +++ b/lib/datadog/ci/contrib/minitest/hooks.rb @@ -31,13 +31,15 @@ def before_setup operation_name: configuration[:operation_name] ) - @current_test_span = test_span + Thread.current[:_datadog_test_span] = test_span end def after_teardown - test_span = @current_test_span + test_span = Thread.current[:_datadog_test_span] return super unless test_span + Thread.current[:_datadog_test_span] = nil + case result_code when "." test_span.passed! @@ -48,7 +50,6 @@ def after_teardown end test_span.finish - @current_test_span = nil super end diff --git a/sig/datadog/ci/contrib/minitest/hooks.rbs b/sig/datadog/ci/contrib/minitest/hooks.rbs index 9dcebcb0..94e1fe62 100644 --- a/sig/datadog/ci/contrib/minitest/hooks.rbs +++ b/sig/datadog/ci/contrib/minitest/hooks.rbs @@ -5,8 +5,6 @@ module Datadog module Hooks : ::Minitest::Test include ::Minitest::Test::LifecycleHooks - @current_test_span: Datadog::CI::Span? - def before_setup: () -> (nil | untyped) def after_teardown: () -> untyped