nonnative 1.51.1 → 1.53.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.
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