summaryrefslogtreecommitdiff
path: root/test/-ext-
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2022-06-20 13:03:39 +0200
committerJean Boussier <jean.boussier@gmail.com>2022-06-20 13:03:39 +0200
commitc46824d0945c95172951a904f09c774b99a4deb3 (patch)
tree55be03c23aa72d5776da47fc67fef669985729f0 /test/-ext-
parent4a6facc2d683d1dbb67ded8a9f4d7cd10a9fd8ad (diff)
test_instrumentation_api.rb: Allow one less exit
I suspect that sometimes on CI the last thread is prempted before eaching the exit hook causing the test to flake. I can't find a good way to force it to run.
Diffstat (limited to 'test/-ext-')
-rw-r--r--test/-ext-/thread/test_instrumentation_api.rb12
1 files changed, 5 insertions, 7 deletions
diff --git a/test/-ext-/thread/test_instrumentation_api.rb b/test/-ext-/thread/test_instrumentation_api.rb
index 61e219101c..fe91c942c7 100644
--- a/test/-ext-/thread/test_instrumentation_api.rb
+++ b/test/-ext-/thread/test_instrumentation_api.rb
@@ -8,8 +8,6 @@ class TestThreadInstrumentation < Test::Unit::TestCase
THREADS_COUNT = 3
- Give_more_time_to_the_native_threads_to_execute_their_EXIT_hook = EnvUtil.apply_timeout_scale(0.01)
-
def test_thread_instrumentation
require '-test-/thread/instrumentation'
Bug::ThreadInstrumentation.reset_counters
@@ -20,11 +18,11 @@ class TestThreadInstrumentation < Test::Unit::TestCase
assert_equal [false] * THREADS_COUNT, threads.map(&:status)
counters = Bug::ThreadInstrumentation.counters
counters.each do |c|
- assert_predicate c,:nonzero?, "Call counters: #{counters.inspect}"
+ assert_predicate c, :nonzero?, "Call counters: #{counters.inspect}"
end
- sleep(Give_more_time_to_the_native_threads_to_execute_their_EXIT_hook)
- assert_equal counters.first, counters.last # exited as many times as we entered
+ assert_equal THREADS_COUNT, counters.first
+ assert_in_delta THREADS_COUNT, counters.last, 1 # It's possible that a thread didn't execute its EXIT hook yet.
ensure
Bug::ThreadInstrumentation::unregister_callback
end
@@ -43,7 +41,6 @@ class TestThreadInstrumentation < Test::Unit::TestCase
Bug::ThreadInstrumentation.reset_counters
threads = threaded_cpu_work
write_pipe.write(Marshal.dump(threads.map(&:status)))
- sleep(Give_more_time_to_the_native_threads_to_execute_their_EXIT_hook)
write_pipe.write(Marshal.dump(Bug::ThreadInstrumentation.counters))
write_pipe.close
exit!(0)
@@ -61,7 +58,8 @@ class TestThreadInstrumentation < Test::Unit::TestCase
assert_predicate c, :nonzero?, "Call counters: #{counters.inspect}"
end
- assert_equal counters.first, counters.last # exited as many times as we entered
+ assert_equal THREADS_COUNT, counters.first
+ assert_in_delta THREADS_COUNT, counters.last, 1 # It's possible that a thread didn't execute its EXIT hook yet.
ensure
Bug::ThreadInstrumentation::unregister_callback
end