nonnative 1.51.1 → 1.53.0

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
  SHA256:
3
- metadata.gz: 1b2f84dcef4f0274b78d6b719b9ebc448fef5c15a25e41df7d1b4c87cc5ddd31
4
- data.tar.gz: 7d1fc75bd501606f6222524726b3df93f7ccdde927a3459b08e0b23ed342b5b3
3
+ metadata.gz: 64af28e950a344ef821dbe75028136dc1d79a7fa6a6abfb388b4428e44e11d98
4
+ data.tar.gz: 15e4681afc473711a5b78329680636b3adb082517bd5b0adb5da11e9d8c8a552
5
5
  SHA512:
6
- metadata.gz: a8f0162cbb7b0e8728a06fc371ab9e31316ad79a1f09955e6f5a64e0d98863c586ed58c0b39b5ffc3bff63b63cf8413952d9fff9991f2d22acd0ab3343e144f5
7
- data.tar.gz: d8d1bd8ee57d0dc4b8f5de8e203883c4816e1a0193fbe296bc3684ba7252d1d0a39dae315886073b85928415ea03058bd060ad2acc092c7fd3a53b6c6f45d09f
6
+ metadata.gz: e5cb7c08078df70ca47d49941e29207594fbe1b118048e925c5c433265328f4e1792688f54a483d67ffc35745d46e7f1f6f7e94bcfbe632c18ba443e1bc0eae2
7
+ data.tar.gz: b1d4715e7557ef4e949a92c01acfaca7bff28ed56d3eda5bb6fa05249a945bb4790673e0aa7076ba00e4e376dccabb8b24f7524ed2536d7643a4b84813302354
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-3.0.0
1
+ ruby-3.0.2
data/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [1.53.0](https://github.com/alexfalkowski/nonnative/compare/v1.52.0...v1.53.0) (2021-10-11)
6
+
7
+
8
+ ### Features
9
+
10
+ * add ability to read process memory ([#98](https://github.com/alexfalkowski/nonnative/issues/98)) ([2139932](https://github.com/alexfalkowski/nonnative/commit/21399326bd342711a2cc98ab941cc3b8aaea6d56))
11
+
12
+ ## [1.52.0](https://github.com/alexfalkowski/nonnative/compare/v1.51.2...v1.52.0) (2021-09-21)
13
+
14
+
15
+ ### Features
16
+
17
+ * update ruby ([#96](https://github.com/alexfalkowski/nonnative/issues/96)) ([accdbb3](https://github.com/alexfalkowski/nonnative/commit/accdbb3e9837e2c25bedf966a84c52df4d65d2b7))
18
+
19
+ ### [1.51.2](https://github.com/alexfalkowski/nonnative/compare/v1.51.1...v1.51.2) (2021-08-16)
20
+
5
21
  ### [1.51.1](https://github.com/alexfalkowski/nonnative/compare/v1.51.0...v1.51.1) (2021-07-20)
6
22
 
7
23
 
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.51.1)
4
+ nonnative (1.53.0)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.5)
6
6
  cucumber (>= 7, < 8)
7
+ get_process_mem (~> 0.2.1)
7
8
  grpc (>= 1, < 2)
8
9
  grpc-tools (>= 1, < 2)
9
10
  puma (~> 5.0)
@@ -49,30 +50,32 @@ GEM
49
50
  cucumber-create-meta (6.0.1)
50
51
  cucumber-messages (~> 17.0, >= 17.0.1)
51
52
  sys-uname (~> 1.2, >= 1.2.2)
52
- cucumber-cucumber-expressions (12.1.1)
53
+ cucumber-cucumber-expressions (12.1.3)
53
54
  cucumber-gherkin (20.0.1)
54
55
  cucumber-messages (~> 17.0, >= 17.0.1)
55
56
  cucumber-html-formatter (16.0.1)
56
57
  cucumber-messages (~> 17.0, >= 17.0.1)
57
- cucumber-messages (17.0.1)
58
+ cucumber-messages (17.1.1)
58
59
  cucumber-tag-expressions (3.0.1)
59
- cucumber-wire (6.0.1)
60
+ cucumber-wire (6.1.1)
60
61
  cucumber-core (~> 10.0, >= 10.0.1)
61
- cucumber-cucumber-expressions (~> 12.1, >= 12.1.1)
62
+ cucumber-cucumber-expressions (~> 12.1, >= 12.1.2)
62
63
  cucumber-messages (~> 17.0, >= 17.0.1)
63
64
  diff-lcs (1.4.4)
64
65
  docile (1.4.0)
65
66
  domain_name (0.5.20190701)
66
67
  unf (>= 0.0.5, < 1.0.0)
67
68
  e2mmap (0.1.0)
68
- ffi (1.15.3)
69
- google-protobuf (3.17.3)
70
- googleapis-common-protos-types (1.1.0)
69
+ ffi (1.15.4)
70
+ get_process_mem (0.2.7)
71
+ ffi (~> 1.0)
72
+ google-protobuf (3.18.1)
73
+ googleapis-common-protos-types (1.2.0)
71
74
  google-protobuf (~> 3.14)
72
- grpc (1.38.0)
73
- google-protobuf (~> 3.15)
75
+ grpc (1.41.0)
76
+ google-protobuf (~> 3.17)
74
77
  googleapis-common-protos-types (~> 1.0)
75
- grpc-tools (1.38.0)
78
+ grpc-tools (1.41.0)
76
79
  http-accept (1.7.0)
77
80
  http-cookie (1.0.4)
78
81
  domain_name (~> 0.5)
@@ -84,20 +87,20 @@ GEM
84
87
  kramdown (~> 2.0)
85
88
  mime-types (3.3.1)
86
89
  mime-types-data (~> 3.2015)
87
- mime-types-data (3.2021.0704)
88
- mini_portile2 (2.5.3)
90
+ mime-types-data (3.2021.0901)
91
+ mini_portile2 (2.6.1)
89
92
  multi_test (0.1.2)
90
93
  mustermann (1.1.1)
91
94
  ruby2_keywords (~> 0.0.1)
92
95
  netrc (0.11.0)
93
- nio4r (2.5.7)
94
- nokogiri (1.11.7)
95
- mini_portile2 (~> 2.5.0)
96
+ nio4r (2.5.8)
97
+ nokogiri (1.12.5)
98
+ mini_portile2 (~> 2.6.1)
96
99
  racc (~> 1.4)
97
- parallel (1.20.1)
100
+ parallel (1.21.0)
98
101
  parser (3.0.2.0)
99
102
  ast (~> 2.4.1)
100
- puma (5.3.2)
103
+ puma (5.5.0)
101
104
  nio4r (~> 2.0)
102
105
  racc (1.5.2)
103
106
  rack (2.2.3)
@@ -131,16 +134,16 @@ GEM
131
134
  diff-lcs (>= 1.2.0, < 2.0)
132
135
  rspec-support (~> 3.10.0)
133
136
  rspec-support (3.10.2)
134
- rubocop (1.18.3)
137
+ rubocop (1.22.1)
135
138
  parallel (~> 1.10)
136
139
  parser (>= 3.0.0.0)
137
140
  rainbow (>= 2.2.2, < 4.0)
138
141
  regexp_parser (>= 1.8, < 3.0)
139
142
  rexml
140
- rubocop-ast (>= 1.7.0, < 2.0)
143
+ rubocop-ast (>= 1.12.0, < 2.0)
141
144
  ruby-progressbar (~> 1.7)
142
145
  unicode-display_width (>= 1.4.0, < 3.0)
143
- rubocop-ast (1.8.0)
146
+ rubocop-ast (1.12.0)
144
147
  parser (>= 3.0.1.1)
145
148
  ruby-progressbar (1.11.0)
146
149
  ruby2_keywords (0.0.5)
@@ -154,7 +157,7 @@ GEM
154
157
  rack (~> 2.2)
155
158
  rack-protection (= 2.1.0)
156
159
  tilt (~> 2.0)
157
- solargraph (0.42.4)
160
+ solargraph (0.44.0)
158
161
  backport (~> 1.2)
159
162
  benchmark
160
163
  bundler (>= 1.17.2)
@@ -180,8 +183,8 @@ GEM
180
183
  sync
181
184
  unf (0.1.4)
182
185
  unf_ext
183
- unf_ext (0.0.7.7)
184
- unicode-display_width (2.0.0)
186
+ unf_ext (0.0.8)
187
+ unicode-display_width (2.1.0)
185
188
  yard (0.9.26)
186
189
 
187
190
  PLATFORMS
@@ -191,8 +194,8 @@ DEPENDENCIES
191
194
  bundler (~> 2.2, >= 2.2.17)
192
195
  coveralls (~> 0.8.23)
193
196
  nonnative!
194
- rubocop (~> 1.16)
195
- solargraph (~> 0.41)
197
+ rubocop (~> 1.22, >= 1.22.1)
198
+ solargraph (~> 0.44.0)
196
199
 
197
200
  BUNDLED WITH
198
- 2.2.17
201
+ 2.2.22
data/README.md CHANGED
@@ -118,6 +118,12 @@ Nonnative.configure do |config|
118
118
  end
119
119
  ```
120
120
 
121
+ With cucumber you can also verify how much memory is used by the process:
122
+
123
+ ```cucumber
124
+ Then the process 'start_1' should consume '<=' '20mb' of memory
125
+ ```
126
+
121
127
  ### Servers
122
128
 
123
129
  A server is a dependency to some external API.
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Given('I set the proxy for process {string} to {string}') do |name, operation|
4
- server = Nonnative.pool.process_by_name(name)
5
- server.proxy.send(operation)
4
+ process = Nonnative.pool.process_by_name(name)
5
+ process.proxy.send(operation)
6
6
  end
7
7
 
8
8
  Given('I set the proxy for server {string} to {string}') do |name, operation|
@@ -16,8 +16,8 @@ Given('I set the proxy for service {string} to {string}') do |name, operation|
16
16
  end
17
17
 
18
18
  Then('I should reset the proxy for process {string}') do |name|
19
- server = Nonnative.pool.process_by_name(name)
20
- server.proxy.reset
19
+ process = Nonnative.pool.process_by_name(name)
20
+ process.proxy.reset
21
21
  end
22
22
 
23
23
  Then('I should reset the proxy for server {string}') do |name|
@@ -29,3 +29,23 @@ Then('I should reset the proxy for service {string}') do |name|
29
29
  service = Nonnative.pool.service_by_name(name)
30
30
  service.proxy.reset
31
31
  end
32
+
33
+ Then('the process {string} should consume {string} {string} of memory') do |name, op, mem|
34
+ process = Nonnative.pool.process_by_name(name)
35
+ _, size, type = mem.split(/(\d+)/)
36
+ actual = process.memory.send(type)
37
+ size = size.to_i
38
+
39
+ case op
40
+ when '='
41
+ expect(actual).to eq(size)
42
+ when '<'
43
+ expect(actual).to be < size
44
+ when '<='
45
+ expect(actual).to be <= size
46
+ when '>'
47
+ expect(actual).to be > size
48
+ when '>='
49
+ expect(actual).to be >= size
50
+ end
51
+ end
@@ -28,6 +28,12 @@ module Nonnative
28
28
  pid
29
29
  end
30
30
 
31
+ def memory
32
+ return if pid.nil?
33
+
34
+ @memory ||= GetProcessMem.new(pid)
35
+ end
36
+
31
37
  protected
32
38
 
33
39
  def wait_stop
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.51.1'
4
+ VERSION = '1.53.0'
5
5
  end
data/lib/nonnative.rb CHANGED
@@ -12,6 +12,7 @@ require 'puma'
12
12
  require 'puma/server'
13
13
  require 'concurrent'
14
14
  require 'cucumber'
15
+ require 'get_process_mem'
15
16
 
16
17
  require 'nonnative/version'
17
18
  require 'nonnative/error'
data/nonnative.gemspec CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
27
27
  spec.add_dependency 'cucumber', ['>= 7', '< 8']
28
+ spec.add_dependency 'get_process_mem', '~> 0.2.1'
28
29
  spec.add_dependency 'grpc', ['>= 1', '< 2']
29
30
  spec.add_dependency 'grpc-tools', ['>= 1', '< 2']
30
31
  spec.add_dependency 'puma', '~> 5.0'
@@ -35,6 +36,6 @@ Gem::Specification.new do |spec|
35
36
 
36
37
  spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.17'
37
38
  spec.add_development_dependency 'coveralls', '~> 0.8.23'
38
- spec.add_development_dependency 'rubocop', '~> 1.16'
39
- spec.add_development_dependency 'solargraph', '~> 0.41'
39
+ spec.add_development_dependency 'rubocop', '~> 1.22', '>= 1.22.1'
40
+ spec.add_development_dependency 'solargraph', '~> 0.44.0'
40
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.51.1
4
+ version: 1.53.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alejandro Falkowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-20 00:00:00.000000000 Z
11
+ date: 2021-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -50,6 +50,20 @@ dependencies:
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '8'
53
+ - !ruby/object:Gem::Dependency
54
+ name: get_process_mem
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: 0.2.1
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: 0.2.1
53
67
  - !ruby/object:Gem::Dependency
54
68
  name: grpc
55
69
  requirement: !ruby/object:Gem::Requirement
@@ -212,28 +226,34 @@ dependencies:
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: '1.16'
229
+ version: '1.22'
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 1.22.1
216
233
  type: :development
217
234
  prerelease: false
218
235
  version_requirements: !ruby/object:Gem::Requirement
219
236
  requirements:
220
237
  - - "~>"
221
238
  - !ruby/object:Gem::Version
222
- version: '1.16'
239
+ version: '1.22'
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: 1.22.1
223
243
  - !ruby/object:Gem::Dependency
224
244
  name: solargraph
225
245
  requirement: !ruby/object:Gem::Requirement
226
246
  requirements:
227
247
  - - "~>"
228
248
  - !ruby/object:Gem::Version
229
- version: '0.41'
249
+ version: 0.44.0
230
250
  type: :development
231
251
  prerelease: false
232
252
  version_requirements: !ruby/object:Gem::Requirement
233
253
  requirements:
234
254
  - - "~>"
235
255
  - !ruby/object:Gem::Version
236
- version: '0.41'
256
+ version: 0.44.0
237
257
  description: Allows you to keep using the power of ruby to test other systems
238
258
  email:
239
259
  - alexrfalkowski@gmail.com
@@ -317,7 +337,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
317
337
  - !ruby/object:Gem::Version
318
338
  version: '0'
319
339
  requirements: []
320
- rubygems_version: 3.2.3
340
+ rubygems_version: 3.2.22
321
341
  signing_key:
322
342
  specification_version: 4
323
343
  summary: Allows you to keep using the power of ruby to test other systems