nonnative 1.46.0 → 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 +4 -4
- data/.circleci/config.yml +2 -2
- data/.rubocop.yml +2 -2
- data/.ruby-version +1 -1
- data/CHANGELOG.md +60 -0
- data/Gemfile.lock +60 -76
- data/README.md +13 -2
- data/lib/nonnative/configuration.rb +1 -2
- data/lib/nonnative/configuration_process.rb +1 -1
- data/lib/nonnative/configuration_runner.rb +1 -1
- data/lib/nonnative/configuration_server.rb +1 -1
- data/lib/nonnative/cucumber.rb +24 -4
- data/lib/nonnative/process.rb +17 -2
- data/lib/nonnative/runner.rb +1 -2
- data/lib/nonnative/server.rb +7 -1
- data/lib/nonnative/version.rb +1 -1
- data/lib/nonnative.rb +1 -0
- data/nonnative.gemspec +6 -5
- metadata +37 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 64af28e950a344ef821dbe75028136dc1d79a7fa6a6abfb388b4428e44e11d98
|
|
4
|
+
data.tar.gz: 15e4681afc473711a5b78329680636b3adb082517bd5b0adb5da11e9d8c8a552
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e5cb7c08078df70ca47d49941e29207594fbe1b118048e925c5c433265328f4e1792688f54a483d67ffc35745d46e7f1f6f7e94bcfbe632c18ba443e1bc0eae2
|
|
7
|
+
data.tar.gz: b1d4715e7557ef4e949a92c01acfaca7bff28ed56d3eda5bb6fa05249a945bb4790673e0aa7076ba00e4e376dccabb8b24f7524ed2536d7643a4b84813302354
|
data/.circleci/config.yml
CHANGED
|
@@ -3,7 +3,7 @@ version: 2.1
|
|
|
3
3
|
jobs:
|
|
4
4
|
build:
|
|
5
5
|
docker:
|
|
6
|
-
- image: alexfalkowski/ruby:
|
|
6
|
+
- image: alexfalkowski/ruby:3.0
|
|
7
7
|
steps:
|
|
8
8
|
- checkout
|
|
9
9
|
- restore_cache:
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
- image: alexfalkowski/release:2.0
|
|
29
29
|
steps:
|
|
30
30
|
- checkout
|
|
31
|
-
- run: release
|
|
31
|
+
- run: release
|
|
32
32
|
|
|
33
33
|
workflows:
|
|
34
34
|
nonnative:
|
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-
|
|
1
|
+
ruby-3.0.2
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,66 @@
|
|
|
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
|
+
|
|
21
|
+
### [1.51.1](https://github.com/alexfalkowski/nonnative/compare/v1.51.0...v1.51.1) (2021-07-20)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
* to version 1.51.1 ([#94](https://github.com/alexfalkowski/nonnative/issues/94)) ([06e2199](https://github.com/alexfalkowski/nonnative/commit/06e21997f1a18ebf40eb3db92b55a5af8f45b50f))
|
|
27
|
+
|
|
28
|
+
## [1.51.0](https://github.com/alexfalkowski/nonnative/compare/v1.50.1...v1.51.0) (2021-07-20)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* **deps:** update cucumber to 7.0.0 ([#93](https://github.com/alexfalkowski/nonnative/issues/93)) ([996c014](https://github.com/alexfalkowski/nonnative/commit/996c014eb843950b62febfc4fbd3f82c959c42ae))
|
|
34
|
+
|
|
35
|
+
### [1.50.1](https://github.com/alexfalkowski/nonnative/compare/v1.50.0...v1.50.1) (2021-07-19)
|
|
36
|
+
|
|
37
|
+
## [1.50.0](https://github.com/alexfalkowski/nonnative/compare/v1.49.0...v1.50.0) (2021-06-06)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Features
|
|
41
|
+
|
|
42
|
+
* **deps:** update ([#91](https://github.com/alexfalkowski/nonnative/issues/91)) ([9817716](https://github.com/alexfalkowski/nonnative/commit/9817716fdf27da6af5713d0a8847a64a62f978dd))
|
|
43
|
+
|
|
44
|
+
## [1.49.0](https://github.com/alexfalkowski/nonnative/compare/v1.48.0...v1.49.0) (2021-05-28)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Features
|
|
48
|
+
|
|
49
|
+
* **deps:** update ([#90](https://github.com/alexfalkowski/nonnative/issues/90)) ([2644345](https://github.com/alexfalkowski/nonnative/commit/2644345e8f735276e778e3e977514b3b047c7c01))
|
|
50
|
+
|
|
51
|
+
## [1.48.0](https://github.com/alexfalkowski/nonnative/compare/v1.47.0...v1.48.0) (2021-05-15)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Features
|
|
55
|
+
|
|
56
|
+
* **deps:** update to ruby version 3.0.0 ([#89](https://github.com/alexfalkowski/nonnative/issues/89)) ([e2b37bf](https://github.com/alexfalkowski/nonnative/commit/e2b37bfc6e6dd922258cc1d1bc5b6abc4d78fd02))
|
|
57
|
+
|
|
58
|
+
## [1.47.0](https://github.com/alexfalkowski/nonnative/compare/v1.46.0...v1.47.0) (2021-05-14)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Features
|
|
62
|
+
|
|
63
|
+
* allow to pass env variables to processes ([#88](https://github.com/alexfalkowski/nonnative/issues/88)) ([4401a77](https://github.com/alexfalkowski/nonnative/commit/4401a776ccc50dbefa45b06de01945abf4724864))
|
|
64
|
+
|
|
5
65
|
## [1.46.0](https://github.com/alexfalkowski/nonnative/compare/v1.45.0...v1.46.0) (2021-05-10)
|
|
6
66
|
|
|
7
67
|
|
data/Gemfile.lock
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
nonnative (1.
|
|
4
|
+
nonnative (1.53.0)
|
|
5
5
|
concurrent-ruby (~> 1.0, >= 1.0.5)
|
|
6
|
-
cucumber (>=
|
|
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)
|
|
@@ -15,105 +16,91 @@ PATH
|
|
|
15
16
|
GEM
|
|
16
17
|
remote: https://rubygems.org/
|
|
17
18
|
specs:
|
|
18
|
-
activesupport (6.1.3.2)
|
|
19
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
20
|
-
i18n (>= 1.6, < 2)
|
|
21
|
-
minitest (>= 5.1)
|
|
22
|
-
tzinfo (~> 2.0)
|
|
23
|
-
zeitwerk (~> 2.3)
|
|
24
19
|
ast (2.4.2)
|
|
25
|
-
backport (1.
|
|
20
|
+
backport (1.2.0)
|
|
26
21
|
benchmark (0.1.1)
|
|
27
22
|
benchmark-malloc (0.2.0)
|
|
28
23
|
benchmark-perf (0.6.0)
|
|
29
24
|
benchmark-trend (0.4.0)
|
|
30
25
|
builder (3.2.4)
|
|
31
|
-
concurrent-ruby (1.1.
|
|
26
|
+
concurrent-ruby (1.1.9)
|
|
32
27
|
coveralls (0.8.23)
|
|
33
28
|
json (>= 1.8, < 3)
|
|
34
29
|
simplecov (~> 0.16.1)
|
|
35
30
|
term-ansicolor (~> 1.3)
|
|
36
31
|
thor (>= 0.19.4, < 2.0)
|
|
37
32
|
tins (~> 1.6)
|
|
38
|
-
cucumber (
|
|
33
|
+
cucumber (7.0.0)
|
|
39
34
|
builder (~> 3.2, >= 3.2.4)
|
|
40
|
-
cucumber-core (~>
|
|
41
|
-
cucumber-create-meta (~>
|
|
35
|
+
cucumber-core (~> 10.0, >= 10.0.1)
|
|
36
|
+
cucumber-create-meta (~> 6.0, >= 6.0.1)
|
|
42
37
|
cucumber-cucumber-expressions (~> 12.1, >= 12.1.1)
|
|
43
|
-
cucumber-gherkin (~>
|
|
44
|
-
cucumber-html-formatter (~>
|
|
45
|
-
cucumber-messages (~>
|
|
46
|
-
cucumber-wire (~>
|
|
38
|
+
cucumber-gherkin (~> 20.0, >= 20.0.1)
|
|
39
|
+
cucumber-html-formatter (~> 16.0, >= 16.0.1)
|
|
40
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
|
41
|
+
cucumber-wire (~> 6.0, >= 6.0.1)
|
|
47
42
|
diff-lcs (~> 1.4, >= 1.4.4)
|
|
48
43
|
mime-types (~> 3.3, >= 3.3.1)
|
|
49
44
|
multi_test (~> 0.1, >= 0.1.2)
|
|
50
45
|
sys-uname (~> 1.2, >= 1.2.2)
|
|
51
|
-
cucumber-core (
|
|
52
|
-
cucumber-gherkin (~>
|
|
53
|
-
cucumber-messages (~>
|
|
46
|
+
cucumber-core (10.0.1)
|
|
47
|
+
cucumber-gherkin (~> 20.0, >= 20.0.1)
|
|
48
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
|
54
49
|
cucumber-tag-expressions (~> 3.0, >= 3.0.1)
|
|
55
|
-
cucumber-create-meta (
|
|
56
|
-
cucumber-messages (~>
|
|
50
|
+
cucumber-create-meta (6.0.1)
|
|
51
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
|
57
52
|
sys-uname (~> 1.2, >= 1.2.2)
|
|
58
|
-
cucumber-cucumber-expressions (12.1.
|
|
59
|
-
cucumber-gherkin (
|
|
60
|
-
cucumber-messages (~>
|
|
61
|
-
cucumber-html-formatter (
|
|
62
|
-
cucumber-messages (~>
|
|
63
|
-
cucumber-messages (
|
|
64
|
-
protobuf-cucumber (~> 3.10, >= 3.10.8)
|
|
53
|
+
cucumber-cucumber-expressions (12.1.3)
|
|
54
|
+
cucumber-gherkin (20.0.1)
|
|
55
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
|
56
|
+
cucumber-html-formatter (16.0.1)
|
|
57
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
|
58
|
+
cucumber-messages (17.1.1)
|
|
65
59
|
cucumber-tag-expressions (3.0.1)
|
|
66
|
-
cucumber-wire (
|
|
67
|
-
cucumber-core (~>
|
|
68
|
-
cucumber-cucumber-expressions (~> 12.1, >= 12.1.
|
|
69
|
-
cucumber-messages (~>
|
|
60
|
+
cucumber-wire (6.1.1)
|
|
61
|
+
cucumber-core (~> 10.0, >= 10.0.1)
|
|
62
|
+
cucumber-cucumber-expressions (~> 12.1, >= 12.1.2)
|
|
63
|
+
cucumber-messages (~> 17.0, >= 17.0.1)
|
|
70
64
|
diff-lcs (1.4.4)
|
|
71
|
-
docile (1.
|
|
65
|
+
docile (1.4.0)
|
|
72
66
|
domain_name (0.5.20190701)
|
|
73
67
|
unf (>= 0.0.5, < 1.0.0)
|
|
74
68
|
e2mmap (0.1.0)
|
|
75
|
-
ffi (1.15.
|
|
76
|
-
|
|
77
|
-
|
|
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)
|
|
78
74
|
google-protobuf (~> 3.14)
|
|
79
|
-
grpc (1.
|
|
80
|
-
google-protobuf (~> 3.
|
|
75
|
+
grpc (1.41.0)
|
|
76
|
+
google-protobuf (~> 3.17)
|
|
81
77
|
googleapis-common-protos-types (~> 1.0)
|
|
82
|
-
grpc-tools (1.
|
|
78
|
+
grpc-tools (1.41.0)
|
|
83
79
|
http-accept (1.7.0)
|
|
84
|
-
http-cookie (1.0.
|
|
80
|
+
http-cookie (1.0.4)
|
|
85
81
|
domain_name (~> 0.5)
|
|
86
|
-
i18n (1.8.10)
|
|
87
|
-
concurrent-ruby (~> 1.0)
|
|
88
82
|
jaro_winkler (1.5.4)
|
|
89
83
|
json (2.5.1)
|
|
90
84
|
kramdown (2.3.1)
|
|
91
85
|
rexml
|
|
92
86
|
kramdown-parser-gfm (1.1.0)
|
|
93
87
|
kramdown (~> 2.0)
|
|
94
|
-
middleware (0.1.0)
|
|
95
88
|
mime-types (3.3.1)
|
|
96
89
|
mime-types-data (~> 3.2015)
|
|
97
|
-
mime-types-data (3.2021.
|
|
98
|
-
mini_portile2 (2.
|
|
99
|
-
minitest (5.14.4)
|
|
90
|
+
mime-types-data (3.2021.0901)
|
|
91
|
+
mini_portile2 (2.6.1)
|
|
100
92
|
multi_test (0.1.2)
|
|
101
93
|
mustermann (1.1.1)
|
|
102
94
|
ruby2_keywords (~> 0.0.1)
|
|
103
95
|
netrc (0.11.0)
|
|
104
|
-
nio4r (2.5.
|
|
105
|
-
nokogiri (1.
|
|
106
|
-
mini_portile2 (~> 2.
|
|
96
|
+
nio4r (2.5.8)
|
|
97
|
+
nokogiri (1.12.5)
|
|
98
|
+
mini_portile2 (~> 2.6.1)
|
|
107
99
|
racc (~> 1.4)
|
|
108
|
-
parallel (1.
|
|
109
|
-
parser (3.0.
|
|
100
|
+
parallel (1.21.0)
|
|
101
|
+
parser (3.0.2.0)
|
|
110
102
|
ast (~> 2.4.1)
|
|
111
|
-
|
|
112
|
-
activesupport (>= 3.2)
|
|
113
|
-
middleware
|
|
114
|
-
thor
|
|
115
|
-
thread_safe
|
|
116
|
-
puma (5.3.0)
|
|
103
|
+
puma (5.5.0)
|
|
117
104
|
nio4r (~> 2.0)
|
|
118
105
|
racc (1.5.2)
|
|
119
106
|
rack (2.2.3)
|
|
@@ -147,19 +134,19 @@ GEM
|
|
|
147
134
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
148
135
|
rspec-support (~> 3.10.0)
|
|
149
136
|
rspec-support (3.10.2)
|
|
150
|
-
rubocop (1.
|
|
137
|
+
rubocop (1.22.1)
|
|
151
138
|
parallel (~> 1.10)
|
|
152
139
|
parser (>= 3.0.0.0)
|
|
153
140
|
rainbow (>= 2.2.2, < 4.0)
|
|
154
141
|
regexp_parser (>= 1.8, < 3.0)
|
|
155
142
|
rexml
|
|
156
|
-
rubocop-ast (>= 1.
|
|
143
|
+
rubocop-ast (>= 1.12.0, < 2.0)
|
|
157
144
|
ruby-progressbar (~> 1.7)
|
|
158
145
|
unicode-display_width (>= 1.4.0, < 3.0)
|
|
159
|
-
rubocop-ast (1.
|
|
146
|
+
rubocop-ast (1.12.0)
|
|
160
147
|
parser (>= 3.0.1.1)
|
|
161
148
|
ruby-progressbar (1.11.0)
|
|
162
|
-
ruby2_keywords (0.0.
|
|
149
|
+
ruby2_keywords (0.0.5)
|
|
163
150
|
simplecov (0.16.1)
|
|
164
151
|
docile (~> 1.1)
|
|
165
152
|
json (>= 1.8, < 3)
|
|
@@ -170,10 +157,11 @@ GEM
|
|
|
170
157
|
rack (~> 2.2)
|
|
171
158
|
rack-protection (= 2.1.0)
|
|
172
159
|
tilt (~> 2.0)
|
|
173
|
-
solargraph (0.
|
|
174
|
-
backport (~> 1.
|
|
160
|
+
solargraph (0.44.0)
|
|
161
|
+
backport (~> 1.2)
|
|
175
162
|
benchmark
|
|
176
163
|
bundler (>= 1.17.2)
|
|
164
|
+
diff-lcs (~> 1.4)
|
|
177
165
|
e2mmap
|
|
178
166
|
jaro_winkler (~> 1.5)
|
|
179
167
|
kramdown (~> 2.3)
|
|
@@ -189,29 +177,25 @@ GEM
|
|
|
189
177
|
ffi (~> 1.1)
|
|
190
178
|
term-ansicolor (1.7.1)
|
|
191
179
|
tins (~> 1.0)
|
|
192
|
-
thor (1.0
|
|
193
|
-
thread_safe (0.3.6)
|
|
180
|
+
thor (1.1.0)
|
|
194
181
|
tilt (2.0.10)
|
|
195
|
-
tins (1.
|
|
182
|
+
tins (1.29.1)
|
|
196
183
|
sync
|
|
197
|
-
tzinfo (2.0.4)
|
|
198
|
-
concurrent-ruby (~> 1.0)
|
|
199
184
|
unf (0.1.4)
|
|
200
185
|
unf_ext
|
|
201
|
-
unf_ext (0.0.
|
|
202
|
-
unicode-display_width (2.
|
|
186
|
+
unf_ext (0.0.8)
|
|
187
|
+
unicode-display_width (2.1.0)
|
|
203
188
|
yard (0.9.26)
|
|
204
|
-
zeitwerk (2.4.2)
|
|
205
189
|
|
|
206
190
|
PLATFORMS
|
|
207
191
|
ruby
|
|
208
192
|
|
|
209
193
|
DEPENDENCIES
|
|
210
|
-
bundler (~> 2.
|
|
194
|
+
bundler (~> 2.2, >= 2.2.17)
|
|
211
195
|
coveralls (~> 0.8.23)
|
|
212
196
|
nonnative!
|
|
213
|
-
rubocop (~> 1.
|
|
214
|
-
solargraph (~> 0.
|
|
197
|
+
rubocop (~> 1.22, >= 1.22.1)
|
|
198
|
+
solargraph (~> 0.44.0)
|
|
215
199
|
|
|
216
200
|
BUNDLED WITH
|
|
217
|
-
2.
|
|
201
|
+
2.2.22
|
data/README.md
CHANGED
|
@@ -69,7 +69,10 @@ Nonnative.configure do |config|
|
|
|
69
69
|
p.timeout = config.strategy.timeout
|
|
70
70
|
p.port = 12_321
|
|
71
71
|
p.log = 'features/logs/12_321.log'
|
|
72
|
-
p.signal = 'INT' # Possible values are described in Signal.list.keys
|
|
72
|
+
p.signal = 'INT' # Possible values are described in Signal.list.keys.
|
|
73
|
+
p.environment = { # Pass environment variables to process.
|
|
74
|
+
'TEST' => 'true'
|
|
75
|
+
}
|
|
73
76
|
end
|
|
74
77
|
|
|
75
78
|
config.process do |p|
|
|
@@ -94,7 +97,9 @@ processes:
|
|
|
94
97
|
timeout: 5
|
|
95
98
|
port: 12321
|
|
96
99
|
log: features/logs/12_321.log
|
|
97
|
-
signal: INT # Possible values are described in Signal.list.keys
|
|
100
|
+
signal: INT # Possible values are described in Signal.list.keys.
|
|
101
|
+
environment: # Pass environment variables to process.
|
|
102
|
+
TEST: true
|
|
98
103
|
-
|
|
99
104
|
name: start_2
|
|
100
105
|
command: features/support/bin/start 12_322
|
|
@@ -113,6 +118,12 @@ Nonnative.configure do |config|
|
|
|
113
118
|
end
|
|
114
119
|
```
|
|
115
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
|
+
|
|
116
127
|
### Servers
|
|
117
128
|
|
|
118
129
|
A server is a dependency to some external API.
|
|
@@ -59,6 +59,7 @@ module Nonnative
|
|
|
59
59
|
d.port = fd['port']
|
|
60
60
|
d.log = fd['log']
|
|
61
61
|
d.signal = fd['signal']
|
|
62
|
+
d.environment = fd['environment']
|
|
62
63
|
|
|
63
64
|
proxy d, fd['proxy']
|
|
64
65
|
end
|
|
@@ -95,9 +96,7 @@ module Nonnative
|
|
|
95
96
|
services.each do |fd|
|
|
96
97
|
service do |s|
|
|
97
98
|
s.name = fd['name']
|
|
98
|
-
s.timeout = fd['timeout']
|
|
99
99
|
s.port = fd['port']
|
|
100
|
-
s.log = fd['log']
|
|
101
100
|
|
|
102
101
|
proxy s, fd['proxy']
|
|
103
102
|
end
|
data/lib/nonnative/cucumber.rb
CHANGED
|
@@ -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
|
-
|
|
5
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
data/lib/nonnative/process.rb
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module Nonnative
|
|
4
4
|
class Process < Runner
|
|
5
|
+
def initialize(service)
|
|
6
|
+
super service
|
|
7
|
+
|
|
8
|
+
@timeout = Nonnative::Timeout.new(service.timeout)
|
|
9
|
+
end
|
|
10
|
+
|
|
5
11
|
def start
|
|
6
12
|
unless process_exists?
|
|
7
13
|
proxy.start
|
|
@@ -22,6 +28,12 @@ module Nonnative
|
|
|
22
28
|
pid
|
|
23
29
|
end
|
|
24
30
|
|
|
31
|
+
def memory
|
|
32
|
+
return if pid.nil?
|
|
33
|
+
|
|
34
|
+
@memory ||= GetProcessMem.new(pid)
|
|
35
|
+
end
|
|
36
|
+
|
|
25
37
|
protected
|
|
26
38
|
|
|
27
39
|
def wait_stop
|
|
@@ -32,7 +44,7 @@ module Nonnative
|
|
|
32
44
|
|
|
33
45
|
private
|
|
34
46
|
|
|
35
|
-
attr_reader :pid
|
|
47
|
+
attr_reader :pid, :timeout
|
|
36
48
|
|
|
37
49
|
def process_kill
|
|
38
50
|
signal = Signal.list[service.signal || 'INT'] || Signal.list['INT']
|
|
@@ -40,7 +52,10 @@ module Nonnative
|
|
|
40
52
|
end
|
|
41
53
|
|
|
42
54
|
def process_spawn
|
|
43
|
-
|
|
55
|
+
environment = service.environment || {}
|
|
56
|
+
environment = environment.transform_keys(&:to_s).transform_values(&:to_s)
|
|
57
|
+
|
|
58
|
+
spawn(environment, service.command, %i[out err] => [service.log, 'a'])
|
|
44
59
|
end
|
|
45
60
|
|
|
46
61
|
def process_exists?
|
data/lib/nonnative/runner.rb
CHANGED
|
@@ -6,7 +6,6 @@ module Nonnative
|
|
|
6
6
|
|
|
7
7
|
def initialize(service)
|
|
8
8
|
@service = service
|
|
9
|
-
@timeout = Nonnative::Timeout.new(service.timeout)
|
|
10
9
|
@proxy = Nonnative::ProxyFactory.create(service)
|
|
11
10
|
end
|
|
12
11
|
|
|
@@ -16,7 +15,7 @@ module Nonnative
|
|
|
16
15
|
|
|
17
16
|
protected
|
|
18
17
|
|
|
19
|
-
attr_reader :service
|
|
18
|
+
attr_reader :service
|
|
20
19
|
|
|
21
20
|
def wait_start
|
|
22
21
|
sleep 0.1
|
data/lib/nonnative/server.rb
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module Nonnative
|
|
4
4
|
class Server < Runner
|
|
5
|
+
def initialize(service)
|
|
6
|
+
super service
|
|
7
|
+
|
|
8
|
+
@timeout = Nonnative::Timeout.new(service.timeout)
|
|
9
|
+
end
|
|
10
|
+
|
|
5
11
|
def start
|
|
6
12
|
unless thread
|
|
7
13
|
proxy.start
|
|
@@ -28,6 +34,6 @@ module Nonnative
|
|
|
28
34
|
|
|
29
35
|
private
|
|
30
36
|
|
|
31
|
-
attr_reader :thread
|
|
37
|
+
attr_reader :thread, :timeout
|
|
32
38
|
end
|
|
33
39
|
end
|
data/lib/nonnative/version.rb
CHANGED
data/lib/nonnative.rb
CHANGED
data/nonnative.gemspec
CHANGED
|
@@ -21,10 +21,11 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
spec.bindir = 'exe'
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
23
23
|
spec.require_paths = ['lib']
|
|
24
|
-
spec.required_ruby_version = ['>=
|
|
24
|
+
spec.required_ruby_version = ['>= 3.0.0', '< 4.0.0']
|
|
25
25
|
|
|
26
26
|
spec.add_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
|
|
27
|
-
spec.add_dependency 'cucumber', ['>=
|
|
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'
|
|
@@ -33,8 +34,8 @@ Gem::Specification.new do |spec|
|
|
|
33
34
|
spec.add_dependency 'rspec-expectations', '~> 3.9', '>= 3.9.2'
|
|
34
35
|
spec.add_dependency 'sinatra', '~> 2.0', '>= 2.0.8.1'
|
|
35
36
|
|
|
36
|
-
spec.add_development_dependency 'bundler', '~> 2.
|
|
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.
|
|
39
|
-
spec.add_development_dependency 'solargraph', '~> 0.
|
|
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.
|
|
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-
|
|
11
|
+
date: 2021-10-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: concurrent-ruby
|
|
@@ -36,20 +36,34 @@ dependencies:
|
|
|
36
36
|
requirements:
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
39
|
+
version: '7'
|
|
40
40
|
- - "<"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '
|
|
42
|
+
version: '8'
|
|
43
43
|
type: :runtime
|
|
44
44
|
prerelease: false
|
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
46
46
|
requirements:
|
|
47
47
|
- - ">="
|
|
48
48
|
- !ruby/object:Gem::Version
|
|
49
|
-
version: '
|
|
49
|
+
version: '7'
|
|
50
50
|
- - "<"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: '
|
|
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
|
|
@@ -178,20 +192,20 @@ dependencies:
|
|
|
178
192
|
requirements:
|
|
179
193
|
- - "~>"
|
|
180
194
|
- !ruby/object:Gem::Version
|
|
181
|
-
version: '2.
|
|
195
|
+
version: '2.2'
|
|
182
196
|
- - ">="
|
|
183
197
|
- !ruby/object:Gem::Version
|
|
184
|
-
version: 2.
|
|
198
|
+
version: 2.2.17
|
|
185
199
|
type: :development
|
|
186
200
|
prerelease: false
|
|
187
201
|
version_requirements: !ruby/object:Gem::Requirement
|
|
188
202
|
requirements:
|
|
189
203
|
- - "~>"
|
|
190
204
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: '2.
|
|
205
|
+
version: '2.2'
|
|
192
206
|
- - ">="
|
|
193
207
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: 2.
|
|
208
|
+
version: 2.2.17
|
|
195
209
|
- !ruby/object:Gem::Dependency
|
|
196
210
|
name: coveralls
|
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -212,28 +226,34 @@ dependencies:
|
|
|
212
226
|
requirements:
|
|
213
227
|
- - "~>"
|
|
214
228
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '1.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
@@ -307,17 +327,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
307
327
|
requirements:
|
|
308
328
|
- - ">="
|
|
309
329
|
- !ruby/object:Gem::Version
|
|
310
|
-
version:
|
|
330
|
+
version: 3.0.0
|
|
311
331
|
- - "<"
|
|
312
332
|
- !ruby/object:Gem::Version
|
|
313
|
-
version:
|
|
333
|
+
version: 4.0.0
|
|
314
334
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
335
|
requirements:
|
|
316
336
|
- - ">="
|
|
317
337
|
- !ruby/object:Gem::Version
|
|
318
338
|
version: '0'
|
|
319
339
|
requirements: []
|
|
320
|
-
rubygems_version: 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
|