1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Improve reliability of the Process.times spec

This commit is contained in:
Benoit Daloze 2020-03-28 14:39:01 +01:00
parent 6413a26b6c
commit 5806c54447

View file

@ -16,13 +16,21 @@ describe "Process.times" do
ruby_version_is "2.5" do
platform_is_not :windows do
it "uses getrusage when available to improve precision beyond milliseconds" do
times = 1000.times.map { Process.clock_gettime(:GETRUSAGE_BASED_CLOCK_PROCESS_CPUTIME_ID) }
if times.count { |t| !('%.6f' % t).end_with?('000') } == 0
max = 10_000
has_getrusage = max.times.find do
time = Process.clock_gettime(:GETRUSAGE_BASED_CLOCK_PROCESS_CPUTIME_ID)
('%.6f' % time).end_with?('000')
end
unless has_getrusage
skip "getrusage is not supported on this environment"
end
times = 1000.times.map { Process.times }
times.count { |t| !('%.6f' % t.utime).end_with?('000') }.should > 0
found = (max * 10).times.find do
time = Process.times.utime
('%.6f' % time).end_with?('000')
end
found.should_not == nil
end
end
end