win32-service 0.5.2 → 0.6.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.
@@ -0,0 +1,83 @@
1
+ ########################################################################
2
+ # tc_service_create.rb
3
+ #
4
+ # Test case for the Service.create method. This test case will create
5
+ # a dummy (notepad) service. It won't actually run of course.
6
+ ########################################################################
7
+ require 'win32/service'
8
+ require 'test/unit'
9
+
10
+ class TC_Service_Create < Test::Unit::TestCase
11
+ def setup
12
+ @notepad = "C:\\windows\\system32\\notepad.exe"
13
+ @service = 'notepad'
14
+ @info = nil
15
+ end
16
+
17
+ def test_create_basic
18
+ assert_respond_to(Win32::Service, :new)
19
+ assert_respond_to(Win32::Service, :create)
20
+ end
21
+
22
+ def test_create_with_minimal_options
23
+ assert_nothing_raised{
24
+ Win32::Service.new(@service, nil, :binary_path_name => @notepad)
25
+ }
26
+
27
+ assert_equal(true, Win32::Service.exists?(@service))
28
+ assert_nothing_raised{ @info = Win32::Service.config_info(@service) }
29
+
30
+ assert_equal('own process, interactive', @info.service_type)
31
+ assert_equal('demand start', @info.start_type)
32
+ assert_equal('normal', @info.error_control)
33
+ assert_equal(@notepad, @info.binary_path_name)
34
+ assert_equal('', @info.load_order_group)
35
+ assert_equal(0, @info.tag_id)
36
+ assert_equal([], @info.dependencies)
37
+ assert_equal('LocalSystem', @info.service_start_name)
38
+ assert_equal('notepad', @info.display_name)
39
+ end
40
+
41
+ def test_create_with_most_options
42
+ assert_nothing_raised{
43
+ Win32::Service.new(@service, nil,
44
+ :display_name => 'Notepad Test',
45
+ :desired_access => Win32::Service::ALL_ACCESS,
46
+ :service_type => Win32::Service::WIN32_OWN_PROCESS,
47
+ :start_type => Win32::Service::DISABLED,
48
+ :error_control => Win32::Service::ERROR_IGNORE,
49
+ :binary_path_name => @notepad,
50
+ :load_order_group => 'Network',
51
+ :dependencies => 'W32Time',
52
+ :description => 'Test service. Please delete me'
53
+ )
54
+ }
55
+ assert_equal(true, Win32::Service.exists?(@service))
56
+ assert_nothing_raised{ @info = Win32::Service.config_info(@service) }
57
+
58
+ assert_equal('own process', @info.service_type)
59
+ assert_equal('disabled', @info.start_type)
60
+ assert_equal('ignore', @info.error_control)
61
+ assert_equal(@notepad, @info.binary_path_name)
62
+ assert_equal('Network', @info.load_order_group)
63
+ assert_equal(0, @info.tag_id)
64
+ assert_equal(['W32Time'], @info.dependencies)
65
+ assert_equal('LocalSystem', @info.service_start_name)
66
+ assert_equal('Notepad Test', @info.display_name)
67
+ end
68
+
69
+ def test_create_expected_errors
70
+ assert_raise(ArgumentError){ Win32::Service.new }
71
+ assert_raise(ArgumentError){ Win32::Service.new(@service) }
72
+ assert_raise(ArgumentError){ Win32::Service.new(@service, 'bogus') }
73
+ end
74
+
75
+ def teardown
76
+ Win32::Service.delete(@service) if Win32::Service.exists?(@service)
77
+ sleep 1 while Win32::Service.exists?(@service)
78
+
79
+ @notepad = nil
80
+ @service = nil
81
+ @status = nil
82
+ end
83
+ end
@@ -0,0 +1,170 @@
1
+ ########################################################################
2
+ # tc_service_info.rb
3
+ #
4
+ # Test case for the Struct::ServiceInfo structure.
5
+ ########################################################################
6
+ require 'win32/service'
7
+ require 'test/unit'
8
+
9
+ class TC_Struct_ServiceInfo < Test::Unit::TestCase
10
+ def setup
11
+ @services = Win32::Service.services
12
+ @service_info = @services[0]
13
+
14
+ @error_controls = [
15
+ 'critical',
16
+ 'ignore',
17
+ 'normal',
18
+ 'severe',
19
+ nil
20
+ ]
21
+
22
+ @start_types = [
23
+ 'auto start',
24
+ 'boot start',
25
+ 'demand start',
26
+ 'disabled',
27
+ 'system start',
28
+ nil
29
+ ]
30
+
31
+ @types = [
32
+ 'file system driver',
33
+ 'kernel driver',
34
+ 'own process',
35
+ 'share process',
36
+ 'recognizer token',
37
+ 'driver',
38
+ 'win32',
39
+ 'all',
40
+ 'own process, interactive',
41
+ 'share process, interactive',
42
+ nil
43
+ ]
44
+
45
+ @states = [
46
+ 'continue pending',
47
+ 'pause pending',
48
+ 'paused',
49
+ 'running',
50
+ 'start pending',
51
+ 'stop pending',
52
+ 'stopped',
53
+ nil
54
+ ]
55
+
56
+ @controls = [
57
+ 'netbind change',
58
+ 'param change',
59
+ 'pause continue',
60
+ 'shutdown',
61
+ 'stop',
62
+ 'hardware profile change',
63
+ 'power event',
64
+ 'session change',
65
+ nil
66
+ ]
67
+ end
68
+
69
+ def test_service_info_info_service_name
70
+ assert_respond_to(@service_info, :service_name)
71
+ assert_kind_of(String, @service_info.service_name)
72
+ end
73
+
74
+ def test_service_info_info_display_name
75
+ assert_respond_to(@service_info, :display_name)
76
+ assert_kind_of(String, @service_info.display_name)
77
+ end
78
+
79
+ def test_service_info_info_service_type
80
+ assert_respond_to(@service_info, :service_type)
81
+ assert(@types.include?(@service_info.service_type))
82
+ end
83
+
84
+ def test_service_info_current_state
85
+ assert_respond_to(@service_info, :current_state)
86
+ assert(@states.include?(@service_info.current_state))
87
+ end
88
+
89
+ def test_service_info_controls_accepted
90
+ assert_respond_to(@service_info, :controls_accepted)
91
+ assert(@controls.include?(@service_info.controls_accepted))
92
+ end
93
+
94
+ def test_service_info_win32_exit_code
95
+ assert_respond_to(@service_info, :win32_exit_code)
96
+ assert_kind_of(Fixnum, @service_info.win32_exit_code)
97
+ end
98
+
99
+ def test_service_info_service_specific_exit_code
100
+ assert_respond_to(@service_info, :service_specific_exit_code)
101
+ assert_kind_of(Fixnum, @service_info.service_specific_exit_code)
102
+ end
103
+
104
+ def test_service_info_check_point
105
+ assert_respond_to(@service_info, :check_point)
106
+ assert_kind_of(Fixnum, @service_info.check_point)
107
+ end
108
+
109
+ def test_service_info_wait_hint
110
+ assert_respond_to(@service_info, :wait_hint)
111
+ assert_kind_of(Fixnum, @service_info.wait_hint)
112
+ end
113
+
114
+ def test_service_info_binary_path_name
115
+ assert_respond_to(@service_info, :binary_path_name)
116
+ assert_kind_of(String, @service_info.binary_path_name)
117
+ end
118
+
119
+ def test_service_info_start_type
120
+ assert_respond_to(@service_info, :start_type)
121
+ assert(@start_types.include?(@service_info.start_type))
122
+ end
123
+
124
+ def test_service_info_error_control
125
+ assert_respond_to(@service_info, :error_control)
126
+ assert(@error_controls.include?(@service_info.error_control))
127
+ end
128
+
129
+ def test_service_info_load_order_group
130
+ assert_respond_to(@service_info, :load_order_group)
131
+ assert_kind_of(String, @service_info.load_order_group)
132
+ end
133
+
134
+ def test_service_info_tag_id
135
+ assert_respond_to(@service_info, :tag_id)
136
+ assert_kind_of(Fixnum, @service_info.tag_id)
137
+ end
138
+
139
+ def test_service_info_start_name
140
+ assert_respond_to(@service_info, :start_name)
141
+ assert_kind_of(String, @service_info.start_name)
142
+ end
143
+
144
+ def test_service_info_dependencies
145
+ assert_respond_to(@service_info, :dependencies)
146
+ assert_kind_of(Array, @service_info.dependencies)
147
+ end
148
+
149
+ def test_service_info_description
150
+ assert_respond_to(@service_info, :description)
151
+ assert_kind_of(String, @service_info.description)
152
+ end
153
+
154
+ def test_service_info_interactive
155
+ assert_respond_to(@service_info, :interactive)
156
+ assert([true, false].include?(@service_info.interactive))
157
+ end
158
+
159
+ def test_service_info_service_flags
160
+ assert_respond_to(@service_info, :service_flags)
161
+ assert([0,1].include?(@service_info.service_flags))
162
+ end
163
+
164
+ def teardown
165
+ @services = nil
166
+ @types = nil
167
+ @states = nil
168
+ @controls = nil
169
+ end
170
+ end
@@ -0,0 +1,108 @@
1
+ ########################################################################
2
+ # tc_service_status.rb
3
+ #
4
+ # Test case for the Struct::ServiceStatus struct.
5
+ ########################################################################
6
+ require 'win32/service'
7
+ require 'test/unit'
8
+
9
+ class TC_Struct_ServiceStatus < Test::Unit::TestCase
10
+ def setup
11
+ @service_name = 'Schedule'
12
+ @service_stat = Win32::Service.status(@service_name)
13
+
14
+ @types = [
15
+ 'file system driver',
16
+ 'kernel driver',
17
+ 'own process',
18
+ 'share process',
19
+ 'recognizer token',
20
+ 'driver',
21
+ 'win32',
22
+ 'all',
23
+ 'own process, interactive',
24
+ 'share process, interactive',
25
+ nil
26
+ ]
27
+
28
+ @states = [
29
+ 'continue pending',
30
+ 'pause pending',
31
+ 'paused',
32
+ 'running',
33
+ 'start pending',
34
+ 'stop pending',
35
+ 'stopped',
36
+ nil
37
+ ]
38
+
39
+ @controls = [
40
+ 'netbind change',
41
+ 'param change',
42
+ 'pause continue',
43
+ 'shutdown',
44
+ 'stop',
45
+ 'hardware profile change',
46
+ 'power event',
47
+ 'session change',
48
+ nil
49
+ ]
50
+ end
51
+
52
+ def test_service_status_service_type
53
+ assert_respond_to(@service_stat, :service_type)
54
+ assert(@types.include?(@service_stat.service_type))
55
+ end
56
+
57
+ def test_service_status_current_state
58
+ assert_respond_to(@service_stat, :current_state)
59
+ assert(@states.include?(@service_stat.current_state))
60
+ end
61
+
62
+ def test_service_status_controls_accepted
63
+ assert_respond_to(@service_stat, :controls_accepted)
64
+ assert(@controls.include?(@service_stat.controls_accepted))
65
+ end
66
+
67
+ def test_service_status_win32_exit_code
68
+ assert_respond_to(@service_stat, :win32_exit_code)
69
+ assert_kind_of(Fixnum, @service_stat.win32_exit_code)
70
+ end
71
+
72
+ def test_service_status_service_specific_exit_code
73
+ assert_respond_to(@service_stat, :service_specific_exit_code)
74
+ assert_kind_of(Fixnum, @service_stat.service_specific_exit_code)
75
+ end
76
+
77
+ def test_service_status_check_point
78
+ assert_respond_to(@service_stat, :check_point)
79
+ assert_kind_of(Fixnum, @service_stat.check_point)
80
+ end
81
+
82
+ def test_service_status_wait_hint
83
+ assert_respond_to(@service_stat, :wait_hint)
84
+ assert_kind_of(Fixnum, @service_stat.wait_hint)
85
+ end
86
+
87
+ def test_service_status_interactive
88
+ assert_respond_to(@service_stat, :interactive)
89
+ assert([true, false].include?(@service_stat.interactive))
90
+ end
91
+
92
+ def test_service_status_pid
93
+ assert_respond_to(@service_stat, :pid)
94
+ assert_kind_of(Fixnum, @service_stat.pid)
95
+ end
96
+
97
+ def test_service_status_service_flags
98
+ assert_respond_to(@service_stat, :service_flags)
99
+ assert_kind_of(Fixnum, @service_stat.service_flags)
100
+ end
101
+
102
+ def teardown
103
+ @service_stat = nil
104
+ @types = nil
105
+ @states = nil
106
+ @controls = nil
107
+ end
108
+ end
metadata CHANGED
@@ -1,58 +1,81 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
3
- specification_version: 1
4
2
  name: win32-service
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.5.2
7
- date: 2006-11-25 00:00:00 -07:00
8
- summary: An interface for MS Windows services
9
- require_paths:
10
- - lib
11
- email: djberg96@gmail.com
12
- homepage: http://www.rubyforge.org/projects/win32utils
13
- rubyforge_project: win32utils
14
- description: An interface for MS Windows services
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.8.2
24
- version:
4
+ version: 0.6.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Daniel J. Berger
31
- files:
32
- - doc/daemon.txt
33
- - doc/service.txt
34
- - test/tc_daemon.rb
35
- - test/tc_service.rb
36
- - lib/win32/service.c
37
- - lib/win32/service.h
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2007-11-25 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: windows-pr
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.7.3
23
+ version:
24
+ description: An library for controlling and creating MS Windows services
25
+ email: djberg96@gmail.com
26
+ executables: []
27
+
28
+ extensions:
29
+ - ext/extconf.rb
30
+ extra_rdoc_files:
38
31
  - CHANGES
39
32
  - README
40
33
  - MANIFEST
41
- test_files:
34
+ - ext/win32/daemon.c
35
+ - doc/service.txt
36
+ - doc/daemon.txt
37
+ files:
38
+ - test/tc_daemon.rb
42
39
  - test/tc_service.rb
43
- rdoc_options: []
44
-
45
- extra_rdoc_files:
40
+ - test/tc_service_create.rb
41
+ - test/tc_service_info.rb
42
+ - test/tc_service_status.rb
43
+ - lib/win32/service.rb
46
44
  - CHANGES
47
45
  - README
48
46
  - MANIFEST
47
+ - ext/win32/daemon.c
49
48
  - doc/service.txt
50
49
  - doc/daemon.txt
51
- executables: []
50
+ has_rdoc: true
51
+ homepage: http://www.rubyforge.org/projects/win32utils
52
+ post_install_message:
53
+ rdoc_options: []
52
54
 
53
- extensions:
54
- - extconf.rb
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.8.2
62
+ version:
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ version:
55
69
  requirements: []
56
70
 
57
- dependencies: []
58
-
71
+ rubyforge_project: win32utils
72
+ rubygems_version: 0.9.5
73
+ signing_key:
74
+ specification_version: 2
75
+ summary: An library for controlling and creating MS Windows services
76
+ test_files:
77
+ - test/tc_daemon.rb
78
+ - test/tc_service.rb
79
+ - test/tc_service_create.rb
80
+ - test/tc_service_info.rb
81
+ - test/tc_service_status.rb