sys-proctable 1.2.5 → 1.2.6
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGES.rdoc +9 -0
- data/MANIFEST.rdoc +10 -8
- data/Rakefile +1 -1
- data/lib/darwin/sys/proctable.rb +6 -2
- data/lib/linux/sys/proctable.rb +1 -1
- data/lib/sys/proctable/version.rb +1 -1
- data/spec/sys_proctable_all_spec.rb +1 -1
- data/spec/sys_proctable_darwin_spec.rb +20 -20
- data/sys-proctable.gemspec +1 -1
- metadata +6 -7
- metadata.gz.sig +0 -0
- data/spec/spec_helper.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67e97600844b87fee76e66de7ca9ce8dc437c4b0e37d8760a1a1211629ca0ad4
|
4
|
+
data.tar.gz: 8f3940b17936f4fa4fdcbaae499728d54a0d20160f320021882435dc42fa8e1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d9abfefc12b38b3e9961aaed71e4c0cf220418d6e719e945bcb72fe0d66a9782375ad860bb9f9dd37cedb5aefa410d689cdc97cfeb8ecc9f61e9c6eecf6fcf1
|
7
|
+
data.tar.gz: b1bb3b2a1fad203879b6a3c79066e730c074e9b6a5c090da0abdaebe86e4648dbccf07955c27e575ea52aa0c38acc08ae781754ee68dc50c8527f7c054433c56
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGES.rdoc
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 1.2.6 - 25-Aug-2020
|
2
|
+
* Made some updates so that it worked properly with TruffleRuby on Mac.
|
3
|
+
* Fixed an issue on Linux where non-ascii environ strings could cause failure.
|
4
|
+
Thanks go to deemytch for the spot and original patch.
|
5
|
+
* Removed the spec_helper.rb file, just use Process.spawn instead of messing
|
6
|
+
around with custom fork implementations. This also helps with implementations
|
7
|
+
that don't support fork.
|
8
|
+
* Updated the MANIFEST.
|
9
|
+
|
1
10
|
== 1.2.5 - 19-Jun-2020
|
2
11
|
* Added the delayacct_blkio_ticks, guest_time, and cguest_time fields on Linux.
|
3
12
|
These require 2.6.18 or later, but will simply be nil on earlier versions.
|
data/MANIFEST.rdoc
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
* benchmarks/bench_ips_ps.rb
|
9
9
|
* example/example_ps.rb
|
10
10
|
* lib/sys-proctable.rb
|
11
|
+
* lib/sys-top.rb
|
12
|
+
* lib/sys/proctable.rb
|
11
13
|
* lib/sys/top.rb
|
12
14
|
* lib/sys/proctable/version.rb
|
13
15
|
* lib/aix/sys/proctable.rb
|
@@ -16,11 +18,11 @@
|
|
16
18
|
* lib/linux/sys/proctable.rb
|
17
19
|
* lib/sunos/sys/proctable.rb
|
18
20
|
* lib/windows/sys/proctable.rb
|
19
|
-
*
|
20
|
-
*
|
21
|
-
*
|
22
|
-
*
|
23
|
-
*
|
24
|
-
*
|
25
|
-
*
|
26
|
-
*
|
21
|
+
* spec/sys_proctable_aix_spec.rb
|
22
|
+
* spec/sys_proctable_all_spec.rb
|
23
|
+
* spec/sys_proctable_darwin_spec.rb
|
24
|
+
* spec/sys_proctable_freebsd_spec.rb
|
25
|
+
* spec/sys_proctable_linux_spec.rb
|
26
|
+
* spec/sys_proctable_sunos_spec.rb
|
27
|
+
* spec/sys_proctable_windows_spec.rb
|
28
|
+
* spec/sys_top_spec.rb
|
data/Rakefile
CHANGED
@@ -51,7 +51,7 @@ end
|
|
51
51
|
|
52
52
|
desc 'Run the test suite for the sys-proctable library'
|
53
53
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
54
|
-
t.pattern = ['spec/
|
54
|
+
t.pattern = ['spec/sys_proctable_all_spec.rb']
|
55
55
|
|
56
56
|
case CONFIG['host_os']
|
57
57
|
when /aix/i
|
data/lib/darwin/sys/proctable.rb
CHANGED
@@ -26,9 +26,13 @@ module Sys
|
|
26
26
|
MAXTHREADNAMESIZE = 64
|
27
27
|
PROC_PIDPATHINFO_MAXSIZE = MAXPATHLEN * 4
|
28
28
|
|
29
|
-
# JRuby on Mac
|
29
|
+
# JRuby/Truffleruby on Mac
|
30
30
|
unless defined? FFI::StructLayout::CharArray
|
31
|
-
|
31
|
+
if defined? FFI::StructLayout::CharArrayProxy
|
32
|
+
FFI::StructLayout::CharArray = FFI::StructLayout::CharArrayProxy
|
33
|
+
else
|
34
|
+
FFI::StructLayout::CharArray = FFI::Struct::CharArray
|
35
|
+
end
|
32
36
|
end
|
33
37
|
|
34
38
|
class ProcBsdInfo < FFI::Struct
|
data/lib/linux/sys/proctable.rb
CHANGED
@@ -146,7 +146,7 @@ module Sys
|
|
146
146
|
struct.environ = {}
|
147
147
|
|
148
148
|
begin
|
149
|
-
IO.read("/proc/#{file}/environ").split("\0").each{ |str|
|
149
|
+
IO.read("/proc/#{file}/environ").force_encoding("UTF-8").split("\0").each{ |str|
|
150
150
|
key, value = str.split('=')
|
151
151
|
struct.environ[key] = value
|
152
152
|
}
|
@@ -21,8 +21,8 @@ describe Sys::ProcTable do
|
|
21
21
|
}
|
22
22
|
|
23
23
|
before(:all) do
|
24
|
-
@pid1 =
|
25
|
-
@pid2 =
|
24
|
+
@pid1 = Process.spawn({'A' => 'B', 'Z' => nil}, "sleep 60")
|
25
|
+
@pid2 = Process.spawn("ruby", "-Ilib", "-e", "sleep \'120\'.to_i", "--", "foo bar")
|
26
26
|
sleep 1 # wait to make sure env is replaced by sleep
|
27
27
|
end
|
28
28
|
|
@@ -38,7 +38,7 @@ describe Sys::ProcTable do
|
|
38
38
|
|
39
39
|
it "returns the expected results for the fields method" do
|
40
40
|
expect(described_class.fields).to be_kind_of(Array)
|
41
|
-
expect(described_class.fields).to
|
41
|
+
expect(described_class.fields).to eq(fields)
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -48,72 +48,72 @@ describe Sys::ProcTable do
|
|
48
48
|
it "contains a pid member and returns the expected value" do
|
49
49
|
expect(subject).to respond_to(:pid)
|
50
50
|
expect(subject.pid).to be_kind_of(Numeric)
|
51
|
-
expect(subject.pid).to
|
51
|
+
expect(subject.pid).to eq(@pid1)
|
52
52
|
end
|
53
53
|
|
54
54
|
it "contains a ppid member and returns the expected value" do
|
55
55
|
expect(subject).to respond_to(:ppid)
|
56
56
|
expect(subject.ppid).to be_kind_of(Numeric)
|
57
|
-
expect(subject.ppid).to
|
57
|
+
expect(subject.ppid).to eq(Process.pid)
|
58
58
|
end
|
59
59
|
|
60
60
|
it "contains a pgid member and returns the expected value" do
|
61
61
|
expect(subject).to respond_to(:pgid)
|
62
62
|
expect(subject.pgid).to be_kind_of(Numeric)
|
63
|
-
expect(subject.pgid).to
|
63
|
+
expect(subject.pgid).to eq(Process.getpgrp)
|
64
64
|
end
|
65
65
|
|
66
66
|
it "contains a ruid member and returns the expected value" do
|
67
67
|
expect(subject).to respond_to(:ruid)
|
68
68
|
expect(subject.ruid).to be_kind_of(Numeric)
|
69
|
-
expect(subject.ruid).to
|
69
|
+
expect(subject.ruid).to eq(Process.uid)
|
70
70
|
end
|
71
71
|
|
72
72
|
it "contains an rgid member and returns the expected value" do
|
73
73
|
expect(subject).to respond_to(:rgid)
|
74
74
|
expect(subject.rgid).to be_kind_of(Numeric)
|
75
|
-
expect(subject.rgid).to
|
75
|
+
expect(subject.rgid).to eq(Process.gid)
|
76
76
|
end
|
77
77
|
|
78
78
|
it "contains an svuid member and returns the expected value" do
|
79
79
|
expect(subject).to respond_to(:svuid)
|
80
80
|
expect(subject.svuid).to be_kind_of(Numeric)
|
81
|
-
expect(subject.svuid).to
|
81
|
+
expect(subject.svuid).to eq(Process.uid)
|
82
82
|
end
|
83
83
|
|
84
84
|
it "contains an svgid member and returns the expected value" do
|
85
85
|
expect(subject).to respond_to(:svgid)
|
86
86
|
expect(subject.svgid).to be_kind_of(Numeric)
|
87
|
-
expect(subject.svgid).to
|
87
|
+
expect(subject.svgid).to eq(Process.gid)
|
88
88
|
end
|
89
89
|
|
90
|
-
it "contains a comm member and returns the expected value"
|
90
|
+
it "contains a comm member and returns the expected value" do
|
91
91
|
expect(subject).to respond_to(:comm)
|
92
92
|
expect(subject.comm).to be_kind_of(String)
|
93
|
-
expect(subject.comm).to
|
93
|
+
expect(subject.comm).to eq('sleep')
|
94
94
|
end
|
95
95
|
|
96
|
-
it "contains a cmdline member and returns the expected value"
|
96
|
+
it "contains a cmdline member and returns the expected value" do
|
97
97
|
expect(subject).to respond_to(:cmdline)
|
98
98
|
expect(subject.cmdline).to be_kind_of(String)
|
99
|
-
expect(subject.cmdline).to
|
99
|
+
expect(subject.cmdline).to eq('sleep 60')
|
100
100
|
end
|
101
101
|
|
102
|
-
it "returns a string with the expected arguments for the cmdline member"
|
102
|
+
it "returns a string with the expected arguments for the cmdline member" do
|
103
103
|
ptable = Sys::ProcTable.ps(pid: @pid2)
|
104
|
-
expect(ptable.cmdline).to
|
104
|
+
expect(ptable.cmdline).to eq('ruby -Ilib -e sleep \'120\'.to_i -- foo bar')
|
105
105
|
end
|
106
106
|
|
107
|
-
it "contains an exe member and returns the expected value"
|
107
|
+
it "contains an exe member and returns the expected value" do
|
108
108
|
expect(subject).to respond_to(:exe)
|
109
109
|
expect(subject.exe).to be_kind_of(String)
|
110
|
-
expect(subject.exe).to
|
110
|
+
expect(subject.exe).to eq(`which sleep`.chomp)
|
111
111
|
end
|
112
112
|
|
113
|
-
it "contains an environ member and returns the expected value"
|
113
|
+
it "contains an environ member and returns the expected value" do
|
114
114
|
expect(subject).to respond_to(:environ)
|
115
115
|
expect(subject.environ).to be_kind_of(Hash)
|
116
|
-
expect(subject.environ['A']).to
|
116
|
+
expect(subject.environ['A']).to eq('B')
|
117
117
|
expect(subject.environ['Z']).to be_nil
|
118
118
|
end
|
119
119
|
end
|
data/sys-proctable.gemspec
CHANGED
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sys-proctable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
|
36
36
|
WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date:
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: ffi
|
@@ -125,7 +125,7 @@ metadata:
|
|
125
125
|
documentation_uri: https://github.com/djberg96/sys-proctable/wiki
|
126
126
|
source_code_uri: https://github.com/djberg96/sys-proctable
|
127
127
|
wiki_uri: https://github.com/djberg96/sys-proctable/wiki
|
128
|
-
post_install_message:
|
128
|
+
post_install_message:
|
129
129
|
rdoc_options: []
|
130
130
|
require_paths:
|
131
131
|
- lib
|
@@ -140,12 +140,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
|
-
rubygems_version: 3.
|
144
|
-
signing_key:
|
143
|
+
rubygems_version: 3.1.4
|
144
|
+
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: An interface for providing process table information
|
147
147
|
test_files:
|
148
|
-
- spec/spec_helper.rb
|
149
148
|
- spec/sys_proctable_aix_spec.rb
|
150
149
|
- spec/sys_proctable_all_spec.rb
|
151
150
|
- spec/sys_proctable_darwin_spec.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/spec/spec_helper.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
RSpec.configure do |config|
|
2
|
-
config.filter_run_excluding :skip_jruby if RUBY_PLATFORM == 'java'
|
3
|
-
end
|
4
|
-
|
5
|
-
if RUBY_PLATFORM == 'java'
|
6
|
-
require 'ffi'
|
7
|
-
module Exec
|
8
|
-
extend FFI::Library
|
9
|
-
ffi_lib FFI::Library::LIBC
|
10
|
-
attach_function :fork, [], :int
|
11
|
-
end
|
12
|
-
|
13
|
-
def fork
|
14
|
-
pid = Exec.fork
|
15
|
-
if pid == 0
|
16
|
-
yield if block_given?
|
17
|
-
return nil
|
18
|
-
else
|
19
|
-
return pid
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|