spec/.../ole_method.rb: retry WIN32OLERuntimeError

This part sometimes causes random failure like:
https://ci.appveyor.com/project/ruby/ruby/builds/19382723/job/bedc33p4nolcqkp6

Let me retry this to make CI stable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2018-10-10 11:58:40 +00:00
Родитель 3f113219df
Коммит 1b8534e66b
1 изменённых файлов: 14 добавлений и 1 удалений

Просмотреть файл

@ -5,7 +5,20 @@ platform_is :windows do
describe :win32ole_ole_method, shared: true do
before :each do
@ie = WIN32OLESpecs.new_ole('InternetExplorer.Application')
# This part is unstable, so retrying 3 times.
tries = 0
begin
@ie = WIN32OLESpecs.new_ole('InternetExplorer.Application')
rescue WIN32OLERuntimeError => e
# WIN32OLERuntimeError: failed to create WIN32OLE object from `InternetExplorer.Application'
# HRESULT error code:0x800704a6
# A system shutdown has already been scheduled.
if tries < 3
tries += 1
$stderr.puts "win32ole_ole_method retry (#{tries}): #{e.class}: #{e.message}"
retry
end
end
end
after :each do