win32-eventlog 0.4.9 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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'