[前][次][番号順一覧][スレッド一覧]

ruby-changes:55588

From: Benoit <ko1@a...>
Date: Sun, 28 Apr 2019 21:55:49 +0900 (JST)
Subject: [ruby-changes:55588] Benoit Daloze:9a0dbb3414 (trunk): Skip problematic Process.clock_getres specs on ARM

https://git.ruby-lang.org/ruby.git/commit/?id=9a0dbb3414

From 9a0dbb341442fc0d203a5cd6fb46250e429e9188 Mon Sep 17 00:00:00 2001
From: Benoit Daloze <eregontp@g...>
Date: Sun, 28 Apr 2019 14:52:55 +0200
Subject: Skip problematic Process.clock_getres specs on ARM

* https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-trunk/log/20190428T051708Z.fail.html.gz
* https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-ad7f67/ruby-trunk/log/20190428T045405Z.fail.html.gz

diff --git a/spec/ruby/core/process/clock_getres_spec.rb b/spec/ruby/core/process/clock_getres_spec.rb
index 5e5eb02..3ebd012 100644
--- a/spec/ruby/core/process/clock_getres_spec.rb
+++ b/spec/ruby/core/process/clock_getres_spec.rb
@@ -3,7 +3,7 @@ require_relative 'fixtures/clocks' https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/process/clock_getres_spec.rb#L3
 
 describe "Process.clock_getres" do
   platform_is_not :freebsd do # clock_getres() seems incorrect on FreeBSD
-    ProcessSpecs.clock_constants.each do |name, value|
+    ProcessSpecs.clock_constants_for_resolution_checks.each do |name, value|
       it "matches the clock in practice for Process::#{name}" do
         times = []
         10_000.times do
diff --git a/spec/ruby/core/process/fixtures/clocks.rb b/spec/ruby/core/process/fixtures/clocks.rb
index 5d6edeb..c8f81fa 100644
--- a/spec/ruby/core/process/fixtures/clocks.rb
+++ b/spec/ruby/core/process/fixtures/clocks.rb
@@ -9,14 +9,28 @@ module ProcessSpecs https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/process/fixtures/clocks.rb#L9
       # Process#clock_gettime. They return EINVAL if the permission
       # is not granted.
       clocks -= [:CLOCK_BOOTTIME_ALARM, :CLOCK_REALTIME_ALARM]
-
-      # These clocks in practice on Linux do not seem to match
-      # their reported resolution.
-      clocks -= [:CLOCK_REALTIME_COARSE, :CLOCK_MONOTONIC_COARSE]
     end
 
     clocks.map { |c|
       [c, Process.const_get(c)]
     }
   end
+
+  def self.clock_constants_for_resolution_checks
+    clocks = clock_constants
+
+    # These clocks in practice on Linux do not seem to match their reported resolution.
+    clocks = clocks.reject { |clock, value|
+      [:CLOCK_REALTIME_COARSE, :CLOCK_MONOTONIC_COARSE].include?(clock)
+    }
+
+    # These clocks in practice on ARM on Linux do not seem to match their reported resolution.
+    platform_is :armv7l, :aarch64 do
+      clocks = clocks.reject { |clock, value|
+        [:CLOCK_PROCESS_CPUTIME_ID, :CLOCK_THREAD_CPUTIME_ID, :CLOCK_MONOTONIC_RAW].include?(clock)
+      }
+    end
+
+    clocks
+  end
 end
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]