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:
parent
6413a26b6c
commit
5806c54447
1 changed files with 12 additions and 4 deletions
|
@ -16,13 +16,21 @@ describe "Process.times" do
|
||||||
ruby_version_is "2.5" do
|
ruby_version_is "2.5" do
|
||||||
platform_is_not :windows do
|
platform_is_not :windows do
|
||||||
it "uses getrusage when available to improve precision beyond milliseconds" 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) }
|
max = 10_000
|
||||||
if times.count { |t| !('%.6f' % t).end_with?('000') } == 0
|
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"
|
skip "getrusage is not supported on this environment"
|
||||||
end
|
end
|
||||||
|
|
||||||
times = 1000.times.map { Process.times }
|
found = (max * 10).times.find do
|
||||||
times.count { |t| !('%.6f' % t.utime).end_with?('000') }.should > 0
|
time = Process.times.utime
|
||||||
|
('%.6f' % time).end_with?('000')
|
||||||
|
end
|
||||||
|
|
||||||
|
found.should_not == nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue