nonnative 1.74.1 → 1.76.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +6 -0
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +57 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +92 -74
- data/lib/nonnative/configuration.rb +37 -37
- data/lib/nonnative/delay_socket_pair.rb +1 -1
- data/lib/nonnative/fault_injection_proxy.rb +1 -1
- data/lib/nonnative/grpc_server.rb +1 -1
- data/lib/nonnative/header.rb +23 -0
- data/lib/nonnative/http_server.rb +1 -1
- data/lib/nonnative/invalid_data_socket_pair.rb +1 -1
- data/lib/nonnative/process.rb +2 -2
- data/lib/nonnative/server.rb +1 -1
- data/lib/nonnative/version.rb +1 -1
- data/lib/nonnative.rb +6 -0
- data/nonnative.gemspec +9 -8
- metadata +82 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d710347f39ff60ae87871f7ccd9b346d630aa42fd24263ea9bc2081967bf2454
|
4
|
+
data.tar.gz: d2e2d24569e30a9e6dbc59f5a7cdcf3589593a08a67e1c6ddbf68ad89a0eff06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11281e87a1ddad5c227a23c26b242172c62b06a0a6624ac17dc0737b89fae21e7f792d1cddb86e48ede67def1dbd41629a8a2f96953707ffa78bf01b06c45588
|
7
|
+
data.tar.gz: 3e265dcab17dad9d4399a13fc248df015f9fe1fc1eac15cdd77c9d1e95c13a5d933c851c40aca0901e227799bfc5a881c148165007f01599eb2ef3492d13f8ae
|
data/.github/dependabot.yml
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,63 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
|
7
7
|
## Unreleased
|
8
8
|
|
9
|
+
## [v1.76.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.76.0) - 2024-01-22
|
10
|
+
|
11
|
+
- [`6a42560`](https://github.com/alexfalkowski/nonnative/commit/6a42560b3983e1e1599363f3e6e07a8ffde0778f) feat(deps): update sinatra to v4.0.0 (#297)
|
12
|
+
|
13
|
+
## [v1.75.11](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.11) - 2024-01-18
|
14
|
+
|
15
|
+
- [`b476b9e`](https://github.com/alexfalkowski/nonnative/commit/b476b9e1e8bef2bf8f89ee5cc095fe1f047f7aee) fix(deps): bump rubocop from 1.60.0 to 1.60.1 (#295)
|
16
|
+
|
17
|
+
## [v1.75.10](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.10) - 2024-01-17
|
18
|
+
|
19
|
+
- [`231a3ce`](https://github.com/alexfalkowski/nonnative/commit/231a3ce471dda2e37e22671123e75a1964d9bf6e) fix(deps): bump concurrent-ruby from 1.2.2 to 1.2.3 (#294)
|
20
|
+
|
21
|
+
## [v1.75.9](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.9) - 2024-01-16
|
22
|
+
|
23
|
+
- [`d9bc4ad`](https://github.com/alexfalkowski/nonnative/commit/d9bc4ad8301f76948dfd628716ce0d32ed3257fb) fix(deps): bump rubocop from 1.59.0 to 1.60.0 (#293)
|
24
|
+
|
25
|
+
## [v1.75.8](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.8) - 2024-01-08
|
26
|
+
|
27
|
+
- [`27433cc`](https://github.com/alexfalkowski/nonnative/commit/27433ccb4e54b4ccb65090f4de4ada844d35ddb1) fix(deps): bump puma from 6.4.1 to 6.4.2 (#292)
|
28
|
+
|
29
|
+
## [v1.75.7](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.7) - 2024-01-05
|
30
|
+
|
31
|
+
- [`b1a0719`](https://github.com/alexfalkowski/nonnative/commit/b1a0719e75c2ff92341fe8513057ffb9bb42db64) fix(deps): bump cucumber from 9.1.0 to 9.1.1 (#291)
|
32
|
+
|
33
|
+
## [v1.75.6](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.6) - 2024-01-03
|
34
|
+
|
35
|
+
- [`fe8c5ca`](https://github.com/alexfalkowski/nonnative/commit/fe8c5cacf074a0cf48580f8d3023be5bbfcc1e66) fix(deps): bump puma from 6.4.0 to 6.4.1 (#290)
|
36
|
+
|
37
|
+
## [v1.75.5](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.5) - 2024-01-01
|
38
|
+
|
39
|
+
- [`a620d5e`](https://github.com/alexfalkowski/nonnative/commit/a620d5e0e60a276a3529f82f9f03703fec258342) fix(deps): bump sinatra from 3.1.0 to 3.2.0 (#289)
|
40
|
+
- [`2cc4fdf`](https://github.com/alexfalkowski/nonnative/commit/2cc4fdfb714a277f240302274134704da47d6052) build(deps): update (#288)
|
41
|
+
|
42
|
+
## [v1.75.4](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.4) - 2023-12-19
|
43
|
+
|
44
|
+
- [`6de7979`](https://github.com/alexfalkowski/nonnative/commit/6de79792069d8337037f65daffe7ff37ed1d9ffd) fix(deps): bump config from 5.0.0 to 5.1.0 (#287)
|
45
|
+
|
46
|
+
## [v1.75.3](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.3) - 2023-12-12
|
47
|
+
|
48
|
+
- [`43ddfa2`](https://github.com/alexfalkowski/nonnative/commit/43ddfa2e9681712abb2abbaddeff3da8fbbcfc19) fix(deps): bump rubocop from 1.58.0 to 1.59.0 (#286)
|
49
|
+
- [`0adf9b8`](https://github.com/alexfalkowski/nonnative/commit/0adf9b8cb68f6f73d0976efcef06e81493c7eb2d) build(deps): bump bin from `e8ef37a` to `e6271f5` (#285)
|
50
|
+
|
51
|
+
## [v1.75.2](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.2) - 2023-12-05
|
52
|
+
|
53
|
+
- [`295e6be`](https://github.com/alexfalkowski/nonnative/commit/295e6be3a6d31e7b12f46ab4e6bb3c64c0350e78) fix(deps): bump rubocop from 1.57.2 to 1.58.0 (#284)
|
54
|
+
|
55
|
+
## [v1.75.1](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.1) - 2023-12-01
|
56
|
+
|
57
|
+
- [`8717eee`](https://github.com/alexfalkowski/nonnative/commit/8717eee7d0fe6c9f6c402ad8dd9c3ab7ec4d3df8) fix(deps): bump grpc from 1.59.2 to 1.60.0 (#283)
|
58
|
+
- [`0c66d5e`](https://github.com/alexfalkowski/nonnative/commit/0c66d5e34b4a1851d8778d7f037b0eb003f0a0ab) build(deps): add bin (#282)
|
59
|
+
- [`411ed2e`](https://github.com/alexfalkowski/nonnative/commit/411ed2e7755906baa350c7b6fd50716ce1e4b163) build(deps): update bin (#281)
|
60
|
+
|
61
|
+
## [v1.75.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.0) - 2023-11-18
|
62
|
+
|
63
|
+
- [`dba4d0c`](https://github.com/alexfalkowski/nonnative/commit/dba4d0c4281226b818f95aee637b7433005d4aba) feat: add header (#280)
|
64
|
+
- [`9810746`](https://github.com/alexfalkowski/nonnative/commit/98107465057cebcd2c165e50fbfacebd40b7cece) build(deps): update bin (#278)
|
65
|
+
|
9
66
|
## [v1.74.1](https://github.com/alexfalkowski/nonnative/releases/tag/v1.74.1) - 2023-11-16
|
10
67
|
|
11
68
|
- [`57a67b4`](https://github.com/alexfalkowski/nonnative/commit/57a67b4fde47cf1ab1a8299d759cffcc6cd821f6) fix(http): do not override opts (#277)
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,42 +1,46 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
nonnative (1.
|
5
|
-
concurrent-ruby (
|
4
|
+
nonnative (1.76.0)
|
5
|
+
concurrent-ruby (>= 1, < 2)
|
6
|
+
config (>= 5, < 6)
|
6
7
|
cucumber (>= 7, < 10)
|
7
|
-
get_process_mem (
|
8
|
+
get_process_mem (>= 0, < 1)
|
8
9
|
grpc (>= 1, < 2)
|
9
|
-
puma (
|
10
|
-
rest-client (
|
11
|
-
rspec-benchmark (
|
12
|
-
rspec-expectations (
|
13
|
-
sinatra (>= 2
|
10
|
+
puma (>= 6, < 7)
|
11
|
+
rest-client (>= 2, < 3)
|
12
|
+
rspec-benchmark (>= 0, < 1)
|
13
|
+
rspec-expectations (>= 3, < 4)
|
14
|
+
sinatra (>= 2, < 5)
|
14
15
|
|
15
16
|
GEM
|
16
17
|
remote: https://rubygems.org/
|
17
18
|
specs:
|
18
19
|
ast (2.4.2)
|
19
|
-
|
20
|
-
benchmark (0.3.0)
|
20
|
+
base64 (0.2.0)
|
21
21
|
benchmark-malloc (0.2.0)
|
22
22
|
benchmark-perf (0.6.0)
|
23
23
|
benchmark-trend (0.4.0)
|
24
|
+
bigdecimal (3.1.6)
|
24
25
|
builder (3.2.4)
|
25
|
-
concurrent-ruby (1.2.
|
26
|
+
concurrent-ruby (1.2.3)
|
27
|
+
config (5.1.0)
|
28
|
+
deep_merge (~> 1.2, >= 1.2.1)
|
29
|
+
dry-validation (~> 1.0, >= 1.0.0)
|
26
30
|
coveralls_reborn (0.28.0)
|
27
31
|
simplecov (~> 0.22.0)
|
28
32
|
term-ansicolor (~> 1.7)
|
29
33
|
thor (~> 1.2)
|
30
34
|
tins (~> 1.32)
|
31
|
-
cucumber (9.1.
|
35
|
+
cucumber (9.1.1)
|
32
36
|
builder (~> 3.2, >= 3.2.4)
|
33
37
|
cucumber-ci-environment (~> 9.2, >= 9.2.0)
|
34
38
|
cucumber-core (~> 12.0)
|
35
39
|
cucumber-cucumber-expressions (~> 17.0)
|
36
|
-
cucumber-gherkin (
|
37
|
-
cucumber-html-formatter (
|
38
|
-
cucumber-messages (
|
39
|
-
diff-lcs (~> 1.5
|
40
|
+
cucumber-gherkin (> 24, < 27)
|
41
|
+
cucumber-html-formatter (> 20.3, < 22)
|
42
|
+
cucumber-messages (> 19, < 25)
|
43
|
+
diff-lcs (~> 1.5)
|
40
44
|
mini_mime (~> 1.1, >= 1.1.5)
|
41
45
|
multi_test (~> 1.1, >= 1.1.0)
|
42
46
|
sys-uname (~> 1.2, >= 1.2.3)
|
@@ -45,71 +49,101 @@ GEM
|
|
45
49
|
cucumber-gherkin (>= 25, < 27)
|
46
50
|
cucumber-messages (>= 20, < 23)
|
47
51
|
cucumber-tag-expressions (~> 5.0, >= 5.0.4)
|
48
|
-
cucumber-cucumber-expressions (17.0.
|
52
|
+
cucumber-cucumber-expressions (17.0.1)
|
49
53
|
cucumber-gherkin (26.2.0)
|
50
54
|
cucumber-messages (>= 19.1.4, < 22.1)
|
51
|
-
cucumber-html-formatter (
|
52
|
-
cucumber-messages (
|
55
|
+
cucumber-html-formatter (21.2.0)
|
56
|
+
cucumber-messages (> 19, < 25)
|
53
57
|
cucumber-messages (22.0.0)
|
54
58
|
cucumber-tag-expressions (5.0.6)
|
59
|
+
deep_merge (1.2.2)
|
55
60
|
diff-lcs (1.5.0)
|
56
61
|
docile (1.4.0)
|
57
|
-
domain_name (0.6.
|
58
|
-
|
62
|
+
domain_name (0.6.20240107)
|
63
|
+
dry-configurable (1.1.0)
|
64
|
+
dry-core (~> 1.0, < 2)
|
65
|
+
zeitwerk (~> 2.6)
|
66
|
+
dry-core (1.0.1)
|
67
|
+
concurrent-ruby (~> 1.0)
|
68
|
+
zeitwerk (~> 2.6)
|
69
|
+
dry-inflector (1.0.0)
|
70
|
+
dry-initializer (3.1.1)
|
71
|
+
dry-logic (1.5.0)
|
72
|
+
concurrent-ruby (~> 1.0)
|
73
|
+
dry-core (~> 1.0, < 2)
|
74
|
+
zeitwerk (~> 2.6)
|
75
|
+
dry-schema (1.13.3)
|
76
|
+
concurrent-ruby (~> 1.0)
|
77
|
+
dry-configurable (~> 1.0, >= 1.0.1)
|
78
|
+
dry-core (~> 1.0, < 2)
|
79
|
+
dry-initializer (~> 3.0)
|
80
|
+
dry-logic (>= 1.4, < 2)
|
81
|
+
dry-types (>= 1.7, < 2)
|
82
|
+
zeitwerk (~> 2.6)
|
83
|
+
dry-types (1.7.2)
|
84
|
+
bigdecimal (~> 3.0)
|
85
|
+
concurrent-ruby (~> 1.0)
|
86
|
+
dry-core (~> 1.0)
|
87
|
+
dry-inflector (~> 1.0)
|
88
|
+
dry-logic (~> 1.4)
|
89
|
+
zeitwerk (~> 2.6)
|
90
|
+
dry-validation (1.10.0)
|
91
|
+
concurrent-ruby (~> 1.0)
|
92
|
+
dry-core (~> 1.0, < 2)
|
93
|
+
dry-initializer (~> 3.0)
|
94
|
+
dry-schema (>= 1.12, < 2)
|
95
|
+
zeitwerk (~> 2.6)
|
59
96
|
ffi (1.16.3)
|
60
97
|
get_process_mem (0.2.7)
|
61
98
|
ffi (~> 1.0)
|
62
|
-
google-protobuf (3.25.
|
63
|
-
|
99
|
+
google-protobuf (3.25.2-arm64-darwin)
|
100
|
+
google-protobuf (3.25.2-x86_64-darwin)
|
101
|
+
google-protobuf (3.25.2-x86_64-linux)
|
102
|
+
googleapis-common-protos-types (1.11.0)
|
64
103
|
google-protobuf (~> 3.18)
|
65
|
-
grpc (1.
|
66
|
-
google-protobuf (~> 3.
|
104
|
+
grpc (1.60.0-arm64-darwin)
|
105
|
+
google-protobuf (~> 3.25)
|
106
|
+
googleapis-common-protos-types (~> 1.0)
|
107
|
+
grpc (1.60.0-x86_64-darwin)
|
108
|
+
google-protobuf (~> 3.25)
|
109
|
+
googleapis-common-protos-types (~> 1.0)
|
110
|
+
grpc (1.60.0-x86_64-linux)
|
111
|
+
google-protobuf (~> 3.25)
|
67
112
|
googleapis-common-protos-types (~> 1.0)
|
68
113
|
http-accept (1.7.0)
|
69
114
|
http-cookie (1.0.5)
|
70
115
|
domain_name (~> 0.5)
|
71
|
-
|
72
|
-
json (2.6.3)
|
73
|
-
kramdown (2.4.0)
|
74
|
-
rexml
|
75
|
-
kramdown-parser-gfm (1.1.0)
|
76
|
-
kramdown (~> 2.0)
|
116
|
+
json (2.7.1)
|
77
117
|
language_server-protocol (3.17.0.3)
|
78
|
-
mime-types (3.5.
|
118
|
+
mime-types (3.5.2)
|
79
119
|
mime-types-data (~> 3.2015)
|
80
|
-
mime-types-data (3.2023.
|
120
|
+
mime-types-data (3.2023.1205)
|
81
121
|
mini_mime (1.1.5)
|
82
122
|
multi_test (1.1.0)
|
83
123
|
mustermann (3.0.0)
|
84
124
|
ruby2_keywords (~> 0.0.1)
|
85
125
|
netrc (0.11.0)
|
86
|
-
nio4r (2.
|
87
|
-
|
88
|
-
|
89
|
-
nokogiri (1.15.4-x86_64-darwin)
|
90
|
-
racc (~> 1.4)
|
91
|
-
nokogiri (1.15.4-x86_64-linux)
|
92
|
-
racc (~> 1.4)
|
93
|
-
parallel (1.23.0)
|
94
|
-
parser (3.2.2.4)
|
126
|
+
nio4r (2.7.0)
|
127
|
+
parallel (1.24.0)
|
128
|
+
parser (3.3.0.5)
|
95
129
|
ast (~> 2.4.1)
|
96
130
|
racc
|
97
|
-
puma (6.4.
|
131
|
+
puma (6.4.2)
|
98
132
|
nio4r (~> 2.0)
|
99
133
|
racc (1.7.3)
|
100
|
-
rack (
|
101
|
-
rack-protection (
|
102
|
-
|
134
|
+
rack (3.0.8)
|
135
|
+
rack-protection (4.0.0)
|
136
|
+
base64 (>= 0.1.0)
|
137
|
+
rack (>= 3.0.0, < 4)
|
138
|
+
rack-session (2.0.0)
|
139
|
+
rack (>= 3.0.0)
|
103
140
|
rainbow (3.1.1)
|
104
|
-
|
105
|
-
regexp_parser (2.8.2)
|
141
|
+
regexp_parser (2.9.0)
|
106
142
|
rest-client (2.1.0)
|
107
143
|
http-accept (>= 1.7.0, < 2.0)
|
108
144
|
http-cookie (>= 1.0.2, < 2.0)
|
109
145
|
mime-types (>= 1.16, < 4.0)
|
110
146
|
netrc (~> 0.8)
|
111
|
-
reverse_markdown (2.1.1)
|
112
|
-
nokogiri
|
113
147
|
rexml (3.2.6)
|
114
148
|
rspec (3.12.0)
|
115
149
|
rspec-core (~> 3.12.0)
|
@@ -129,15 +163,15 @@ GEM
|
|
129
163
|
diff-lcs (>= 1.2.0, < 2.0)
|
130
164
|
rspec-support (~> 3.12.0)
|
131
165
|
rspec-support (3.12.1)
|
132
|
-
rubocop (1.
|
166
|
+
rubocop (1.60.1)
|
133
167
|
json (~> 2.3)
|
134
168
|
language_server-protocol (>= 3.17.0)
|
135
169
|
parallel (~> 1.10)
|
136
|
-
parser (>= 3.
|
170
|
+
parser (>= 3.3.0.2)
|
137
171
|
rainbow (>= 2.2.2, < 4.0)
|
138
172
|
regexp_parser (>= 1.8, < 3.0)
|
139
173
|
rexml (>= 3.2.5, < 4.0)
|
140
|
-
rubocop-ast (>= 1.
|
174
|
+
rubocop-ast (>= 1.30.0, < 2.0)
|
141
175
|
ruby-progressbar (~> 1.7)
|
142
176
|
unicode-display_width (>= 2.4.0, < 3.0)
|
143
177
|
rubocop-ast (1.30.0)
|
@@ -150,27 +184,12 @@ GEM
|
|
150
184
|
simplecov_json_formatter (~> 0.1)
|
151
185
|
simplecov-html (0.12.3)
|
152
186
|
simplecov_json_formatter (0.1.4)
|
153
|
-
sinatra (
|
187
|
+
sinatra (4.0.0)
|
154
188
|
mustermann (~> 3.0)
|
155
|
-
rack (
|
156
|
-
rack-protection (=
|
157
|
-
|
158
|
-
solargraph (0.49.0)
|
159
|
-
backport (~> 1.2)
|
160
|
-
benchmark
|
161
|
-
bundler (~> 2.0)
|
162
|
-
diff-lcs (~> 1.4)
|
163
|
-
e2mmap
|
164
|
-
jaro_winkler (~> 1.5)
|
165
|
-
kramdown (~> 2.3)
|
166
|
-
kramdown-parser-gfm (~> 1.1)
|
167
|
-
parser (~> 3.0)
|
168
|
-
rbs (~> 2.0)
|
169
|
-
reverse_markdown (~> 2.0)
|
170
|
-
rubocop (~> 1.38)
|
171
|
-
thor (~> 1.0)
|
189
|
+
rack (>= 3.0.0, < 4)
|
190
|
+
rack-protection (= 4.0.0)
|
191
|
+
rack-session (>= 2.0.0, < 3)
|
172
192
|
tilt (~> 2.0)
|
173
|
-
yard (~> 0.9, >= 0.9.24)
|
174
193
|
sync (0.5.0)
|
175
194
|
sys-uname (1.2.3)
|
176
195
|
ffi (~> 1.1)
|
@@ -181,7 +200,7 @@ GEM
|
|
181
200
|
tins (1.32.1)
|
182
201
|
sync
|
183
202
|
unicode-display_width (2.5.0)
|
184
|
-
|
203
|
+
zeitwerk (2.6.12)
|
185
204
|
|
186
205
|
PLATFORMS
|
187
206
|
arm64-darwin-22
|
@@ -193,7 +212,6 @@ DEPENDENCIES
|
|
193
212
|
coveralls_reborn
|
194
213
|
nonnative!
|
195
214
|
rubocop
|
196
|
-
solargraph
|
197
215
|
|
198
216
|
BUNDLED WITH
|
199
217
|
2.3.9
|
@@ -11,11 +11,11 @@ module Nonnative
|
|
11
11
|
attr_accessor :processes, :servers, :services
|
12
12
|
|
13
13
|
def load_file(path)
|
14
|
-
|
14
|
+
cfg = Nonnative.configurations(path)
|
15
15
|
|
16
|
-
add_processes(
|
17
|
-
add_servers(
|
18
|
-
add_services(
|
16
|
+
add_processes(cfg)
|
17
|
+
add_servers(cfg)
|
18
|
+
add_services(cfg)
|
19
19
|
end
|
20
20
|
|
21
21
|
def process
|
@@ -48,59 +48,59 @@ module Nonnative
|
|
48
48
|
|
49
49
|
private
|
50
50
|
|
51
|
-
def add_processes(
|
52
|
-
processes =
|
51
|
+
def add_processes(cfg)
|
52
|
+
processes = cfg.processes || []
|
53
53
|
processes.each do |fd|
|
54
54
|
process do |d|
|
55
|
-
d.name = fd
|
55
|
+
d.name = fd.name
|
56
56
|
d.command = command(fd)
|
57
|
-
d.timeout = fd
|
58
|
-
d.port = fd
|
59
|
-
d.log = fd
|
60
|
-
d.signal = fd
|
61
|
-
d.environment = fd
|
57
|
+
d.timeout = fd.timeout
|
58
|
+
d.port = fd.port
|
59
|
+
d.log = fd.log
|
60
|
+
d.signal = fd.signal
|
61
|
+
d.environment = fd.environment
|
62
62
|
|
63
|
-
proxy d, fd
|
63
|
+
proxy d, fd.proxy
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
68
|
def command(process)
|
69
|
-
go = process
|
69
|
+
go = process.go
|
70
70
|
if go
|
71
|
-
params = go
|
72
|
-
tools = go
|
71
|
+
params = go.parameters || []
|
72
|
+
tools = go.tools || []
|
73
73
|
|
74
|
-
-> { Nonnative.go_executable(tools, go
|
74
|
+
-> { Nonnative.go_executable(tools, go.output, go.executable, go.command, *params) }
|
75
75
|
else
|
76
|
-
-> { process
|
76
|
+
-> { process.command }
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
def add_servers(
|
81
|
-
servers =
|
80
|
+
def add_servers(cfg)
|
81
|
+
servers = cfg.servers || []
|
82
82
|
servers.each do |fd|
|
83
83
|
server do |s|
|
84
|
-
s.name = fd
|
85
|
-
s.klass = Object.const_get(fd
|
86
|
-
s.timeout = fd
|
87
|
-
s.port = fd
|
88
|
-
s.log = fd
|
84
|
+
s.name = fd.name
|
85
|
+
s.klass = Object.const_get(fd.class)
|
86
|
+
s.timeout = fd.timeout
|
87
|
+
s.port = fd.port
|
88
|
+
s.log = fd.log
|
89
89
|
|
90
|
-
proxy s, fd
|
90
|
+
proxy s, fd.proxy
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
95
|
-
def add_services(
|
96
|
-
services =
|
95
|
+
def add_services(cfg)
|
96
|
+
services = cfg.services || []
|
97
97
|
services.each do |fd|
|
98
98
|
service do |s|
|
99
|
-
s.name = fd
|
100
|
-
s.host = fd
|
101
|
-
s.port = fd
|
99
|
+
s.name = fd.name
|
100
|
+
s.host = fd.host if fd.host
|
101
|
+
s.port = fd.port
|
102
102
|
|
103
|
-
proxy s, fd
|
103
|
+
proxy s, fd.proxy
|
104
104
|
end
|
105
105
|
end
|
106
106
|
end
|
@@ -109,13 +109,13 @@ module Nonnative
|
|
109
109
|
return unless proxy
|
110
110
|
|
111
111
|
p = {
|
112
|
-
kind: proxy
|
113
|
-
port: proxy
|
114
|
-
log: proxy
|
115
|
-
options: proxy
|
112
|
+
kind: proxy.kind,
|
113
|
+
port: proxy.port,
|
114
|
+
log: proxy.log,
|
115
|
+
options: proxy.options
|
116
116
|
}
|
117
117
|
|
118
|
-
p[:host] = proxy
|
118
|
+
p[:host] = proxy.host if proxy.host
|
119
119
|
|
120
120
|
runner.proxy = p
|
121
121
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Nonnative
|
4
|
+
class Header
|
5
|
+
class << self
|
6
|
+
def http_user_agent(user_agent)
|
7
|
+
{ user_agent: }
|
8
|
+
end
|
9
|
+
|
10
|
+
def grpc_user_agent(user_agent)
|
11
|
+
{ 'grpc.primary_user_agent' => user_agent }
|
12
|
+
end
|
13
|
+
|
14
|
+
def auth_basic(credentials)
|
15
|
+
{ authorization: "Basic #{Base64.strict_encode64(credentials)}" }
|
16
|
+
end
|
17
|
+
|
18
|
+
def auth_bearer(token)
|
19
|
+
{ authorization: "Bearer #{token}" }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/nonnative/process.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Nonnative
|
4
4
|
class Process < Runner
|
5
5
|
def initialize(service)
|
6
|
-
super
|
6
|
+
super(service)
|
7
7
|
|
8
8
|
@timeout = Nonnative::Timeout.new(service.timeout)
|
9
9
|
end
|
@@ -52,7 +52,7 @@ module Nonnative
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def process_spawn
|
55
|
-
environment = service.environment
|
55
|
+
environment = service.environment.to_h
|
56
56
|
environment = environment.transform_keys(&:to_s).transform_values(&:to_s)
|
57
57
|
|
58
58
|
environment.each_key do |k|
|
data/lib/nonnative/server.rb
CHANGED
data/lib/nonnative/version.rb
CHANGED
data/lib/nonnative.rb
CHANGED
@@ -12,6 +12,7 @@ require 'rest-client'
|
|
12
12
|
require 'puma'
|
13
13
|
require 'puma/server'
|
14
14
|
require 'concurrent'
|
15
|
+
require 'config'
|
15
16
|
require 'cucumber'
|
16
17
|
require 'get_process_mem'
|
17
18
|
require 'rspec-benchmark'
|
@@ -49,11 +50,16 @@ require 'nonnative/invalid_data_socket_pair'
|
|
49
50
|
require 'nonnative/socket_pair_factory'
|
50
51
|
require 'nonnative/go_command'
|
51
52
|
require 'nonnative/cucumber'
|
53
|
+
require 'nonnative/header'
|
52
54
|
|
53
55
|
module Nonnative
|
54
56
|
class << self
|
55
57
|
attr_reader :pool
|
56
58
|
|
59
|
+
def configurations(*files)
|
60
|
+
Config.load_files(files)
|
61
|
+
end
|
62
|
+
|
57
63
|
def log_lines(path, predicate)
|
58
64
|
File.readlines(path).select { |l| predicate.call(l) }
|
59
65
|
end
|
data/nonnative.gemspec
CHANGED
@@ -24,13 +24,14 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.required_ruby_version = ['>= 3.2.0', '< 4.0.0']
|
25
25
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
26
26
|
|
27
|
-
spec.add_dependency 'concurrent-ruby', '
|
27
|
+
spec.add_dependency 'concurrent-ruby', '>= 1', '< 2'
|
28
|
+
spec.add_dependency 'config', '>= 5', '< 6'
|
28
29
|
spec.add_dependency 'cucumber', '>= 7', '< 10'
|
29
|
-
spec.add_dependency 'get_process_mem', '
|
30
|
-
spec.add_dependency 'grpc',
|
31
|
-
spec.add_dependency 'puma', '
|
32
|
-
spec.add_dependency 'rest-client', '
|
33
|
-
spec.add_dependency 'rspec-benchmark', '
|
34
|
-
spec.add_dependency 'rspec-expectations', '
|
35
|
-
spec.add_dependency 'sinatra', '>= 2
|
30
|
+
spec.add_dependency 'get_process_mem', '>= 0', '< 1'
|
31
|
+
spec.add_dependency 'grpc', '>= 1', '< 2'
|
32
|
+
spec.add_dependency 'puma', '>= 6', '< 7'
|
33
|
+
spec.add_dependency 'rest-client', '>= 2', '< 3'
|
34
|
+
spec.add_dependency 'rspec-benchmark', '>= 0', '< 1'
|
35
|
+
spec.add_dependency 'rspec-expectations', '>= 3', '< 4'
|
36
|
+
spec.add_dependency 'sinatra', '>= 2', '< 5'
|
36
37
|
end
|
metadata
CHANGED
@@ -1,35 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nonnative
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.76.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:
|
11
|
+
date: 2024-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.0'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1
|
19
|
+
version: '1'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: config
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '5'
|
40
|
+
- - "<"
|
28
41
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
42
|
+
version: '6'
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
30
47
|
- - ">="
|
31
48
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
49
|
+
version: '5'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '6'
|
33
53
|
- !ruby/object:Gem::Dependency
|
34
54
|
name: cucumber
|
35
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,16 +74,22 @@ dependencies:
|
|
54
74
|
name: get_process_mem
|
55
75
|
requirement: !ruby/object:Gem::Requirement
|
56
76
|
requirements:
|
57
|
-
- - "
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
- - "<"
|
58
81
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
82
|
+
version: '1'
|
60
83
|
type: :runtime
|
61
84
|
prerelease: false
|
62
85
|
version_requirements: !ruby/object:Gem::Requirement
|
63
86
|
requirements:
|
64
|
-
- - "
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
- - "<"
|
65
91
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
92
|
+
version: '1'
|
67
93
|
- !ruby/object:Gem::Dependency
|
68
94
|
name: grpc
|
69
95
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,84 +114,102 @@ dependencies:
|
|
88
114
|
name: puma
|
89
115
|
requirement: !ruby/object:Gem::Requirement
|
90
116
|
requirements:
|
91
|
-
- - "
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '6'
|
120
|
+
- - "<"
|
92
121
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
122
|
+
version: '7'
|
94
123
|
type: :runtime
|
95
124
|
prerelease: false
|
96
125
|
version_requirements: !ruby/object:Gem::Requirement
|
97
126
|
requirements:
|
98
|
-
- - "
|
127
|
+
- - ">="
|
99
128
|
- !ruby/object:Gem::Version
|
100
|
-
version: '6
|
129
|
+
version: '6'
|
130
|
+
- - "<"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '7'
|
101
133
|
- !ruby/object:Gem::Dependency
|
102
134
|
name: rest-client
|
103
135
|
requirement: !ruby/object:Gem::Requirement
|
104
136
|
requirements:
|
105
|
-
- - "
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '2'
|
140
|
+
- - "<"
|
106
141
|
- !ruby/object:Gem::Version
|
107
|
-
version: '
|
142
|
+
version: '3'
|
108
143
|
type: :runtime
|
109
144
|
prerelease: false
|
110
145
|
version_requirements: !ruby/object:Gem::Requirement
|
111
146
|
requirements:
|
112
|
-
- - "
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '2'
|
150
|
+
- - "<"
|
113
151
|
- !ruby/object:Gem::Version
|
114
|
-
version: '
|
152
|
+
version: '3'
|
115
153
|
- !ruby/object:Gem::Dependency
|
116
154
|
name: rspec-benchmark
|
117
155
|
requirement: !ruby/object:Gem::Requirement
|
118
156
|
requirements:
|
119
|
-
- - "
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
- - "<"
|
120
161
|
- !ruby/object:Gem::Version
|
121
|
-
version:
|
162
|
+
version: '1'
|
122
163
|
type: :runtime
|
123
164
|
prerelease: false
|
124
165
|
version_requirements: !ruby/object:Gem::Requirement
|
125
166
|
requirements:
|
126
|
-
- - "
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
170
|
+
- - "<"
|
127
171
|
- !ruby/object:Gem::Version
|
128
|
-
version:
|
172
|
+
version: '1'
|
129
173
|
- !ruby/object:Gem::Dependency
|
130
174
|
name: rspec-expectations
|
131
175
|
requirement: !ruby/object:Gem::Requirement
|
132
176
|
requirements:
|
133
|
-
- - "~>"
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
version: '3.9'
|
136
177
|
- - ">="
|
137
178
|
- !ruby/object:Gem::Version
|
138
|
-
version: 3
|
179
|
+
version: '3'
|
180
|
+
- - "<"
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '4'
|
139
183
|
type: :runtime
|
140
184
|
prerelease: false
|
141
185
|
version_requirements: !ruby/object:Gem::Requirement
|
142
186
|
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '3.9'
|
146
187
|
- - ">="
|
147
188
|
- !ruby/object:Gem::Version
|
148
|
-
version: 3
|
189
|
+
version: '3'
|
190
|
+
- - "<"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '4'
|
149
193
|
- !ruby/object:Gem::Dependency
|
150
194
|
name: sinatra
|
151
195
|
requirement: !ruby/object:Gem::Requirement
|
152
196
|
requirements:
|
153
197
|
- - ">="
|
154
198
|
- !ruby/object:Gem::Version
|
155
|
-
version: 2
|
199
|
+
version: '2'
|
156
200
|
- - "<"
|
157
201
|
- !ruby/object:Gem::Version
|
158
|
-
version: '
|
202
|
+
version: '5'
|
159
203
|
type: :runtime
|
160
204
|
prerelease: false
|
161
205
|
version_requirements: !ruby/object:Gem::Requirement
|
162
206
|
requirements:
|
163
207
|
- - ">="
|
164
208
|
- !ruby/object:Gem::Version
|
165
|
-
version: 2
|
209
|
+
version: '2'
|
166
210
|
- - "<"
|
167
211
|
- !ruby/object:Gem::Version
|
168
|
-
version: '
|
212
|
+
version: '5'
|
169
213
|
description: Allows you to keep using the power of ruby to test other systems
|
170
214
|
email:
|
171
215
|
- alexrfalkowski@gmail.com
|
@@ -202,6 +246,7 @@ files:
|
|
202
246
|
- lib/nonnative/fault_injection_proxy.rb
|
203
247
|
- lib/nonnative/go_command.rb
|
204
248
|
- lib/nonnative/grpc_server.rb
|
249
|
+
- lib/nonnative/header.rb
|
205
250
|
- lib/nonnative/http_client.rb
|
206
251
|
- lib/nonnative/http_server.rb
|
207
252
|
- lib/nonnative/invalid_data_socket_pair.rb
|