win32-eventlog 0.4.9 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,14 @@
1
+ = 0.5.0 - 12-Sep-2008
2
+ * Fixed an issue for Windows Vista and later where some event descriptions
3
+ were missing. This fix requires windows-pr 0.9.3 or later.
4
+ * The EventLog#full? method now raises an EventLog::Error if it should fail
5
+ instead of a StandardError.
6
+ * Minor tweak to mc.rb - chomp the input file name if run as a program.
7
+ * Added test-unit 2.0.0 or later as a dependency.
8
+ * Added ptools as a dependency for the sake of the test suite.
9
+ * Renamed the test files to start with 'test_'.
10
+ * Removed the ts_all.rb file.
11
+
1
12
  = 0.4.9 - 7-Sep-2008
2
13
  * The private get_description method, which is used internally to read the
3
14
  event log, has been updated to work with 64 bit Windows. The changes needed
data/MANIFEST CHANGED
@@ -12,6 +12,5 @@
12
12
  * misc/install_msg.rb
13
13
  * misc/rubymsg.mc
14
14
  * test/foo.mc
15
- * test/ts_all.rb
16
- * test/tc_eventlog.rb
17
- * test/tc_mc.rb
15
+ * test/test_eventlog.rb
16
+ * test/test_mc.rb
data/README CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  = Prerequisites
10
10
  Ruby 1.8.2 or later.
11
- windows-pr 0.5.0 or later.
11
+ windows-pr 0.9.3 or later.
12
12
 
13
13
  The 'mc', 'rc' and 'link' command line tools are required to create and
14
14
  install message sources. You won't need these for simply reading from or
@@ -50,9 +50,7 @@
50
50
  them somewhere on your system.
51
51
 
52
52
  = Known Issues
53
- Not all event descriptions from Windows Vista/2008 or later will necessarily
54
- be picked up because of a new event logging format and api that Microsoft
55
- has introduced. This will be addressed in the next major release.
53
+ None known.
56
54
 
57
55
  Please file any bug reports on the project page at
58
56
  http://www.rubyforge.org/projects/win32utils.
data/Rakefile CHANGED
@@ -17,7 +17,6 @@ task :install_gem do
17
17
  end
18
18
 
19
19
  Rake::TestTask.new do |t|
20
- t.libs << 'lib'
21
20
  t.warning = true
22
- t.test_files = FileList['test/ts*']
21
+ t.verbose = true
23
22
  end
@@ -38,7 +38,7 @@ module Win32
38
38
  extend Windows::Registry
39
39
 
40
40
  # The version of the win32-eventlog library
41
- VERSION = '0.4.9'
41
+ VERSION = '0.5.0'
42
42
 
43
43
  # Aliased read flags
44
44
  FORWARDS_READ = EVENTLOG_FORWARDS_READ
@@ -405,7 +405,7 @@ module Win32
405
405
  needed = [0].pack('L')
406
406
 
407
407
  unless GetEventLogInformation(@handle, 0, buf, buf.size, needed)
408
- raise 'GetEventLogInformation() failed: ' + get_last_error
408
+ raise Error, 'GetEventLogInformation() failed: ' + get_last_error
409
409
  end
410
410
 
411
411
  buf[0,4].unpack('L')[0] != 0
@@ -827,7 +827,7 @@ module Win32
827
827
  # buffer.
828
828
  #
829
829
  def get_description(rec, event_source, lkey)
830
- str = rec[rec[36,4].unpack('L')[0] .. -1]
830
+ str = rec[rec[36,4].unpack('L')[0] .. -1]
831
831
  num = rec[26,2].unpack('S')[0] # NumStrings
832
832
  hkey = [0].pack('L')
833
833
  key = BASE_KEY + "#{@source}\\#{event_source}"
@@ -839,75 +839,199 @@ module Win32
839
839
  old_wow_val = 0.chr * 4
840
840
  Wow64DisableWow64FsRedirection(old_wow_val)
841
841
  end
842
-
842
+
843
+ param_exe = nil
844
+ message_exe = nil
845
+
843
846
  if RegOpenKeyEx(lkey, key, 0, KEY_READ, hkey) == 0
844
- value = 'ParameterMessageFile'
845
- file = 0.chr * MAX_SIZE
846
847
  hkey = hkey.unpack('L')[0]
847
- size = [ file.length].pack('L')
848
-
849
- if RegQueryValueEx(hkey, value, 0, 0, file, size) == 0
850
- file = file.nstrip
851
- exe = 0.chr * MAX_SIZE
848
+
849
+ value = 'providerGuid'
850
+ guid = 0.chr * MAX_SIZE
851
+ size = [ guid.length].pack('L')
852
+
853
+ if RegQueryValueEx(hkey, value, 0, 0, guid, size) == 0
854
+ guid = guid.nstrip
855
+ hkey2 = [0].pack('L')
856
+ key = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\"
857
+ key << "WINEVT\\Publishers\\#{guid}"
858
+
859
+ if RegOpenKeyEx(lkey, key, 0, KEY_READ|0x100, hkey2) == 0
860
+ hkey2 = hkey2.unpack('L')[0]
861
+ value = 'ParameterMessageFile'
862
+ file = 0.chr * MAX_SIZE
863
+ size = [ file.length].pack('L')
864
+
865
+ if RegQueryValueEx(hkey2, value, 0, 0, file, size) == 0
866
+ file = file.nstrip
867
+ exe = 0.chr * MAX_SIZE
868
+ ExpandEnvironmentStrings(file, exe, exe.size)
869
+ param_exe = exe.nstrip
870
+ end
871
+
872
+ value = 'MessageFileName'
873
+ file = 0.chr * MAX_SIZE
874
+ size = [file.length].pack('L')
875
+
876
+ if RegQueryValueEx(hkey2, value, 0, 0, file, size) == 0
877
+ file = file.nstrip
878
+ exe = 0.chr * MAX_SIZE
879
+ ExpandEnvironmentStrings(file, exe, exe.size)
880
+ message_exe = exe.nstrip
881
+ end
882
+
883
+ RegCloseKey(hkey2)
884
+ end
885
+ else
886
+ value = 'ParameterMessageFile'
887
+ file = 0.chr * MAX_SIZE
888
+ size = [ file.length].pack('L')
889
+
890
+ if RegQueryValueEx(hkey, value, 0, 0, file, size) == 0
891
+ file = file.nstrip
892
+ exe = 0.chr * MAX_SIZE
893
+ ExpandEnvironmentStrings(file, exe, exe.size)
894
+ param_exe = exe.nstrip
895
+ end
896
+
897
+ value = 'EventMessageFile'
898
+ file = 0.chr * MAX_SIZE
899
+ size = [file.length].pack('L')
900
+
901
+ if RegQueryValueEx(hkey, value, 0, 0, file, size) == 0
902
+ file = file.nstrip
903
+ exe = 0.chr * MAX_SIZE
904
+ ExpandEnvironmentStrings(file, exe, exe.size)
905
+ message_exe = exe.nstrip
906
+ end
907
+ end
908
+
909
+ RegCloseKey(hkey)
910
+ elsif defined? EvtOpenPublisherMetadata # Vista or later
911
+ pubMetadata = EvtOpenPublisherMetadata(
912
+ 0,
913
+ multi_to_wide(event_source),
914
+ 0,
915
+ 1024, # Default LCID
916
+ 0
917
+ )
918
+
919
+ if pubMetadata > 0
920
+ buf2 = 0.chr * 8192
921
+ val = 0.chr*4
922
+
923
+ EvtGetPublisherMetadataProperty(
924
+ pubMetadata,
925
+ 2, # EvtPublisherMetadataParameterFilePath
926
+ 0,
927
+ 8192,
928
+ buf2,
929
+ val
930
+ )
931
+
932
+ file = wide_to_multi(buf2[16..-1])
933
+ exe = 0.chr * MAX_SIZE
852
934
  ExpandEnvironmentStrings(file, exe, exe.size)
853
- exe = exe.nstrip
935
+ param_exe = exe.nstrip
936
+
937
+ buf2 = 0.chr * 8192
938
+ val = 0.chr*4
854
939
 
855
- va_list = va_list0.map{ |v|
856
- va = v
940
+ EvtGetPublisherMetadataProperty(
941
+ pubMetadata,
942
+ 3, # EvtPublisherMetadataMessageFilePath
943
+ 0,
944
+ 8192,
945
+ buf2,
946
+ val
947
+ )
857
948
 
858
- v.scan(/%%(\d+)/).uniq.each{ |x|
859
- exe.split(';').each{ |file|
860
- hmodule = LoadLibraryEx(
861
- file,
949
+ file = wide_to_multi(buf2[16..-1])
950
+ exe = 0.chr * MAX_SIZE
951
+ ExpandEnvironmentStrings(file, exe, exe.size)
952
+ message_exe = exe.nstrip
953
+ EvtClose(pubMetadata)
954
+ end
955
+ end
956
+
957
+ if param_exe != nil
958
+ va_list = va_list0.map{ |v|
959
+ va = v
960
+
961
+ v.scan(/%%(\d+)/).uniq.each{ |x|
962
+ param_exe.split(';').each{ |file|
963
+ hmodule = LoadLibraryEx(
964
+ file,
965
+ 0,
966
+ DONT_RESOLVE_DLL_REFERENCES |
967
+ LOAD_LIBRARY_AS_DATAFILE
968
+ )
969
+
970
+ if hmodule != 0
971
+ res = FormatMessage(
972
+ FORMAT_MESSAGE_FROM_HMODULE |
973
+ FORMAT_MESSAGE_ARGUMENT_ARRAY,
974
+ hmodule,
975
+ x.first.to_i,
862
976
  0,
863
- DONT_RESOLVE_DLL_REFERENCES |
864
- LOAD_LIBRARY_AS_DATAFILE
977
+ buf,
978
+ buf.size,
979
+ v
865
980
  )
866
-
867
- if hmodule != 0
868
- FormatMessage(
981
+
982
+ if res == 0
983
+ event_id = 0xB0000000 | event_id
984
+ res = FormatMessage(
869
985
  FORMAT_MESSAGE_FROM_HMODULE |
870
- FORMAT_MESSAGE_ARGUMENT_ARRAY,
986
+ FORMAT_MESSAGE_IGNORE_INSERTS,
871
987
  hmodule,
872
- x.first.to_i,
988
+ event_id,
873
989
  0,
874
990
  buf,
875
991
  buf.size,
876
- v
992
+ nil
877
993
  )
878
- FreeLibrary(hmodule)
879
- break if buf.nstrip != ""
880
994
  end
881
- }
882
- va = va.gsub("%%#{x.first}", buf.nstrip)
995
+
996
+ FreeLibrary(hmodule)
997
+ break if buf.nstrip != ""
998
+ end
883
999
  }
884
- va
1000
+ va = va.gsub("%%#{x.first}", buf.nstrip)
885
1001
  }
886
- end
887
-
888
- value = 'EventMessageFile'
889
- file = 0.chr * MAX_SIZE
890
- size = [file.length].pack('L')
891
-
892
- if RegQueryValueEx(hkey, value, 0, 0, file, size) == 0
893
- file = file.nstrip
894
- exe = 0.chr * MAX_SIZE
895
-
896
- ExpandEnvironmentStrings(file, exe, exe.size)
897
- exe = exe.nstrip
898
-
899
- # Try to retrieve message *without* expanding the inserts yet
900
- exe.split(';').each{ |file|
901
- hmodule = LoadLibraryEx(
902
- file,
1002
+ va
1003
+ }
1004
+ end
1005
+
1006
+ if message_exe != nil
1007
+ buf = 0.chr * 8192 # Reset the buffer
1008
+
1009
+ # Try to retrieve message *without* expanding the inserts yet
1010
+ message_exe.split(';').each{ |file|
1011
+ hmodule = LoadLibraryEx(
1012
+ file,
1013
+ 0,
1014
+ DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE
1015
+ )
1016
+
1017
+ event_id = rec[20,4].unpack('L')[0]
1018
+
1019
+ if hmodule != 0
1020
+ res = FormatMessage(
1021
+ FORMAT_MESSAGE_FROM_HMODULE |
1022
+ FORMAT_MESSAGE_IGNORE_INSERTS,
1023
+ hmodule,
1024
+ event_id,
903
1025
  0,
904
- DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE
1026
+ buf,
1027
+ buf.size,
1028
+ nil
905
1029
  )
906
-
907
- event_id = rec[20,4].unpack('L')[0]
908
-
909
- if hmodule != 0
910
- FormatMessage(
1030
+
1031
+ if res == 0
1032
+ event_id = 0xB0000000 | event_id
1033
+
1034
+ res = FormatMessage(
911
1035
  FORMAT_MESSAGE_FROM_HMODULE |
912
1036
  FORMAT_MESSAGE_IGNORE_INSERTS,
913
1037
  hmodule,
@@ -917,39 +1041,52 @@ module Win32
917
1041
  buf.size,
918
1042
  nil
919
1043
  )
920
-
921
- FreeLibrary(hmodule)
922
- break if buf.nstrip != "" # All messages read
923
1044
  end
924
- }
925
1045
 
926
- buf = 0.chr * 8192 # Reset the buffer
927
-
928
- # Determine higest %n insert number
929
- max_insert = [num, buf.nstrip.scan(/%(\d+)/).map{ |x| x[0].to_i }.max].compact.max
930
-
931
- # Insert dummy strings not provided by caller
932
- ((num+1)..(max_insert)).each{ |x| va_list.push("%#{x}") }
933
-
934
- if num == 0
935
- va_list_ptr = 0.chr * 4
936
- else
937
- va_list_ptr = va_list.map{ |x|
938
- [x + 0.chr].pack('P').unpack('L')[0]
939
- }.pack('L*')
1046
+ FreeLibrary(hmodule)
1047
+ break if buf.nstrip != "" # All messages read
940
1048
  end
941
-
942
- exe.split(';').each{ |file|
943
- hmodule = LoadLibraryEx(
944
- file,
1049
+ }
1050
+
1051
+ # Determine higest %n insert number
1052
+ max_insert = [num, buf.nstrip.scan(/%(\d+)/).map{ |x| x[0].to_i }.max].compact.max
1053
+
1054
+ # Insert dummy strings not provided by caller
1055
+ ((num+1)..(max_insert)).each{ |x| va_list.push("%#{x}") }
1056
+
1057
+ if num == 0
1058
+ va_list_ptr = 0.chr * 4
1059
+ else
1060
+ va_list_ptr = va_list.map{ |x|
1061
+ [x + 0.chr].pack('P').unpack('L')[0]
1062
+ }.pack('L*')
1063
+ end
1064
+
1065
+ message_exe.split(';').each{ |file|
1066
+ hmodule = LoadLibraryEx(
1067
+ file,
1068
+ 0,
1069
+ DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE
1070
+ )
1071
+
1072
+ event_id = rec[20,4].unpack('L')[0]
1073
+
1074
+ if hmodule != 0
1075
+ res = FormatMessage(
1076
+ FORMAT_MESSAGE_FROM_HMODULE |
1077
+ FORMAT_MESSAGE_ARGUMENT_ARRAY,
1078
+ hmodule,
1079
+ event_id,
945
1080
  0,
946
- DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE
1081
+ buf,
1082
+ buf.size,
1083
+ va_list_ptr
947
1084
  )
948
-
949
- event_id = rec[20,4].unpack('L')[0]
950
1085
 
951
- if hmodule != 0
952
- FormatMessage(
1086
+ if res == 0
1087
+ event_id = 0xB0000000 | event_id
1088
+
1089
+ res = FormatMessage(
953
1090
  FORMAT_MESSAGE_FROM_HMODULE |
954
1091
  FORMAT_MESSAGE_ARGUMENT_ARRAY,
955
1092
  hmodule,
@@ -959,21 +1096,20 @@ module Win32
959
1096
  buf.size,
960
1097
  va_list_ptr
961
1098
  )
962
-
963
- FreeLibrary(hmodule)
964
- break if buf.nstrip != "" # All messages read
965
1099
  end
966
- }
967
- end
968
- RegCloseKey(hkey)
969
- end
970
- ensure
971
- if defined? Wow64RevertWow64FsRedirection
972
- Wow64RevertWow64FsRedirection(old_wow_val.unpack('L')[0])
1100
+
1101
+ FreeLibrary(hmodule)
1102
+ break if buf.nstrip != "" # All messages read
1103
+ end
1104
+ }
973
1105
  end
974
- end
1106
+ ensure
1107
+ if defined? Wow64RevertWow64FsRedirection
1108
+ Wow64RevertWow64FsRedirection(old_wow_val.unpack('L')[0])
1109
+ end
1110
+ end
975
1111
 
976
- [va_list0, buf.strip]
977
- end
1112
+ [va_list0, buf.nstrip]
1113
+ end
978
1114
  end
979
- end
1115
+ end
data/lib/win32/mc.rb CHANGED
@@ -2,7 +2,7 @@ module Win32
2
2
  class MC
3
3
  class Error < StandardError; end;
4
4
 
5
- VERSION = '0.1.3'
5
+ VERSION = '0.1.4'
6
6
 
7
7
  attr_accessor :mc_file, :res_file, :dll_file
8
8
 
@@ -97,7 +97,7 @@ if $0 == __FILE__
97
97
  raise MC::Error, msg
98
98
  end
99
99
 
100
- m = MC.new(mc_file)
100
+ m = MC.new(mc_file.chomp)
101
101
  m.create_header
102
102
  m.create_res_file
103
103
  m.create_dll_file
@@ -1,10 +1,12 @@
1
1
  ##############################################################################
2
- # tc_eventlog.rb
2
+ # test_eventlog.rb
3
3
  #
4
4
  # Test case for the win32-eventlog package. You should run this test case
5
5
  # via the 'rake test' Rakefile task. This test will take a minute or two
6
6
  # to complete.
7
7
  #############################################################################
8
+ require 'rubygems'
9
+ gem 'test-unit'
8
10
  require 'test/unit'
9
11
  require 'win32/eventlog'
10
12
  require 'socket'
@@ -23,7 +25,7 @@ class TC_EventLog < Test::Unit::TestCase
23
25
  end
24
26
 
25
27
  def test_version
26
- assert_equal('0.4.8', EventLog::VERSION)
28
+ assert_equal('0.5.0', EventLog::VERSION)
27
29
  end
28
30
 
29
31
  # Use the alias to validate it as well.
data/test/test_mc.rb ADDED
@@ -0,0 +1,67 @@
1
+ ############################################################################
2
+ # test_mc.rb
3
+ #
4
+ # Test suite for the win32-mc library. The tests need to run in a specific
5
+ # order, hence the numerics added to the method names.
6
+ #
7
+ # This test case should be run via the 'rake test' Rakefile task.
8
+ ############################################################################
9
+ require 'rubygems'
10
+ gem 'test-unit'
11
+ require 'test/unit'
12
+ require 'win32/mc'
13
+ require 'ptools'
14
+ include Win32
15
+
16
+ class TC_Win32_MC < Test::Unit::TestCase
17
+ class << self
18
+ def startup
19
+ Dir.chdir('test') unless File.basename(Dir.pwd) == 'test'
20
+ @@mc_cmd = File.which('mc')
21
+ @@rc_cmd = File.which('rc')
22
+ @@link_cmd = File.which('link')
23
+ end
24
+
25
+ def shutdown
26
+ @@mc_cmd = nil
27
+ @@rc_cmd = nil
28
+ @@link_cmd = nil
29
+ end
30
+ end
31
+
32
+ def setup
33
+ @mc = MC.new('foo.mc')
34
+ end
35
+
36
+ def test_01_version
37
+ assert_equal('0.1.4', MC::VERSION)
38
+ end
39
+
40
+ def test_02_create_header
41
+ omit_if(@@mc_cmd.nil?, "'mc' command not found - skipping")
42
+ assert_respond_to(@mc, :create_header)
43
+ assert_equal(true, @mc.create_header)
44
+ end
45
+
46
+ def test_03_create_res_file
47
+ omit_if(@@rc_cmd.nil?, "'rc' command not found - skipping")
48
+ assert_respond_to(@mc, :create_res_file)
49
+ assert_equal(true, @mc.create_res_file)
50
+ end
51
+
52
+ def test_04_create_dll_file
53
+ omit_if(@@link_cmd.nil?, "'link' command not found - skipping")
54
+ assert_respond_to(@mc, :create_dll_file)
55
+ assert_equal(true, @mc.create_dll_file)
56
+ end
57
+
58
+ def test_05_clean
59
+ assert_respond_to(@mc, :clean)
60
+ assert_nothing_raised{ @mc.clean }
61
+ end
62
+
63
+ def teardown
64
+ @mc = nil
65
+ File.delete('foo.dll') rescue nil
66
+ end
67
+ end
File without changes
@@ -2,20 +2,23 @@ require "rubygems"
2
2
 
3
3
  spec = Gem::Specification.new do |gem|
4
4
  gem.name = "win32-eventlog"
5
- gem.version = "0.4.9"
6
- gem.author = "Daniel J. Berger"
5
+ gem.version = "0.5.0"
6
+ gem.authors = ["Daniel J. Berger", "Park Heesob"]
7
7
  gem.email = "djberg96@gmail.com"
8
8
  gem.homepage = "http://www.rubyforge.org/projects/win32utils"
9
9
  gem.platform = Gem::Platform::RUBY
10
10
  gem.summary = "Interface for the MS Windows Event Log."
11
11
  gem.description = "Interface for the MS Windows Event Log."
12
- gem.test_file = "test/ts_all.rb"
12
+ gem.test_files = Dir["test/*.rb"]
13
13
  gem.has_rdoc = true
14
+ gem.rubyforge_project = 'win32utils'
14
15
  gem.files = Dir["lib/win32/*.rb"] + Dir["test/*"] + Dir["[A-Z]*"]
15
16
  gem.files.reject! { |fn| fn.include? "CVS" }
16
17
  gem.require_path = "lib"
17
18
  gem.extra_rdoc_files = ["README", "CHANGES", "MANIFEST", "doc/tutorial.txt"]
18
- gem.add_dependency("windows-pr", ">= 0.5.0")
19
+ gem.add_dependency("windows-pr", ">= 0.9.3")
20
+ gem.add_dependency("ptools", ">= 1.1.6")
21
+ gem.add_dependency("test-unit", ">= 2.0.0")
19
22
  end
20
23
 
21
24
  if $0 == __FILE__
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: win32-eventlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
8
+ - Park Heesob
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2008-09-07 00:00:00 -06:00
13
+ date: 2008-09-12 00:00:00 -06:00
13
14
  default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
@@ -20,7 +21,27 @@ dependencies:
20
21
  requirements:
21
22
  - - ">="
22
23
  - !ruby/object:Gem::Version
23
- version: 0.5.0
24
+ version: 0.9.3
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: ptools
28
+ type: :runtime
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.1.6
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: test-unit
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 2.0.0
24
45
  version:
25
46
  description: Interface for the MS Windows Event Log.
26
47
  email: djberg96@gmail.com
@@ -37,9 +58,8 @@ files:
37
58
  - lib/win32/eventlog.rb
38
59
  - lib/win32/mc.rb
39
60
  - test/foo.mc
40
- - test/tc_eventlog.rb
41
- - test/tc_mc.rb
42
- - test/ts_all.rb
61
+ - test/test_eventlog.rb
62
+ - test/test_mc.rb
43
63
  - CHANGES
44
64
  - doc
45
65
  - examples
@@ -49,6 +69,7 @@ files:
49
69
  - Rakefile
50
70
  - README
51
71
  - test
72
+ - win32-eventlog-0.5.0.gem
52
73
  - win32-eventlog.gemspec
53
74
  - doc/tutorial.txt
54
75
  has_rdoc: true
@@ -72,10 +93,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
93
  version:
73
94
  requirements: []
74
95
 
75
- rubyforge_project:
96
+ rubyforge_project: win32utils
76
97
  rubygems_version: 1.2.0
77
98
  signing_key:
78
99
  specification_version: 2
79
100
  summary: Interface for the MS Windows Event Log.
80
101
  test_files:
81
- - test/ts_all.rb
102
+ - test/test_eventlog.rb
103
+ - test/test_mc.rb
data/test/tc_mc.rb DELETED
@@ -1,47 +0,0 @@
1
- ############################################################################
2
- # tc_mc.rb
3
- #
4
- # Test suite for the win32-mc package. The tests need to run in a specific
5
- # order, hence the numerics added to the method names.
6
- #
7
- # This test case should be run via the 'rake test' Rakefile task.
8
- ############################################################################
9
- require 'test/unit'
10
- require 'win32/mc'
11
- include Win32
12
-
13
- class TC_Win32_MC < Test::Unit::TestCase
14
- def setup
15
- Dir.chdir('test') unless File.basename(Dir.pwd) == 'test'
16
- @mc = MC.new('foo.mc')
17
- end
18
-
19
- def test_01_version
20
- assert_equal('0.1.3', MC::VERSION)
21
- end
22
-
23
- def test_02_create_header
24
- assert_respond_to(@mc, :create_header)
25
- assert_nothing_raised{ @mc.create_header }
26
- end
27
-
28
- def test_03_create_res_file
29
- assert_respond_to(@mc, :create_res_file)
30
- assert_nothing_raised{ @mc.create_res_file }
31
- end
32
-
33
- def test_04_create_dll_file
34
- assert_respond_to(@mc, :create_dll_file)
35
- assert_nothing_raised{ @mc.create_dll_file }
36
- end
37
-
38
- def test_05_clean
39
- assert_respond_to(@mc, :clean)
40
- assert_nothing_raised{ @mc.clean }
41
- end
42
-
43
- def teardown
44
- @mc = nil
45
- File.delete('foo.dll') rescue nil
46
- end
47
- end
data/test/ts_all.rb DELETED
@@ -1,5 +0,0 @@
1
- $LOAD_PATH.unshift(Dir.pwd)
2
- $LOAD_PATH.unshift(File.join(Dir.pwd, 'test'))
3
-
4
- require 'tc_eventlog'
5
- require 'tc_mc'