summaryrefslogtreecommitdiff
path: root/spec/ruby/core/process/times_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/process/times_spec.rb')
-rw-r--r--spec/ruby/core/process/times_spec.rb32
1 files changed, 12 insertions, 20 deletions
diff --git a/spec/ruby/core/process/times_spec.rb b/spec/ruby/core/process/times_spec.rb
index 01a5595ef9..a7ffbb79e5 100644
--- a/spec/ruby/core/process/times_spec.rb
+++ b/spec/ruby/core/process/times_spec.rb
@@ -1,27 +1,19 @@
-require File.expand_path('../../../spec_helper', __FILE__)
+require_relative '../../spec_helper'
describe "Process.times" do
- it "returns a Struct::Tms" do
- Process.times.should be_kind_of(Struct::Tms)
+ it "returns a Process::Tms" do
+ Process.times.should.is_a?(Process::Tms)
end
- it "returns current cpu times" do
- t = Process.times
+ # TODO: Intel C Compiler does not work this example
+ # http://rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20221013T030005Z.fail.html.gz
+ unless RbConfig::CONFIG['CC']&.include?("icx")
+ it "returns current cpu times" do
+ t = Process.times
+ user = t.utime
- # Do busy work for a wall-clock interval.
- start = Time.now
- 1 until (Time.now - start) > 0.5
-
- # Ensure times is larger. NOTE that there is no
- # guarantee of an upper bound since anything may be
- # happening at the OS level, so we ONLY check that at
- # least an interval has elapsed. Also, we are assuming
- # there is a correlation between wall clock time and
- # process time. In practice, there is an observed
- # discrepancy often 10% or greater. In other words,
- # this is a very fuzzy test.
- t2 = Process.times
- diff = (t2.utime + t2.stime) - (t.utime + t.stime)
- diff.should > 0
+ 1 until Process.times.utime > user
+ Process.times.utime.should > user
+ end
end
end