sys-uname 0.8.5-x86-mingw32 → 0.9.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
data/sys-uname.gemspec CHANGED
@@ -1,27 +1,31 @@
1
- require 'rubygems'
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = 'sys-uname'
5
- spec.version = '0.8.5'
6
- spec.license = 'Artistic 2.0'
7
- spec.author = 'Daniel J. Berger'
8
- spec.email = 'djberg96@gmail.com'
9
- spec.homepage = 'http://www.rubyforge.org/projects/sysutils'
10
- spec.platform = Gem::Platform::RUBY
11
- spec.summary = 'An interface for returning system platform information'
12
- spec.test_file = 'test/test_sys_uname.rb'
13
- spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
14
-
15
- spec.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST', 'doc/uname.txt']
16
- spec.rubyforge_project = 'sysutils'
17
-
18
- spec.add_development_dependency('test-unit', '>= 2.0.6')
19
-
20
- spec.description = <<-EOF
21
- The sys-uname library provides an interface for gathering information
22
- about your current platform. The library is named after the Unix 'uname'
23
- command but also works on MS Windows. Available information includes
24
- OS name, OS version, system name and so on. Additional information is
25
- available for certain platforms.
26
- EOF
27
- end
1
+ require 'rubygems'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'sys-uname'
5
+ spec.version = '0.9.0'
6
+ spec.author = 'Daniel J. Berger'
7
+ spec.email = 'djberg96@gmail.com'
8
+ spec.homepage = 'http://www.rubyforge.org/projects/sysutils'
9
+ spec.platform = Gem::Platform::RUBY
10
+ spec.summary = 'An interface for returning uname (platform) information'
11
+ spec.test_file = 'test/test_sys_uname.rb'
12
+ spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
13
+
14
+ spec.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST', 'doc/uname.txt']
15
+ spec.rubyforge_project = 'sysutils'
16
+
17
+ if Config::CONFIG['host_os'] =~ /mswin|windows|dos|mingw|cygwin/i
18
+ spec.require_paths = ['lib', 'lib/windows']
19
+ else
20
+ spec.require_paths = ['lib', 'lib/unix']
21
+ spec.add_dependency('ffi', '>= 1.0.0')
22
+ end
23
+
24
+ spec.description = <<-EOF
25
+ The sys-uname library provides an interface for gathering information
26
+ about your current platform. The library is named after the Unix 'uname'
27
+ command but also works on MS Windows. Available information includes
28
+ OS name, OS version, system name and so on. Additional information is
29
+ available for certain platforms.
30
+ EOF
31
+ end
@@ -1,448 +1,457 @@
1
- ##############################################################################
2
- # test_sys_uname.rb
3
- #
4
- # Tests for the sys-uname library. This test suite should be run via the
5
- # 'rake test' task.
6
- ##############################################################################
7
- require 'rubygems'
8
- gem 'test-unit'
9
-
10
- require 'test/unit'
11
- require 'sys/uname'
12
- require 'rbconfig'
13
- include Sys
14
-
15
- class TC_Sys_Uname < Test::Unit::TestCase
16
- def self.startup
17
- @@host_os = Config::CONFIG['host_os']
18
- end
19
-
20
- def test_version_constant
21
- assert_not_nil(Uname::VERSION)
22
- assert_nothing_raised{ Uname::VERSION }
23
- assert_kind_of(String, Uname::VERSION)
24
- assert_equal('0.8.5', Uname::VERSION)
25
- end
26
-
27
- def test_machine
28
- assert_respond_to(Uname, :machine)
29
- assert_nothing_raised{ Uname.machine }
30
- assert_kind_of(String, Uname.machine)
31
- end
32
-
33
- def test_version_method
34
- assert_respond_to(Uname, :version)
35
- assert_nothing_raised{ Uname.version }
36
- assert_kind_of(String, Uname.version)
37
- end
38
-
39
- def test_nodename
40
- assert_respond_to(Uname, :nodename)
41
- assert_nothing_raised{ Uname.nodename }
42
- assert_kind_of(String, Uname.nodename)
43
- end
44
-
45
- def test_release
46
- assert_respond_to(Uname, :release)
47
- assert_nothing_raised{ Uname.release }
48
- assert_kind_of(String, Uname.release)
49
- end
50
-
51
- def test_sysname
52
- assert_respond_to(Uname, :sysname)
53
- assert_nothing_raised{ Uname.sysname }
54
- assert_kind_of(String, Uname.sysname, 'Invalid Type')
55
- end
56
-
57
- def test_architecture
58
- omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
59
- assert_respond_to(Uname, :architecture)
60
- assert_nothing_raised{ Uname.architecture }
61
- assert_kind_of(String, Uname.architecture)
62
- end
63
-
64
- def test_platform
65
- omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
66
- assert_respond_to(Uname, :platform)
67
- assert_nothing_raised{ Uname.platform }
68
- assert_kind_of(String, Uname.platform)
69
- end
70
-
71
- def test_isa_list
72
- omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
73
- assert_respond_to(Uname, :isa_list)
74
- assert_nothing_raised{ Uname.isa_list }
75
- assert_kind_of(String, Uname.isa_list)
76
- end
77
-
78
- def test_hw_provider
79
- omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
80
- assert_respond_to(Uname,:hw_provider)
81
- assert_nothing_raised{ Uname.hw_provider }
82
- assert_kind_of(String, Uname.hw_provider)
83
- end
84
-
85
- def test_hw_serial_number
86
- omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
87
- assert_respond_to(Uname, :hw_serial_number)
88
- assert_nothing_raised{ Uname.hw_serial_number }
89
- assert_kind_of(Integer, Uname.hw_serial_number)
90
- end
91
-
92
- def test_srpc_domain
93
- omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
94
- assert_respond_to(Uname, :srpc_domain)
95
- assert_nothing_raised{ Uname.srpc_domain }
96
- assert_kind_of(String, Uname.srpc_domain)
97
- end
98
-
99
- def test_dhcp_cache
100
- omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
101
- assert_respond_to(Uname, :dhcp_cache)
102
- assert_nothing_raised{ Uname.dhcp_cache }
103
- assert_kind_of(String, Uname.dhcp_cache)
104
- end
105
-
106
- def test_model
107
- omit_unless(@@host_os =~ /darwin|powerpc|bsd|mach/i, "BSD/Darwin only")
108
- assert_respond_to(Uname, :model)
109
- assert_nothing_raised{ Uname.model }
110
- assert_kind_of(String, Uname.model)
111
- end
112
-
113
- def test_id_number
114
- omit_unless(@@host_os =~ /hpux/i, "HP-UX only")
115
- assert_respond_to(Uname, :id_number)
116
- assert_nothing_raised{ Uname.id_number }
117
- assert_kind_of(String, Uname.id_number)
118
- end
119
-
120
- def test_uname_struct
121
- members = %w/sysname nodename machine version release/
122
- case Config::CONFIG['host_os']
123
- when /sunos|solaris/i
124
- members.push('architecture','platform')
125
- when /powerpc|darwin/i
126
- members.push('model')
127
- when /hpux/i
128
- members.push('id')
129
- when /win32|mingw|cygwin|dos/i
130
- members = %w/
131
- boot_device build_number build_type caption code_set country_code
132
- creation_class_name cscreation_class_name csd_version cs_name
133
- current_time_zone debug description distributed
134
- foreground_application_boost free_physical_memory
135
- free_space_in_paging_files free_virtual_memory
136
- install_date last_bootup_time local_date_time locale
137
- manufacturer max_number_of_processes max_process_memory_size
138
- name number_of_licensed_users number_of_processes
139
- number_of_users organization os_language os_product_suite
140
- os_type other_type_description plus_product_id
141
- plus_version_number primary quantum_length quantum_type
142
- registered_user serial_number service_pack_major_version
143
- service_pack_minor_version size_stored_in_paging_files
144
- status system_device system_directory total_swap_space_size
145
- total_virtual_memory_size total_visible_memory_size version
146
- windows_directory
147
- /
148
- end
149
- assert_nothing_raised{ Uname.uname }
150
- assert_kind_of(Struct, Uname.uname)
151
- assert_equal(members, Uname.uname.members)
152
- end
153
-
154
- # The following tests are win32 only
155
- if Config::CONFIG['host_os'] =~ /mswin|windows/i
156
- def test_boot_device
157
- assert_nothing_raised{ Uname.uname.boot_device }
158
- assert_kind_of(String, Uname.uname.boot_device)
159
- end
160
-
161
- def test_build_number
162
- assert_nothing_raised{ Uname.uname.build_number }
163
- assert_kind_of(String, Uname.uname.build_number)
164
- end
165
-
166
- def test_build_type
167
- assert_nothing_raised{ Uname.uname.build_type }
168
- assert_kind_of(String, Uname.uname.build_type)
169
- end
170
-
171
- def test_caption
172
- assert_nothing_raised{ Uname.uname.caption }
173
- assert_kind_of(String, Uname.uname.caption)
174
- end
175
-
176
- def test_code_set
177
- assert_nothing_raised{ Uname.uname.code_set }
178
- assert_kind_of(String, Uname.uname.code_set)
179
- end
180
-
181
- def test_country_code
182
- assert_nothing_raised{ Uname.uname.country_code }
183
- assert_kind_of(String, Uname.uname.country_code)
184
- end
185
-
186
- def test_creation_class_name
187
- assert_nothing_raised{ Uname.uname.creation_class_name }
188
- assert_kind_of(String, Uname.uname.creation_class_name)
189
- end
190
-
191
- def test_cscreation_class_name
192
- assert_nothing_raised{ Uname.uname.cscreation_class_name }
193
- assert_kind_of(String, Uname.uname.cscreation_class_name)
194
- end
195
-
196
- def test_csd_version
197
- assert_nothing_raised{ Uname.uname.csd_version }
198
- assert_kind_of(String, Uname.uname.csd_version)
199
- end
200
-
201
- def test_cs_name
202
- assert_nothing_raised{ Uname.uname.cs_name }
203
- assert_kind_of(String, Uname.uname.cs_name)
204
- end
205
-
206
- def test_current_time_zone
207
- assert_nothing_raised{ Uname.uname.current_time_zone }
208
- assert_kind_of(Fixnum, Uname.uname.current_time_zone)
209
- end
210
-
211
- def test_debug
212
- assert_nothing_raised{ Uname.uname.debug }
213
- assert_boolean(Uname.uname.debug)
214
- end
215
-
216
- def test_description
217
- assert_nothing_raised{ Uname.uname.description }
218
- assert_kind_of(String, Uname.uname.description)
219
- end
220
-
221
- def test_distributed
222
- assert_nothing_raised{ Uname.uname.distributed }
223
- assert_boolean(Uname.uname.distributed)
224
- end
225
-
226
- # Not yet supported - WinXP or later only
227
- #def test_encryption_level
228
- # assert_nothing_raised{ Uname.uname.encryption_level }
229
- # assert_kind_of(Fixnum,Uname.uname.encryption_level)
230
- #end
231
-
232
- def test_foreground_application_boost
233
- assert_nothing_raised{ Uname.uname.foreground_application_boost }
234
- assert_kind_of(Fixnum, Uname.uname.foreground_application_boost)
235
- end
236
-
237
- def test_free_physical_memory
238
- assert_nothing_raised{ Uname.uname.free_physical_memory }
239
- assert_kind_of(Fixnum, Uname.uname.free_physical_memory)
240
- end
241
-
242
- def test_free_space_in_paging_files
243
- assert_nothing_raised{ Uname.uname.free_space_in_paging_files }
244
- assert_kind_of(Fixnum, Uname.uname.free_space_in_paging_files)
245
- end
246
-
247
- def test_free_virtual_memory
248
- assert_nothing_raised{ Uname.uname.free_virtual_memory}
249
- assert_kind_of(Fixnum, Uname.uname.free_virtual_memory)
250
- end
251
-
252
- def test_install_date
253
- assert_nothing_raised{ Uname.uname.install_date}
254
- assert_kind_of(Time, Uname.uname.install_date)
255
- end
256
-
257
- # Not yet supported - WinXP or later only
258
- #def test_large_system_cache
259
- # assert_nothing_raised{ Uname.uname.large_system_cache}
260
- # assert_kind_of(Time,Uname.uname.large_system_cache)
261
- #end
262
-
263
- def test_last_bootup_time
264
- assert_nothing_raised{ Uname.uname.last_bootup_time}
265
- assert_kind_of(Time, Uname.uname.last_bootup_time)
266
- end
267
-
268
- def test_local_date_time
269
- assert_nothing_raised{ Uname.uname.local_date_time}
270
- assert_kind_of(Time, Uname.uname.local_date_time)
271
- end
272
-
273
- def test_locale
274
- assert_nothing_raised{ Uname.uname.locale}
275
- assert_kind_of(String, Uname.uname.locale)
276
- end
277
-
278
- def test_manufacturer
279
- assert_nothing_raised{ Uname.uname.manufacturer}
280
- assert_kind_of(String, Uname.uname.manufacturer)
281
- end
282
-
283
- def test_max_number_of_processes
284
- assert_nothing_raised{ Uname.uname.max_number_of_processes}
285
- assert_kind_of(Fixnum, Uname.uname.max_number_of_processes)
286
- end
287
-
288
- def test_max_process_memory_size
289
- assert_nothing_raised{ Uname.uname.max_process_memory_size}
290
- assert_kind_of(Integer, Uname.uname.max_process_memory_size)
291
- end
292
-
293
- def test_name
294
- assert_nothing_raised{ Uname.uname.name}
295
- assert_kind_of(String, Uname.uname.name)
296
- end
297
-
298
- # Fails on Win XP Pro - returns nil - reason unknown
299
- #def test_number_of_licensed_users
300
- # assert_nothing_raised{ Uname.uname.number_of_licensed_users}
301
- # assert_kind_of(Fixnum,Uname.uname.number_of_licensed_users)
302
- #end
303
-
304
- def test_number_of_processes
305
- assert_nothing_raised{ Uname.uname.number_of_processes}
306
- assert_kind_of(Fixnum, Uname.uname.number_of_processes)
307
- end
308
-
309
- def test_number_of_users
310
- assert_nothing_raised{ Uname.uname.number_of_users}
311
- assert_kind_of(Fixnum, Uname.uname.number_of_users)
312
- end
313
-
314
- def test_organization
315
- assert_nothing_raised{ Uname.uname.organization}
316
- assert_kind_of(String, Uname.uname.organization)
317
- end
318
-
319
- # Eventually replace Fixnum with a string (?)
320
- def test_os_language
321
- assert_nothing_raised{ Uname.uname.os_language}
322
- assert_kind_of(Fixnum, Uname.uname.os_language)
323
- end
324
-
325
- # Fails on Win XP Pro - returns nil - reason unknown
326
- #def test_os_product_suite
327
- # assert_nothing_raised{ Uname.uname.os_product_suite}
328
- # assert_kind_of(Fixnum,Uname.uname.os_product_suite)
329
- #end
330
-
331
- def test_os_type
332
- assert_nothing_raised{ Uname.uname.os_type}
333
- assert_kind_of(Fixnum, Uname.uname.os_type)
334
- end
335
-
336
- # Fails?
337
- #def test_other_type_restriction
338
- # assert_nothing_raised{ Uname.uname.other_type_restriction}
339
- # assert_kind_of(Fixnum,Uname.uname.other_type_restriction)
340
- #end
341
-
342
- # Might be nil
343
- def test_plus_product_id
344
- assert_nothing_raised{ Uname.uname.plus_product_id}
345
- end
346
-
347
- # Might be nil
348
- def test_plus_version_number
349
- assert_nothing_raised{ Uname.uname.plus_version_number}
350
- end
351
-
352
- def test_primary
353
- assert_nothing_raised{ Uname.uname.primary}
354
- assert_boolean(Uname.uname.primary)
355
- end
356
-
357
- # Not yet supported - WinXP or later only
358
- # def test_product_type
359
- # assert_nothing_raised{ Uname.uname.product_type}
360
- # assert_kind_of(Fixnum,Uname.uname.product_type)
361
- # end
362
-
363
- def test_quantum_length
364
- assert_nothing_raised{ Uname.uname.quantum_length}
365
- assert_kind_of(Fixnum, Uname.uname.quantum_length)
366
- end
367
-
368
- def test_quantum_type
369
- assert_nothing_raised{ Uname.uname.quantum_type}
370
- assert_kind_of(Fixnum, Uname.uname.quantum_type)
371
- end
372
-
373
- def test_registered_user
374
- assert_nothing_raised{ Uname.uname.registered_user}
375
- assert_kind_of(String, Uname.uname.registered_user)
376
- end
377
-
378
- def test_serial_number
379
- assert_nothing_raised{ Uname.uname.serial_number}
380
- assert_kind_of(String, Uname.uname.serial_number)
381
- end
382
-
383
- # This is nil on NT 4
384
- def test_service_pack_major_version
385
- assert_nothing_raised{ Uname.uname.service_pack_major_version}
386
- assert_kind_of(Fixnum, Uname.uname.service_pack_major_version)
387
- end
388
-
389
- # This is nil on NT 4
390
- def test_service_pack_major_version
391
- assert_nothing_raised{ Uname.uname.service_pack_minor_version}
392
- assert_kind_of(Fixnum, Uname.uname.service_pack_minor_version)
393
- end
394
-
395
- def test_status
396
- assert_nothing_raised{ Uname.uname.status}
397
- assert_kind_of(String, Uname.uname.status)
398
- end
399
-
400
- # Not yet supported - WinXP or later only
401
- #def test_suite_mask
402
- # assert_nothing_raised{ Uname.uname.suite_mask}
403
- # assert_kind_of(String,Uname.uname.suite_mask)
404
- #end
405
-
406
- def test_system_device
407
- assert_nothing_raised{ Uname.uname.system_device}
408
- assert_kind_of(String, Uname.uname.system_device)
409
- end
410
-
411
- def test_system_directory
412
- assert_nothing_raised{ Uname.uname.system_directory}
413
- assert_kind_of(String, Uname.uname.system_directory)
414
- end
415
-
416
- # Not yet supported - WinXP or later only
417
- #def test_system_drive
418
- # assert_nothing_raised{ Uname.uname.system_drive}
419
- # assert_kind_of(String,Uname.uname.system_drive)
420
- #end
421
-
422
- # Fails on Win XP Pro - returns nil - reason unknown
423
- #def test_total_swap_space_size
424
- # assert_nothing_raised{ Uname.uname.total_swap_space_size}
425
- # assert_kind_of(Fixnum,Uname.uname.total_swap_space_size)
426
- #end
427
-
428
- def test_total_virtual_memory_size
429
- assert_nothing_raised{ Uname.uname.total_virtual_memory_size}
430
- assert_kind_of(Fixnum, Uname.uname.total_virtual_memory_size)
431
- end
432
-
433
- def test_total_visible_memory_size
434
- assert_nothing_raised{ Uname.uname.total_visible_memory_size}
435
- assert_kind_of(Fixnum, Uname.uname.total_visible_memory_size)
436
- end
437
-
438
- def test_version
439
- assert_nothing_raised{ Uname.uname.version}
440
- assert_kind_of(String, Uname.uname.version)
441
- end
442
-
443
- def test_windows_directory
444
- assert_nothing_raised{ Uname.uname.windows_directory}
445
- assert_kind_of(String, Uname.uname.windows_directory)
446
- end
447
- end
448
- end
1
+ ##############################################################################
2
+ # test_sys_uname.rb
3
+ #
4
+ # Test suite for the sys-uname package. This test suite should be run via
5
+ # the 'rake test' task.
6
+ ##############################################################################
7
+ gem 'test-unit'
8
+ require 'test/unit'
9
+
10
+ require 'sys/uname'
11
+ require 'rbconfig'
12
+ include Sys
13
+
14
+ class TC_Uname < Test::Unit::TestCase
15
+ def self.startup
16
+ @@host_os = RbConfig::CONFIG['host_os']
17
+ end
18
+
19
+ test "version constant is set to expected value" do
20
+ assert_equal('0.9.0', Uname::VERSION)
21
+ end
22
+
23
+ test "machine singleton method works as expected" do
24
+ assert_respond_to(Uname, :machine)
25
+ assert_nothing_raised{ Uname.machine }
26
+ assert_kind_of(String, Uname.machine)
27
+ assert_true(Uname.machine.size > 0)
28
+ end
29
+
30
+ test "version singleton method works as expected" do
31
+ assert_respond_to(Uname, :version)
32
+ assert_nothing_raised{ Uname.version }
33
+ assert_kind_of(String, Uname.version)
34
+ assert_true(Uname.version.size > 0)
35
+ end
36
+
37
+ test "nodename singleton method works as expected" do
38
+ assert_respond_to(Uname, :nodename)
39
+ assert_nothing_raised{ Uname.nodename }
40
+ assert_kind_of(String, Uname.nodename)
41
+ assert_true(Uname.nodename.size > 0)
42
+ end
43
+
44
+ test "release singleton method works as expected" do
45
+ assert_respond_to(Uname, :release)
46
+ assert_nothing_raised{ Uname.release }
47
+ assert_kind_of(String, Uname.release)
48
+ assert_true(Uname.release.size > 0)
49
+ end
50
+
51
+ test "sysname singleton method works as expected" do
52
+ assert_respond_to(Uname, :sysname)
53
+ assert_nothing_raised{ Uname.sysname }
54
+ assert_kind_of(String, Uname.sysname)
55
+ assert_true(Uname.sysname.size > 0)
56
+ end
57
+
58
+ test "architecture singleton method works as expected on solaris" do
59
+ omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
60
+ assert_respond_to(Uname, :architecture)
61
+ assert_nothing_raised{ Uname.architecture }
62
+ assert_kind_of(String, Uname.architecture)
63
+ end
64
+
65
+ test "platform singleton method works as expected on solaris" do
66
+ omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
67
+ assert_respond_to(Uname, :platform)
68
+ assert_nothing_raised{ Uname.platform }
69
+ assert_kind_of(String, Uname.platform)
70
+ end
71
+
72
+ test "isa_list singleton method works as expected on solaris" do
73
+ omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
74
+ assert_respond_to(Uname, :isa_list)
75
+ assert_nothing_raised{ Uname.isa_list }
76
+ assert_kind_of(String, Uname.isa_list)
77
+ end
78
+
79
+ test "hw_provider singleton method works as expected on solaris" do
80
+ omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
81
+ assert_respond_to(Uname,:hw_provider)
82
+ assert_nothing_raised{ Uname.hw_provider }
83
+ assert_kind_of(String, Uname.hw_provider)
84
+ end
85
+
86
+ test "hw_serial singleton method works as expected on solaris" do
87
+ omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
88
+ assert_respond_to(Uname, :hw_serial)
89
+ assert_nothing_raised{ Uname.hw_serial }
90
+ assert_kind_of(Integer, Uname.hw_serial)
91
+ end
92
+
93
+ test "srpc_domain singleton method works as expected on solaris" do
94
+ omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
95
+ assert_respond_to(Uname, :srpc_domain)
96
+ assert_nothing_raised{ Uname.srpc_domain }
97
+ assert_kind_of(String, Uname.srpc_domain)
98
+ end
99
+
100
+ test "dhcp_cache singleton method works as expected on solaris" do
101
+ omit_unless(@@host_os =~ /sunos|solaris/i, "Solaris only")
102
+ assert_respond_to(Uname, :dhcp_cache)
103
+ assert_nothing_raised{ Uname.dhcp_cache }
104
+ assert_kind_of(String, Uname.dhcp_cache)
105
+ end
106
+
107
+ test "model singleton method works as expected on BSD and Darwin" do
108
+ omit_unless(@@host_os =~ /darwin|powerpc|bsd|mach/i, "BSD/Darwin only")
109
+ assert_respond_to(Uname, :model)
110
+ assert_nothing_raised{ Uname.model }
111
+ assert_kind_of(String, Uname.model)
112
+ end
113
+
114
+ test "id_number singleton method works as expected on HP-UX" do
115
+ omit_unless(@@host_os =~ /hpux/i, "HP-UX only")
116
+ assert_respond_to(Uname, :id_number)
117
+ assert_nothing_raised{ Uname.id_number }
118
+ assert_kind_of(String, Uname.id_number)
119
+ end
120
+
121
+ test "uname struct contains expected members based on platform" do
122
+ members = %w/sysname nodename machine version release/
123
+ case RbConfig::CONFIG['host_os']
124
+ when /linux/i
125
+ members.push('domainname')
126
+ when /sunos|solaris/i
127
+ members.push(
128
+ 'architecture', 'platform', 'hw_serial', 'hw_provider',
129
+ 'srpc_domain', 'isa_list', 'dhcp_cache'
130
+ )
131
+ when /powerpc|darwin|bsd/i
132
+ members.push('model')
133
+ when /hpux/i
134
+ members.push('id')
135
+ when /win32|mingw|cygwin|dos|windows/i
136
+ members = %w[
137
+ boot_device build_number build_type caption code_set country_code
138
+ creation_class_name cscreation_class_name csd_version cs_name
139
+ current_time_zone debug description distributed
140
+ foreground_application_boost free_physical_memory
141
+ free_space_in_paging_files free_virtual_memory
142
+ install_date last_bootup_time local_date_time locale
143
+ manufacturer max_number_of_processes max_process_memory_size
144
+ name number_of_licensed_users number_of_processes
145
+ number_of_users organization os_language os_product_suite
146
+ os_type other_type_description plus_product_id
147
+ plus_version_number primary quantum_length quantum_type
148
+ registered_user serial_number service_pack_major_version
149
+ service_pack_minor_version size_stored_in_paging_files
150
+ status system_device system_directory total_swap_space_size
151
+ total_virtual_memory_size total_visible_memory_size version
152
+ windows_directory
153
+ ]
154
+ end
155
+
156
+ members.map!{ |e| e.to_sym } if RUBY_VERSION.to_f >= 1.9
157
+
158
+ assert_nothing_raised{ Uname.uname }
159
+ assert_kind_of(Struct, Uname.uname)
160
+ assert_equal(members.sort, Uname.uname.members.sort)
161
+ end
162
+
163
+ # The following tests are win32 only
164
+ if File::ALT_SEPARATOR
165
+ def test_boot_device
166
+ assert_nothing_raised{ Uname.uname.boot_device }
167
+ assert_kind_of(String, Uname.uname.boot_device)
168
+ end
169
+
170
+ def test_build_number
171
+ assert_nothing_raised{ Uname.uname.build_number }
172
+ assert_kind_of(String, Uname.uname.build_number)
173
+ end
174
+
175
+ def test_build_type
176
+ assert_nothing_raised{ Uname.uname.build_type }
177
+ assert_kind_of(String, Uname.uname.build_type)
178
+ end
179
+
180
+ def test_caption
181
+ assert_nothing_raised{ Uname.uname.caption }
182
+ assert_kind_of(String, Uname.uname.caption)
183
+ end
184
+
185
+ def test_code_set
186
+ assert_nothing_raised{ Uname.uname.code_set }
187
+ assert_kind_of(String, Uname.uname.code_set)
188
+ end
189
+
190
+ def test_country_code
191
+ assert_nothing_raised{ Uname.uname.country_code }
192
+ assert_kind_of(String, Uname.uname.country_code)
193
+ end
194
+
195
+ def test_creation_class_name
196
+ assert_nothing_raised{ Uname.uname.creation_class_name }
197
+ assert_kind_of(String, Uname.uname.creation_class_name)
198
+ end
199
+
200
+ def test_cscreation_class_name
201
+ assert_nothing_raised{ Uname.uname.cscreation_class_name }
202
+ assert_kind_of(String, Uname.uname.cscreation_class_name)
203
+ end
204
+
205
+ def test_csd_version
206
+ assert_nothing_raised{ Uname.uname.csd_version }
207
+ assert_kind_of(String, Uname.uname.csd_version)
208
+ end
209
+
210
+ def test_cs_name
211
+ assert_nothing_raised{ Uname.uname.cs_name }
212
+ assert_kind_of(String, Uname.uname.cs_name)
213
+ end
214
+
215
+ def test_current_time_zone
216
+ assert_nothing_raised{ Uname.uname.current_time_zone }
217
+ assert_kind_of(Fixnum, Uname.uname.current_time_zone)
218
+ end
219
+
220
+ def test_debug
221
+ assert_nothing_raised{ Uname.uname.debug }
222
+ assert_boolean(Uname.uname.debug)
223
+ end
224
+
225
+ def test_description
226
+ assert_nothing_raised{ Uname.uname.description }
227
+ assert_kind_of(String, Uname.uname.description)
228
+ end
229
+
230
+ def test_distributed
231
+ assert_nothing_raised{ Uname.uname.distributed }
232
+ assert_boolean(Uname.uname.distributed)
233
+ end
234
+
235
+ # Not yet supported - WinXP or later only
236
+ #def test_encryption_level
237
+ # assert_nothing_raised{ Uname.uname.encryption_level }
238
+ # assert_kind_of(Fixnum,Uname.uname.encryption_level)
239
+ #end
240
+
241
+ def test_foreground_application_boost
242
+ assert_nothing_raised{ Uname.uname.foreground_application_boost }
243
+ assert_kind_of(Fixnum, Uname.uname.foreground_application_boost)
244
+ end
245
+
246
+ def test_free_physical_memory
247
+ assert_nothing_raised{ Uname.uname.free_physical_memory }
248
+ assert_kind_of(Fixnum, Uname.uname.free_physical_memory)
249
+ end
250
+
251
+ def test_free_space_in_paging_files
252
+ assert_nothing_raised{ Uname.uname.free_space_in_paging_files }
253
+ assert_kind_of(Fixnum, Uname.uname.free_space_in_paging_files)
254
+ end
255
+
256
+ def test_free_virtual_memory
257
+ assert_nothing_raised{ Uname.uname.free_virtual_memory}
258
+ assert_kind_of(Fixnum, Uname.uname.free_virtual_memory)
259
+ end
260
+
261
+ def test_install_date
262
+ assert_nothing_raised{ Uname.uname.install_date}
263
+ assert_kind_of(Time, Uname.uname.install_date)
264
+ end
265
+
266
+ # Not yet supported - WinXP or later only
267
+ #def test_large_system_cache
268
+ # assert_nothing_raised{ Uname.uname.large_system_cache}
269
+ # assert_kind_of(Time,Uname.uname.large_system_cache)
270
+ #end
271
+
272
+ def test_last_bootup_time
273
+ assert_nothing_raised{ Uname.uname.last_bootup_time}
274
+ assert_kind_of(Time, Uname.uname.last_bootup_time)
275
+ end
276
+
277
+ def test_local_date_time
278
+ assert_nothing_raised{ Uname.uname.local_date_time}
279
+ assert_kind_of(Time, Uname.uname.local_date_time)
280
+ end
281
+
282
+ def test_locale
283
+ assert_nothing_raised{ Uname.uname.locale}
284
+ assert_kind_of(String, Uname.uname.locale)
285
+ end
286
+
287
+ def test_manufacturer
288
+ assert_nothing_raised{ Uname.uname.manufacturer}
289
+ assert_kind_of(String, Uname.uname.manufacturer)
290
+ end
291
+
292
+ def test_max_number_of_processes
293
+ assert_nothing_raised{ Uname.uname.max_number_of_processes}
294
+ assert_kind_of(Fixnum, Uname.uname.max_number_of_processes)
295
+ end
296
+
297
+ def test_max_process_memory_size
298
+ assert_nothing_raised{ Uname.uname.max_process_memory_size}
299
+ assert_kind_of(Integer, Uname.uname.max_process_memory_size)
300
+ end
301
+
302
+ def test_name
303
+ assert_nothing_raised{ Uname.uname.name}
304
+ assert_kind_of(String, Uname.uname.name)
305
+ end
306
+
307
+ # Fails on Win XP Pro - returns nil - reason unknown
308
+ #def test_number_of_licensed_users
309
+ # assert_nothing_raised{ Uname.uname.number_of_licensed_users}
310
+ # assert_kind_of(Fixnum,Uname.uname.number_of_licensed_users)
311
+ #end
312
+
313
+ def test_number_of_processes
314
+ assert_nothing_raised{ Uname.uname.number_of_processes}
315
+ assert_kind_of(Fixnum, Uname.uname.number_of_processes)
316
+ end
317
+
318
+ def test_number_of_users
319
+ assert_nothing_raised{ Uname.uname.number_of_users}
320
+ assert_kind_of(Fixnum, Uname.uname.number_of_users)
321
+ end
322
+
323
+ def test_organization
324
+ assert_nothing_raised{ Uname.uname.organization}
325
+ assert_kind_of(String, Uname.uname.organization)
326
+ end
327
+
328
+ # Eventually replace Fixnum with a string (?)
329
+ def test_os_language
330
+ assert_nothing_raised{ Uname.uname.os_language}
331
+ assert_kind_of(Fixnum, Uname.uname.os_language)
332
+ end
333
+
334
+ # Fails on Win XP Pro - returns nil - reason unknown
335
+ #def test_os_product_suite
336
+ # assert_nothing_raised{ Uname.uname.os_product_suite}
337
+ # assert_kind_of(Fixnum,Uname.uname.os_product_suite)
338
+ #end
339
+
340
+ def test_os_type
341
+ assert_nothing_raised{ Uname.uname.os_type}
342
+ assert_kind_of(Fixnum, Uname.uname.os_type)
343
+ end
344
+
345
+ # Fails?
346
+ #def test_other_type_restriction
347
+ # assert_nothing_raised{ Uname.uname.other_type_restriction}
348
+ # assert_kind_of(Fixnum,Uname.uname.other_type_restriction)
349
+ #end
350
+
351
+ # Might be nil
352
+ def test_plus_product_id
353
+ assert_nothing_raised{ Uname.uname.plus_product_id }
354
+ end
355
+
356
+ # Might be nil
357
+ def test_plus_version_number
358
+ assert_nothing_raised{ Uname.uname.plus_version_number}
359
+ end
360
+
361
+ def test_primary
362
+ assert_nothing_raised{ Uname.uname.primary}
363
+ assert_boolean(Uname.uname.primary)
364
+ end
365
+
366
+ # Not yet supported - WinXP or later only
367
+ # def test_product_type
368
+ # assert_nothing_raised{ Uname.uname.product_type}
369
+ # assert_kind_of(Fixnum,Uname.uname.product_type)
370
+ # end
371
+
372
+ def test_quantum_length
373
+ assert_nothing_raised{ Uname.uname.quantum_length}
374
+ assert_kind_of(Fixnum, Uname.uname.quantum_length)
375
+ end
376
+
377
+ def test_quantum_type
378
+ assert_nothing_raised{ Uname.uname.quantum_type}
379
+ assert_kind_of(Fixnum, Uname.uname.quantum_type)
380
+ end
381
+
382
+ def test_registered_user
383
+ assert_nothing_raised{ Uname.uname.registered_user}
384
+ assert_kind_of(String, Uname.uname.registered_user)
385
+ end
386
+
387
+ def test_serial_number
388
+ assert_nothing_raised{ Uname.uname.serial_number}
389
+ assert_kind_of(String, Uname.uname.serial_number)
390
+ end
391
+
392
+ # This is nil on NT 4
393
+ def test_service_pack_major_version
394
+ assert_nothing_raised{ Uname.uname.service_pack_major_version}
395
+ assert_kind_of(Fixnum, Uname.uname.service_pack_major_version)
396
+ end
397
+
398
+ # This is nil on NT 4
399
+ def test_service_pack_minor_version
400
+ assert_nothing_raised{ Uname.uname.service_pack_minor_version}
401
+ assert_kind_of(Fixnum, Uname.uname.service_pack_minor_version)
402
+ end
403
+
404
+ def test_status
405
+ assert_nothing_raised{ Uname.uname.status}
406
+ assert_kind_of(String, Uname.uname.status)
407
+ end
408
+
409
+ # Not yet supported - WinXP or later only
410
+ #def test_suite_mask
411
+ # assert_nothing_raised{ Uname.uname.suite_mask}
412
+ # assert_kind_of(String,Uname.uname.suite_mask)
413
+ #end
414
+
415
+ def test_system_device
416
+ assert_nothing_raised{ Uname.uname.system_device}
417
+ assert_kind_of(String, Uname.uname.system_device)
418
+ end
419
+
420
+ def test_system_directory
421
+ assert_nothing_raised{ Uname.uname.system_directory}
422
+ assert_kind_of(String, Uname.uname.system_directory)
423
+ end
424
+
425
+ # Not yet supported - WinXP or later only
426
+ #def test_system_drive
427
+ # assert_nothing_raised{ Uname.uname.system_drive}
428
+ # assert_kind_of(String,Uname.uname.system_drive)
429
+ #end
430
+
431
+ # Fails on Win XP Pro - returns nil - reason unknown
432
+ #def test_total_swap_space_size
433
+ # assert_nothing_raised{ Uname.uname.total_swap_space_size}
434
+ # assert_kind_of(Fixnum,Uname.uname.total_swap_space_size)
435
+ #end
436
+
437
+ def test_total_virtual_memory_size
438
+ assert_nothing_raised{ Uname.uname.total_virtual_memory_size}
439
+ assert_kind_of(Fixnum, Uname.uname.total_virtual_memory_size)
440
+ end
441
+
442
+ def test_total_visible_memory_size
443
+ assert_nothing_raised{ Uname.uname.total_visible_memory_size}
444
+ assert_kind_of(Fixnum, Uname.uname.total_visible_memory_size)
445
+ end
446
+
447
+ def test_version
448
+ assert_nothing_raised{ Uname.uname.version}
449
+ assert_kind_of(String, Uname.uname.version)
450
+ end
451
+
452
+ def test_windows_directory
453
+ assert_nothing_raised{ Uname.uname.windows_directory}
454
+ assert_kind_of(String, Uname.uname.windows_directory)
455
+ end
456
+ end
457
+ end