try to use System Monitor Control

* test/win32ole/test_win32ole_type_event.rb: try to use System Monitor
  Control to test. ADO is not available in AppVeyor(Mingw only?)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
suke 2018-10-20 02:24:21 +00:00
parent 8f43080f4b
commit c561284bc2

View File

@ -3,51 +3,46 @@ begin
require 'win32ole' require 'win32ole'
rescue LoadError rescue LoadError
end end
require "test/unit"
require 'test/unit'
if defined?(WIN32OLE_TYPE) if defined?(WIN32OLE_TYPE)
def ado_installed? def sysmon_available?
installed = false WIN32OLE_TYPE.new('System Monitor Control', 'SystemMonitor')
if defined?(WIN32OLE) true
begin rescue
WIN32OLE.new('ADODB.Connection') false
installed = true
rescue
end
end
installed
end end
class TestWIN32OLE_TYPE_EVENT < Test::Unit::TestCase class TestWIN32OLE_TYPE_EVENT < Test::Unit::TestCase
unless ado_installed? unless sysmon_available?
def test_dummy_for_skip_message def test_dummy_for_skip_message
skip 'ActiveX Data Object Library not found' skip 'System Monitor Control is not available'
end end
else else
def setup def setup
typelib = WIN32OLE.new('ADODB.Connection').ole_typelib @ole_type = WIN32OLE_TYPE.new('System Monitor Control', 'SystemMonitor')
@ole_type = WIN32OLE_TYPE.new(typelib.name, 'Connection')
end end
def test_implemented_ole_types def test_implemented_ole_types
ole_types = @ole_type.implemented_ole_types.map(&:name).sort ole_types = @ole_type.implemented_ole_types.map(&:name).sort
assert_equal(['ConnectionEvents', '_Connection'], ole_types) assert_equal(['DISystemMonitor', 'DISystemMonitorEvents', 'ISystemMonitor'], ole_types)
end end
def test_default_ole_types def test_default_ole_types
ole_types = @ole_type.default_ole_types.map(&:name).sort ole_types = @ole_type.default_ole_types.map(&:name).sort
assert_equal(['ConnectionEvents', '_Connection'], ole_types) assert_equal(['DISystemMonitor', 'DISystemMonitorEvents'], ole_types)
end end
def test_source_ole_types def test_source_ole_types
ole_types = @ole_type.source_ole_types.map(&:name) ole_types = @ole_type.source_ole_types.map(&:name)
assert_equal(['ConnectionEvents'], ole_types) assert_equal(['DISystemMonitorEvents'], ole_types)
end end
def test_default_event_sources def test_default_event_sources
event_sources = @ole_type.default_event_sources.map(&:name) event_sources = @ole_type.default_event_sources.map(&:name)
assert_equal(['ConnectionEvents'], event_sources) assert_equal(['DISystemMonitorEvents'], event_sources)
end end
end end
end end