mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Update to ruby/spec@4eec3dc
This commit is contained in:
parent
ab8345271e
commit
1243255c3a
174 changed files with 1780 additions and 426 deletions
|
@ -7,21 +7,19 @@ describe "Process.times" do
|
|||
|
||||
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
|
||||
1 until Process.times.utime > user
|
||||
Process.times.utime.should > user
|
||||
end
|
||||
|
||||
# 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
|
||||
ruby_version_is "2.5" do
|
||||
platform_is_not :windows do
|
||||
it "uses getrusage when available to improve precision beyond milliseconds" do
|
||||
times = 100.times.map { Process.times }
|
||||
times.count { |t| ((t.utime * 1e6).to_i % 1000) > 0 }.should > 0
|
||||
times.count { |t| ((t.stime * 1e6).to_i % 1000) > 0 }.should > 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue