1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
This commit is contained in:
Benoit Daloze 2019-11-30 21:26:52 +01:00
parent ab8345271e
commit 1243255c3a
174 changed files with 1780 additions and 426 deletions

View file

@ -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