From 42f0a8fd6f7e1f4afcb17aeb34e9f8ddf8d66b9b Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 11 Jun 2019 11:09:02 +0900 Subject: [PATCH] MIN_HZ and MIN_MEASURABLE constants * test/lib/test/unit/assertions.rb (Test::Unit::Assertions): promoted MIN_HZ and MIN_MEASURABLE as constants, which should be constant through the process. --- test/lib/test/unit/assertions.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/lib/test/unit/assertions.rb b/test/lib/test/unit/assertions.rb index 9fbf7cbf95..44316579b4 100644 --- a/test/lib/test/unit/assertions.rb +++ b/test/lib/test/unit/assertions.rb @@ -756,6 +756,11 @@ eom skip end + # kernel resolution can limit the minimum time we can measure + # [ruby-core:81540] + MIN_HZ = MiniTest::Unit::TestCase.windows? ? 67 : 100 + MIN_MEASURABLE = 1.0 / MIN_HZ + def assert_cpu_usage_low(msg = nil, pct: 0.05) require 'benchmark' @@ -765,10 +770,7 @@ eom warn "test #{msg || 'assert_cpu_usage_low'} too short to be accurate" end - # kernel resolution can limit the minimum time we can measure - # [ruby-core:81540] - min_hz = windows? ? 67 : 100 - min_measurable = 1.0 / min_hz + min_measurable = MIN_MEASURABLE min_measurable *= 1.30 # add a little (30%) to account for misc. overheads if max < min_measurable max = min_measurable