sys-proctable 0.9.4-universal-linux → 0.9.5-universal-linux

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b95b8b54ca67965be1441a8fa1785779d795a61
4
- data.tar.gz: 2bf4bb6d874bb7b8445fff5e9f837b8b90a7ad1c
3
+ metadata.gz: 99bb7edbbd342331c80b1f70d99ec18c31adbadf
4
+ data.tar.gz: 90d82ed00cbdc63a9b28660314ef89f4eef2995f
5
5
  SHA512:
6
- metadata.gz: 980dd9158df1c7584c87e4709ce088e4d13051cca08f97a32f93ada464f642a59d35018b969b4de9a2325bcb93f89e9513734bf8dbbd887e407fd9a17e62aa53
7
- data.tar.gz: beb7199ebc95301a9f29d944e0cb06782192940b37a6ef5e2d671bf98255d2069b498ae5a95b7a9450458677e2945e885b7a2144bb2cd5d57f3009205286d8cd
6
+ metadata.gz: 56a5e9be9e450baff6d52ed8354ad963b62b30a6d06e23388bded5264188428443f24c3a7589b862926a621ee9cb162d56316e66a642feba4467571779d3ae6a
7
+ data.tar.gz: 78b4fbf16b223897686c2e9cfb9091d1ab125e011d7bba91a9f9d5ac8fca89b112ecad7a71d377ec6736b0f80619d894d3a918208f59d71c1acc8c2e2a58f8a9
data/CHANGES CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.9.5 - 10-Feb-2015
2
+ * Significant cleanup and memory reduction of the OSX code. Thanks go
3
+ to Ivan (toy) for the patches.
4
+ * Skip over /proc/<file>/status if unreadable on Linux. Thanks go to Jianjun
5
+ Mao for the patch.
6
+
1
7
  == 0.9.4 - 4-Mar-2014
2
8
  * Added support for AIX 5.3 or later courtesy of Rick Ohnemus.
3
9
  * The Solaris version now uses FFI structs instead of a packed array.
data/Rakefile CHANGED
@@ -174,6 +174,8 @@ namespace :gem do
174
174
  spec.files += ['lib/windows/sys/proctable.rb']
175
175
  spec.test_files << 'test/test_sys_proctable_windows.rb'
176
176
  end
177
+
178
+ spec.test_files << 'test/test_sys_top.rb'
177
179
 
178
180
  # https://github.com/rubygems/rubygems/issues/147
179
181
  spec.original_platform = spec.platform
@@ -11,7 +11,7 @@ module Sys
11
11
  private_class_method :new
12
12
 
13
13
  # The version of the sys-proctable library
14
- VERSION = '0.9.4'
14
+ VERSION = '0.9.5'
15
15
 
16
16
  private
17
17
 
@@ -211,17 +211,21 @@ module Sys
211
211
  struct.policy = stat[40].to_i
212
212
 
213
213
  # Get /proc/<pid>/status information (name, uid, euid, gid, egid)
214
- IO.foreach("/proc/#{file}/status") do |line|
215
- case line
216
- when /Name:\s*?(\w+)/
217
- struct.name = $1
218
- when /Uid:\s*?(\d+)\s*?(\d+)/
219
- struct.uid = $1.to_i
220
- struct.euid = $2.to_i
221
- when /Gid:\s*?(\d+)\s*?(\d+)/
222
- struct.gid = $1.to_i
223
- struct.egid = $2.to_i
214
+ begin
215
+ IO.foreach("/proc/#{file}/status") do |line|
216
+ case line
217
+ when /Name:\s*?(\w+)/
218
+ struct.name = $1
219
+ when /Uid:\s*?(\d+)\s*?(\d+)/
220
+ struct.uid = $1.to_i
221
+ struct.euid = $2.to_i
222
+ when /Gid:\s*?(\d+)\s*?(\d+)/
223
+ struct.gid = $1.to_i
224
+ struct.egid = $2.to_i
225
+ end
224
226
  end
227
+ rescue Errno::ESRCH, Errno::ENOENT
228
+ next
225
229
  end
226
230
 
227
231
  # If cmdline is empty use comm instead
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'sys-proctable'
5
- spec.version = '0.9.4'
5
+ spec.version = '0.9.5'
6
6
  spec.author = 'Daniel J. Berger'
7
7
  spec.license = 'Artistic 2.0'
8
8
  spec.email = 'djberg96@gmail.com'
@@ -19,7 +19,7 @@ class TC_ProcTable_All < Test::Unit::TestCase
19
19
  end
20
20
 
21
21
  def test_version
22
- assert_equal('0.9.4', ProcTable::VERSION)
22
+ assert_equal('0.9.5', ProcTable::VERSION)
23
23
  end
24
24
 
25
25
  def test_fields
@@ -71,6 +71,12 @@ class TC_ProcTable_All < Test::Unit::TestCase
71
71
  assert_kind_of(StandardError, Sys::ProcTable::Error.new)
72
72
  end
73
73
 
74
+ def test_from_thread
75
+ Thread.new do
76
+ Sys::ProcTable.ps
77
+ end.value
78
+ end
79
+
74
80
  def teardown
75
81
  @pid = nil
76
82
  end
@@ -42,7 +42,7 @@ class TC_ProcTable_Linux < Test::Unit::TestCase
42
42
 
43
43
  def test_exe
44
44
  assert_respond_to(@ptable, :exe)
45
- assert_kind_of(String, @ptable.exe)
45
+ assert_kind_of([NilClass, String], @ptable.exe)
46
46
  end
47
47
 
48
48
  def test_fd
@@ -52,7 +52,7 @@ class TC_ProcTable_Linux < Test::Unit::TestCase
52
52
 
53
53
  def test_root
54
54
  assert_respond_to(@ptable, :root)
55
- assert_kind_of(String, @ptable.root)
55
+ assert_kind_of([NilClass, String], @ptable.root)
56
56
  end
57
57
 
58
58
  def test_pid
@@ -97,7 +97,7 @@ class TC_ProcTable_Linux < Test::Unit::TestCase
97
97
 
98
98
  def test_flags
99
99
  assert_respond_to(@ptable, :flags)
100
- assert_kind_of(Fixnum, @ptable.flags)
100
+ assert_kind_of(Numeric, @ptable.flags)
101
101
  end
102
102
 
103
103
  def test_minflt
@@ -212,7 +212,7 @@ class TC_ProcTable_Linux < Test::Unit::TestCase
212
212
 
213
213
  def test_sigignore
214
214
  assert_respond_to(@ptable, :sigignore)
215
- assert_kind_of(Fixnum, @ptable.sigignore)
215
+ assert_kind_of(Numeric, @ptable.sigignore)
216
216
  end
217
217
 
218
218
  def test_sigcatch
@@ -227,17 +227,17 @@ class TC_ProcTable_Linux < Test::Unit::TestCase
227
227
 
228
228
  def test_nswap
229
229
  assert_respond_to(@ptable, :nswap)
230
- assert_kind_of(Fixnum, @ptable.nswap)
230
+ assert_kind_of(Numeric, @ptable.nswap)
231
231
  end
232
232
 
233
233
  def test_cnswap
234
234
  assert_respond_to(@ptable, :cnswap)
235
- assert_kind_of(Fixnum, @ptable.cnswap)
235
+ assert_kind_of(Numeric, @ptable.cnswap)
236
236
  end
237
237
 
238
238
  def test_exit_signal
239
239
  assert_respond_to(@ptable, :exit_signal)
240
- assert_kind_of(Fixnum, @ptable.exit_signal)
240
+ assert_kind_of(Numeric, @ptable.exit_signal)
241
241
  end
242
242
 
243
243
  def test_processor
@@ -0,0 +1,46 @@
1
+ ##############################################################################
2
+ # test_sys_top.rb
3
+ #
4
+ # Test suite for the sys-top library that is included with this distribution.
5
+ ##############################################################################
6
+ require 'rubygems'
7
+ gem 'test-unit'
8
+
9
+ require 'test/unit'
10
+ require 'sys/top'
11
+
12
+ class TC_Top < Test::Unit::TestCase
13
+ include Sys
14
+
15
+ def test_version
16
+ assert_equal('1.0.4', Top::VERSION)
17
+ end
18
+
19
+ def test_top_basic
20
+ assert_respond_to(Top, :top)
21
+ assert_nothing_raised{ Top.top }
22
+ assert_nothing_raised{ Top.top(5) }
23
+ assert_nothing_raised{ Top.top(5, 'cmdline') }
24
+ end
25
+
26
+ def test_top
27
+ assert_equal(10, Top.top.length)
28
+ assert_kind_of(Struct::ProcTableStruct, Top.top.first)
29
+ end
30
+
31
+ def test_top_with_size
32
+ assert_equal(5, Top.top(5).length)
33
+ end
34
+
35
+ def test_top_with_size_and_sort_by_field
36
+ assert_equal(5, Top.top(5, :cmdline).length)
37
+ end
38
+
39
+ def test_top_return_type
40
+ assert_kind_of(Array, Top.top)
41
+ end
42
+
43
+ def test_top_expected_errors
44
+ assert_raises(ArgumentError){ Top.top(1, 'foo', 2) }
45
+ end
46
+ end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-proctable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: universal-linux
6
6
  authors:
7
7
  - Daniel J. Berger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-04 00:00:00.000000000 Z
11
+ date: 2015-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: |2
@@ -65,6 +65,7 @@ files:
65
65
  - sys-proctable.gemspec
66
66
  - test/test_sys_proctable_all.rb
67
67
  - test/test_sys_proctable_linux.rb
68
+ - test/test_sys_top.rb
68
69
  homepage: http://www.rubyforge.org/projects/sysutils
69
70
  licenses:
70
71
  - Artistic 2.0
@@ -76,20 +77,21 @@ require_paths:
76
77
  - lib/linux
77
78
  required_ruby_version: !ruby/object:Gem::Requirement
78
79
  requirements:
79
- - - '>='
80
+ - - ">="
80
81
  - !ruby/object:Gem::Version
81
82
  version: '0'
82
83
  required_rubygems_version: !ruby/object:Gem::Requirement
83
84
  requirements:
84
- - - '>='
85
+ - - ">="
85
86
  - !ruby/object:Gem::Version
86
87
  version: '0'
87
88
  requirements: []
88
89
  rubyforge_project: sysutils
89
- rubygems_version: 2.2.2
90
+ rubygems_version: 2.4.5
90
91
  signing_key:
91
92
  specification_version: 4
92
93
  summary: An interface for providing process table information
93
94
  test_files:
94
95
  - test/test_sys_proctable_all.rb
95
96
  - test/test_sys_proctable_linux.rb
97
+ - test/test_sys_top.rb