nonnative 1.28.0 → 1.36.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 +17 -12
- data/.config/cucumber.yml +1 -1
- data/.rubocop.yml +4 -69
- data/.ruby-version +1 -1
- data/CHANGELOG.md +141 -0
- data/Gemfile.lock +108 -105
- data/Makefile +9 -9
- data/README.md +36 -0
- data/lib/nonnative.rb +2 -1
- data/lib/nonnative/configuration.rb +12 -10
- data/lib/nonnative/delay_socket_pair.rb +1 -1
- data/lib/nonnative/go_command.rb +41 -0
- data/lib/nonnative/timeout.rb +2 -4
- data/lib/nonnative/version.rb +1 -1
- data/nonnative.gemspec +7 -9
- metadata +21 -44
- data/Rakefile +0 -4
- data/sonar-project.properties +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d759dcc303c41272e596bf51efa2cd6602f2209105a66a419ee8543da8592a0c
|
|
4
|
+
data.tar.gz: d300b24f8fbd84912d822e7235ee40dd9059f3a119fd3f7aa45d460c2b61300f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a5c26403802ae92c24c6ff36e9ab0f544772001ebb3e148891884fac300b0c3cb87a926ddda9da40169379ecfe522c69e186743ff334d3515cf6b4d66e2310ac
|
|
7
|
+
data.tar.gz: 728a9b4b2c09aab1be02f003a868a5fe041c23d317768aff56f658dcd6bd84d09f9202241362725ae8a00b856f5a5fdae446fc218681be99d9dfb726b49e4078
|
data/.circleci/config.yml
CHANGED
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
version: 2.1
|
|
2
|
-
orbs:
|
|
3
|
-
sonarcloud: sonarsource/sonarcloud@1.0.1
|
|
4
2
|
|
|
5
3
|
jobs:
|
|
6
4
|
build:
|
|
7
5
|
docker:
|
|
8
|
-
- image:
|
|
9
|
-
environment:
|
|
10
|
-
BUNDLE_JOBS: "3"
|
|
11
|
-
BUNDLE_PATH: vendor/bundle
|
|
12
|
-
BUNDLE_RETRY: "3"
|
|
6
|
+
- image: alexfalkowski/ruby:2.7
|
|
13
7
|
steps:
|
|
14
8
|
- checkout
|
|
15
9
|
- restore_cache:
|
|
16
10
|
keys:
|
|
17
11
|
- nonnative-gem-cache-{{ checksum "Gemfile.lock" }}
|
|
18
12
|
- nonnative-gem-cache-
|
|
19
|
-
- run: make
|
|
13
|
+
- run: make dep
|
|
20
14
|
- save_cache:
|
|
21
15
|
key: nonnative-gem-cache-{{ checksum "Gemfile.lock" }}
|
|
22
16
|
paths:
|
|
@@ -24,15 +18,26 @@ jobs:
|
|
|
24
18
|
- run: make features
|
|
25
19
|
- store_test_results:
|
|
26
20
|
path: reports
|
|
27
|
-
- run: make
|
|
21
|
+
- run: make lint
|
|
28
22
|
- store_artifacts:
|
|
29
23
|
path: coverage
|
|
30
24
|
- store_artifacts:
|
|
31
25
|
path: features/logs
|
|
32
|
-
|
|
26
|
+
release:
|
|
27
|
+
docker:
|
|
28
|
+
- image: alexfalkowski/release:2.0
|
|
29
|
+
steps:
|
|
30
|
+
- checkout
|
|
31
|
+
- run: release.sh
|
|
33
32
|
|
|
34
33
|
workflows:
|
|
35
34
|
nonnative:
|
|
36
35
|
jobs:
|
|
37
|
-
- build
|
|
38
|
-
|
|
36
|
+
- build
|
|
37
|
+
- release:
|
|
38
|
+
context: gh
|
|
39
|
+
requires:
|
|
40
|
+
- build
|
|
41
|
+
filters:
|
|
42
|
+
branches:
|
|
43
|
+
only: master
|
data/.config/cucumber.yml
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
report: --format junit --out reports --format html --out reports/index.html --format pretty
|
|
1
|
+
report: --format junit --out reports --format html --out reports/index.html --format pretty --publish-quiet
|
data/.rubocop.yml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
AllCops:
|
|
2
|
-
TargetRubyVersion: 2.
|
|
2
|
+
TargetRubyVersion: 2.7
|
|
3
3
|
DisplayCopNames: true
|
|
4
|
+
NewCops: enable
|
|
4
5
|
|
|
5
6
|
Layout/LineLength:
|
|
6
7
|
Max: 120
|
|
@@ -17,71 +18,5 @@ Metrics/AbcSize:
|
|
|
17
18
|
Style/Documentation:
|
|
18
19
|
Enabled: false
|
|
19
20
|
|
|
20
|
-
Lint/
|
|
21
|
-
Enabled:
|
|
22
|
-
|
|
23
|
-
Style/HashEachMethods:
|
|
24
|
-
Enabled: true
|
|
25
|
-
|
|
26
|
-
Style/HashTransformKeys:
|
|
27
|
-
Enabled: true
|
|
28
|
-
|
|
29
|
-
Style/HashTransformValues:
|
|
30
|
-
Enabled: true
|
|
31
|
-
|
|
32
|
-
Lint/StructNewOverride:
|
|
33
|
-
Enabled: true
|
|
34
|
-
|
|
35
|
-
Layout/SpaceAroundMethodCallOperator:
|
|
36
|
-
Enabled: true
|
|
37
|
-
|
|
38
|
-
Style/ExponentialNotation:
|
|
39
|
-
Enabled: true
|
|
40
|
-
|
|
41
|
-
Layout/EmptyLinesAroundAttributeAccessor:
|
|
42
|
-
Enabled: true
|
|
43
|
-
|
|
44
|
-
Style/SlicingWithRange:
|
|
45
|
-
Enabled: true
|
|
46
|
-
|
|
47
|
-
Lint/DeprecatedOpenSSLConstant:
|
|
48
|
-
Enabled: true
|
|
49
|
-
|
|
50
|
-
Lint/MixedRegexpCaptureTypes:
|
|
51
|
-
Enabled: true
|
|
52
|
-
|
|
53
|
-
Style/RedundantRegexpCharacterClass:
|
|
54
|
-
Enabled: true
|
|
55
|
-
|
|
56
|
-
Style/RedundantRegexpEscape:
|
|
57
|
-
Enabled: true
|
|
58
|
-
|
|
59
|
-
Style/RedundantFetchBlock:
|
|
60
|
-
Enabled: true
|
|
61
|
-
|
|
62
|
-
Style/AccessorGrouping:
|
|
63
|
-
Enabled: true
|
|
64
|
-
|
|
65
|
-
Style/BisectedAttrAccessor:
|
|
66
|
-
Enabled: true
|
|
67
|
-
|
|
68
|
-
Style/RedundantAssignment:
|
|
69
|
-
Enabled: true
|
|
70
|
-
|
|
71
|
-
Lint/DuplicateElsifCondition:
|
|
72
|
-
Enabled: true
|
|
73
|
-
|
|
74
|
-
Style/ArrayCoercion:
|
|
75
|
-
Enabled: true
|
|
76
|
-
|
|
77
|
-
Style/CaseLikeIf:
|
|
78
|
-
Enabled: true
|
|
79
|
-
|
|
80
|
-
Style/HashAsLastArrayItem:
|
|
81
|
-
Enabled: true
|
|
82
|
-
|
|
83
|
-
Style/HashLikeCase:
|
|
84
|
-
Enabled: true
|
|
85
|
-
|
|
86
|
-
Style/RedundantFileExtensionInRequire:
|
|
87
|
-
Enabled: true
|
|
21
|
+
Lint/HashCompareByIdentity:
|
|
22
|
+
Enabled: false
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-2.7.
|
|
1
|
+
ruby-2.7.2
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
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
|
+
|
|
5
|
+
### [1.35.2](https://github.com/alexfalkowski/nonnative/compare/v1.35.1...v1.35.2) (2021-04-21)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* go command ([#71](https://github.com/alexfalkowski/nonnative/issues/71)) ([fe28cf3](https://github.com/alexfalkowski/nonnative/commit/fe28cf345be108780b47ac4c96d212b215d721a8))
|
|
11
|
+
|
|
12
|
+
### [1.35.1](https://github.com/alexfalkowski/nonnative/compare/v1.35.0...v1.35.1) (2021-04-04)
|
|
13
|
+
|
|
14
|
+
## [1.35.0](https://github.com/alexfalkowski/nonnative/compare/v1.34.0...v1.35.0) (2021-04-03)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **deps:** udate to latest ([#69](https://github.com/alexfalkowski/nonnative/issues/69)) ([8989b5d](https://github.com/alexfalkowski/nonnative/commit/8989b5dd960cc7064ed196545625c9ef8b9ee280))
|
|
20
|
+
* update ruby to version 2.7.2 [ci skip] ([90d3cb7](https://github.com/alexfalkowski/nonnative/commit/90d3cb7b24d2c4a70dd8e4fad809f008c849b34b))
|
|
21
|
+
|
|
22
|
+
## [1.34.0](https://github.com/alexfalkowski/nonnative/compare/v1.33.0...v1.34.0) (2020-10-30)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* bump to version 1.34.0 ([882f3db](https://github.com/alexfalkowski/nonnative/commit/882f3db513a8ffae7661dd000d50a380c2c004d0))
|
|
28
|
+
|
|
29
|
+
## [1.33.0](https://github.com/alexfalkowski/nonnative/compare/v1.32.0...v1.33.0) (2020-10-30)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Features
|
|
33
|
+
|
|
34
|
+
* bump to version 1.33.0 ([538ebf5](https://github.com/alexfalkowski/nonnative/commit/538ebf54c9d49ac3227f9c0a14ce9074d961c42d))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* make sure we don't run ci again ([bf40e54](https://github.com/alexfalkowski/nonnative/commit/bf40e5471d7701040e64c035e652df534db7e783))
|
|
40
|
+
|
|
41
|
+
## [1.32.0](https://github.com/alexfalkowski/nonnative/compare/v1.31.0...v1.32.0) (2020-10-30)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Features
|
|
45
|
+
|
|
46
|
+
* update deps ([a18e739](https://github.com/alexfalkowski/nonnative/commit/a18e739285cab1e75b2c4bb2da573e4b437d05b5))
|
|
47
|
+
|
|
48
|
+
## 1.31.0 (2020-10-30)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
### Features
|
|
52
|
+
|
|
53
|
+
* abort on exception for threads ([16c236a](https://github.com/alexfalkowski/nonnative/commit/16c236afbd4e434d19d26166bf515def56907369))
|
|
54
|
+
* add ability to create chaos ([5c74b1f](https://github.com/alexfalkowski/nonnative/commit/5c74b1fc732017a658bd5e86ba8d1d849028bfa7))
|
|
55
|
+
* add ability to override strategy ([668f61b](https://github.com/alexfalkowski/nonnative/commit/668f61b3d802958bd2d948ba47f54df7ad4725f4))
|
|
56
|
+
* add chaos proxy ([84f6be8](https://github.com/alexfalkowski/nonnative/commit/84f6be83e5d00a582cf6458e34a1f1c169fe81b8))
|
|
57
|
+
* add concurrent-ruby ([0ba97ae](https://github.com/alexfalkowski/nonnative/commit/0ba97ae9c5d471564d9098e50864565208e941b3))
|
|
58
|
+
* add delay to proxy ([9004d56](https://github.com/alexfalkowski/nonnative/commit/9004d5643d38e530124077f777b7fec494aa5a10))
|
|
59
|
+
* add logging to servers ([a6c16a7](https://github.com/alexfalkowski/nonnative/commit/a6c16a7c43ec52b8a6a4766e92fdfe0179bc9b4b))
|
|
60
|
+
* add name property ([7804c22](https://github.com/alexfalkowski/nonnative/commit/7804c22e1e46bc7031628fd99fbb0e1382b9b438))
|
|
61
|
+
* add no proxy ([b819f6c](https://github.com/alexfalkowski/nonnative/commit/b819f6cf10ec86c52e7429e6948369905e079d38))
|
|
62
|
+
* add proxy logs ([66e0acd](https://github.com/alexfalkowski/nonnative/commit/66e0acd4aa01ae9b7335f6df4ff6d4f3c89239ac))
|
|
63
|
+
* add random-port (0.5.1) ([0cb80f0](https://github.com/alexfalkowski/nonnative/commit/0cb80f0a05189fa9aab4ce5ea01d83f02dfe78f7))
|
|
64
|
+
* add running go command ([4c45a19](https://github.com/alexfalkowski/nonnative/commit/4c45a19c9acfa157c67e2bdd1fd470558fa2f80f))
|
|
65
|
+
* add timeout ([dbe4d9b](https://github.com/alexfalkowski/nonnative/commit/dbe4d9b7e7f4d5ecdaa89a60a5b135ccefecc43d))
|
|
66
|
+
* grpc-tools (1.32.0) ([e2ea2fe](https://github.com/alexfalkowski/nonnative/commit/e2ea2fea8cda36cc97e11d75d7b29a12302ce5b5))
|
|
67
|
+
* invalid data ([f83d35f](https://github.com/alexfalkowski/nonnative/commit/f83d35ffc7374d182d8c3e4b513b460d38121c83))
|
|
68
|
+
* loosen grc dep ([11e8de4](https://github.com/alexfalkowski/nonnative/commit/11e8de4228417483c26213f40caee351dbbdf861))
|
|
69
|
+
* loosen grc dep ([498a6d5](https://github.com/alexfalkowski/nonnative/commit/498a6d56c9e157f15ebe77d57cd0477abdc8ec34))
|
|
70
|
+
* move to use predefined port ([439971f](https://github.com/alexfalkowski/nonnative/commit/439971fa0388380701e80bce18d7bf61f07f9bc7))
|
|
71
|
+
* pass options to socket pair ([7ebb938](https://github.com/alexfalkowski/nonnative/commit/7ebb9389c4cab8639f19bf234d65359fbfdef342))
|
|
72
|
+
* process start and stop in order ([589abe9](https://github.com/alexfalkowski/nonnative/commit/589abe9bee0743dc38a57aef5f73871eb277ec28))
|
|
73
|
+
* remove timeout ([d3dc376](https://github.com/alexfalkowski/nonnative/commit/d3dc376522aefd4856e15bba84309a5e77641db6))
|
|
74
|
+
* rename proxy ([5b87699](https://github.com/alexfalkowski/nonnative/commit/5b87699c622e9db7fed865ea75d8ee294c996b5e))
|
|
75
|
+
* socket pair ([d50112e](https://github.com/alexfalkowski/nonnative/commit/d50112e72f4a3f1af93ba2bc4274282c06690048))
|
|
76
|
+
* store connections in concurrent hash ([6731d95](https://github.com/alexfalkowski/nonnative/commit/6731d9523c933a6598ce07b3d65e9678d188c0ad))
|
|
77
|
+
* update cucumber (4.1.0) ([c38ea01](https://github.com/alexfalkowski/nonnative/commit/c38ea015dad051e494a1aa90b7452193735cad79))
|
|
78
|
+
* update deps ([7c9b11f](https://github.com/alexfalkowski/nonnative/commit/7c9b11fb35c9655f2d8b161498e134ab903c82c9))
|
|
79
|
+
* update grpc (1.30.1) ([98b7262](https://github.com/alexfalkowski/nonnative/commit/98b7262d76d30a0097db138e6236a43c296ce207))
|
|
80
|
+
* update puma ([36ff809](https://github.com/alexfalkowski/nonnative/commit/36ff809264c712240f50db24971f6045faaceac3))
|
|
81
|
+
* update to ruby-2.7.1 ([192ed03](https://github.com/alexfalkowski/nonnative/commit/192ed03c9d929e7fdadc80ab7b48b4a8081daed1))
|
|
82
|
+
* use puma ([2bfbb0f](https://github.com/alexfalkowski/nonnative/commit/2bfbb0f15d7e20647e72332aa3830c9144a1148d))
|
|
83
|
+
* use request ([c757b8b](https://github.com/alexfalkowski/nonnative/commit/c757b8b1d4f513451b08dd0408256244c7a29f7f))
|
|
84
|
+
* **command:** wait for pid ([5bf9a34](https://github.com/alexfalkowski/nonnative/commit/5bf9a34ab96b10365e894dd66b260c2aa902f19b))
|
|
85
|
+
* **grpc:** wait for server ([ba90600](https://github.com/alexfalkowski/nonnative/commit/ba906008ed7a8d72f8ee8f5f37eddf541be97a8a))
|
|
86
|
+
* **http:** add put and delete ([54b7b9a](https://github.com/alexfalkowski/nonnative/commit/54b7b9a906e0e80556c058ec85386cf4997d6a1b))
|
|
87
|
+
* **http:** wait for server to start ([10e0f37](https://github.com/alexfalkowski/nonnative/commit/10e0f37e0da9e0896365c771a8886dc0eb94906b))
|
|
88
|
+
* **process:** allow to pass different signal ([6b80e69](https://github.com/alexfalkowski/nonnative/commit/6b80e690f97e3f16a315a271dca5476647ce4177))
|
|
89
|
+
* add grpc (~> 1.28) ([6cabe9e](https://github.com/alexfalkowski/nonnative/commit/6cabe9e6e6107405459be0cdf93afc9fae742d6e))
|
|
90
|
+
* add overridable waiting ([be78cf4](https://github.com/alexfalkowski/nonnative/commit/be78cf47f2cb338cd98dff5ccfd5af3b41321428))
|
|
91
|
+
* **grpc:** use run instead of run_till_terminated ([f0609af](https://github.com/alexfalkowski/nonnative/commit/f0609afe3878a8d4e5eaef77457b7a868bc234e8))
|
|
92
|
+
* add ability to use configuration file ([f3d9c92](https://github.com/alexfalkowski/nonnative/commit/f3d9c923385ad338d42ec924ea60c16dcc1a6ed7))
|
|
93
|
+
* add puma (4.3.3) ([1b3b01c](https://github.com/alexfalkowski/nonnative/commit/1b3b01c17cb3b634e17a68e8e88404ff66fa6be5))
|
|
94
|
+
* add sinatra (2.0.8.1) ([2f27876](https://github.com/alexfalkowski/nonnative/commit/2f2787648deb641dbd78875433f0928e3b754cdd))
|
|
95
|
+
* add starting servers ([47955d3](https://github.com/alexfalkowski/nonnative/commit/47955d327d251ae0df99c6f99bbe4f5e8fa1acb9))
|
|
96
|
+
* add the ability to see the type that has issues ([d119ccc](https://github.com/alexfalkowski/nonnative/commit/d119ccc0f9575740b4a14c5bf5f1912c3db11692))
|
|
97
|
+
* enable rubocop cops ([00266e5](https://github.com/alexfalkowski/nonnative/commit/00266e52cb20d058ebccc5f09f4787d1f6899400))
|
|
98
|
+
* lock cucumber ([a4817a8](https://github.com/alexfalkowski/nonnative/commit/a4817a8d57edb23ebb93610c86f5539ef79af243))
|
|
99
|
+
* lock rspec-benchmark ([03d9b62](https://github.com/alexfalkowski/nonnative/commit/03d9b627314d859cef9b002e1d903f22bad9efad))
|
|
100
|
+
* lock semantic_logger ([e340785](https://github.com/alexfalkowski/nonnative/commit/e340785fa1e97c991196e1ee1168dac3e4973cb3))
|
|
101
|
+
* make sure we don't do things serially ([d265aac](https://github.com/alexfalkowski/nonnative/commit/d265aaca9f798ab004ee125a55e0406f9b2f7739))
|
|
102
|
+
* remove logger ([b2ae52b](https://github.com/alexfalkowski/nonnative/commit/b2ae52b20ce0cf65f431ceaa315b353ed41fcc80))
|
|
103
|
+
* remove logs ([787e490](https://github.com/alexfalkowski/nonnative/commit/787e490b71884c8dcd0920778b88fd94d520dfab))
|
|
104
|
+
* remove structure ([79604f6](https://github.com/alexfalkowski/nonnative/commit/79604f631990a01f48da066014b52742e0bc71d0))
|
|
105
|
+
* remove writting to STDOUT ([be1f668](https://github.com/alexfalkowski/nonnative/commit/be1f668278a74f5c3a33538dbeda77ac9b93d316))
|
|
106
|
+
* rename to configuration process ([aac5b4c](https://github.com/alexfalkowski/nonnative/commit/aac5b4c435ea1fb3942a0c752f573ff2ca5026b6))
|
|
107
|
+
* rename to process pool ([9e4391e](https://github.com/alexfalkowski/nonnative/commit/9e4391e94fc32d69cdf651eff8995bac91f965fd))
|
|
108
|
+
* start multiple processes ([5a9c8ba](https://github.com/alexfalkowski/nonnative/commit/5a9c8baf22537dc246fc73eab3d1a645bc51f4be))
|
|
109
|
+
* start nonnative with a long start up time server will error ([6770f66](https://github.com/alexfalkowski/nonnative/commit/6770f6657ccb724c311a43e77b03595943504fef))
|
|
110
|
+
* stop nonnative with a long stopping time server will error ([3040227](https://github.com/alexfalkowski/nonnative/commit/3040227113c50aa9a7e84bf44bd03a3c0a6142be))
|
|
111
|
+
* successfully starting of grpc servers programatically ([cc92276](https://github.com/alexfalkowski/nonnative/commit/cc9227620ecb8133277871967eb835f67943ccad))
|
|
112
|
+
* successfully starting of HTTP servers programatically ([93373f1](https://github.com/alexfalkowski/nonnative/commit/93373f1b85d50328b54ee49236f55acd2c5c0180))
|
|
113
|
+
* successfully starting of HTTP servers programatically and getting health ([be9ae06](https://github.com/alexfalkowski/nonnative/commit/be9ae06952e83af666f654a9782b596673709c87))
|
|
114
|
+
* successfully starting of HTTP servers programatically and getting metrics ([4536904](https://github.com/alexfalkowski/nonnative/commit/45369041a8d95e240b5533d2132b60fa4d31278f))
|
|
115
|
+
* successfully starting of HTTP servers programatically with not found message ([111d81d](https://github.com/alexfalkowski/nonnative/commit/111d81da298a7203c08fa5725e2310736b613fb9))
|
|
116
|
+
* update rspec-expectations (3.9.2) ([1f656a9](https://github.com/alexfalkowski/nonnative/commit/1f656a975e2fd6b1af830ca38f24d978a105d0e0))
|
|
117
|
+
* update rubocop (0.82.0) ([48e462d](https://github.com/alexfalkowski/nonnative/commit/48e462d980f858102a45367fc420b7c66596a22f))
|
|
118
|
+
* update solargraph (0.39.7) ([8caff98](https://github.com/alexfalkowski/nonnative/commit/8caff98e5fea79c7123cc49f573ef2122ef14b33))
|
|
119
|
+
* use 0.0.0.0 ([1e77298](https://github.com/alexfalkowski/nonnative/commit/1e77298620666578472220c0e02c5121a4d9838f))
|
|
120
|
+
* use better naming. ([228c9ed](https://github.com/alexfalkowski/nonnative/commit/228c9ed9607c30834f0f5dfa46114a2ed84b67a3))
|
|
121
|
+
* use ruby 2.6.6 ([fdb61da](https://github.com/alexfalkowski/nonnative/commit/fdb61da719e6cf3d35db7d8af6acea19481a8ff9))
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### Bug Fixes
|
|
125
|
+
|
|
126
|
+
* add comments ([cb93b23](https://github.com/alexfalkowski/nonnative/commit/cb93b23a3c8ae463b656fb4a43e2b7dab83db2f5))
|
|
127
|
+
* add small sleeps as prcesses and severs take time to start. ([1e3d363](https://github.com/alexfalkowski/nonnative/commit/1e3d36302c0fc0c58f7b2239db39876acf4ec2fc))
|
|
128
|
+
* ignore exceptions ([4076cf2](https://github.com/alexfalkowski/nonnative/commit/4076cf2019924b89f2766edbafed603d08c63cc6))
|
|
129
|
+
* only raise an error after we have finished start or stop ([b7b0b17](https://github.com/alexfalkowski/nonnative/commit/b7b0b17cc4cac53abcb052a76afc29312b0b971b))
|
|
130
|
+
* pass service like in command ([43a961b](https://github.com/alexfalkowski/nonnative/commit/43a961b7bfa5e954371d14553009969f89af87a4))
|
|
131
|
+
* register at exit first ([7dad865](https://github.com/alexfalkowski/nonnative/commit/7dad865a29117b830c7717d167e14f88c9d6f2af))
|
|
132
|
+
* remove rescue ([230ae39](https://github.com/alexfalkowski/nonnative/commit/230ae395406552bbe7610a9c37322573c2d6f92b))
|
|
133
|
+
* remove thwait ([62cf089](https://github.com/alexfalkowski/nonnative/commit/62cf089e3b10bae8290d8cfbb2b8c4e4c50aef1f))
|
|
134
|
+
* remove unused vriables ([0d38d8a](https://github.com/alexfalkowski/nonnative/commit/0d38d8a12d108370682e2f7cad5f5a4f62e5835f))
|
|
135
|
+
* start servers first ([9a483f0](https://github.com/alexfalkowski/nonnative/commit/9a483f02709b4b954205dc66bf7ea7fa20110a37))
|
|
136
|
+
* stop servers first ([a736496](https://github.com/alexfalkowski/nonnative/commit/a73649666010820697539c621fb9a7e8677008a7))
|
|
137
|
+
* sync state ([75ab8e8](https://github.com/alexfalkowski/nonnative/commit/75ab8e8a9ea421aac8e970a3b7b1c2c1c556b425))
|
|
138
|
+
* **chaos:** ignore ECONNRESET ([c5ff8df](https://github.com/alexfalkowski/nonnative/commit/c5ff8dfcb3af8dbe8fb9fb5a6f04dd2308eadbaa))
|
|
139
|
+
* **grpc:** make servers consistent ([ece8404](https://github.com/alexfalkowski/nonnative/commit/ece8404d0a56ded351df317f3dacaac054f67f0a))
|
|
140
|
+
* **grpc:** pass timout to wait ([0a18218](https://github.com/alexfalkowski/nonnative/commit/0a18218ff675a4bf76d39ac2c547a87955013e42))
|
|
141
|
+
* **http:** allow to run multiple servers ([6e640de](https://github.com/alexfalkowski/nonnative/commit/6e640ded9312d89de125f0b2bb9a34c982163a41))
|
data/Gemfile.lock
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
nonnative (1.
|
|
4
|
+
nonnative (1.36.0)
|
|
5
5
|
concurrent-ruby (~> 1.0, >= 1.0.5)
|
|
6
|
-
cucumber (>=
|
|
6
|
+
cucumber (>= 5, < 6)
|
|
7
7
|
grpc (>= 1, < 2)
|
|
8
|
-
puma (~>
|
|
8
|
+
puma (~> 5.0)
|
|
9
9
|
rest-client (~> 2.1)
|
|
10
10
|
rspec-benchmark (~> 0.6.0)
|
|
11
11
|
rspec-expectations (~> 3.9, >= 3.9.2)
|
|
@@ -14,101 +14,104 @@ PATH
|
|
|
14
14
|
GEM
|
|
15
15
|
remote: https://rubygems.org/
|
|
16
16
|
specs:
|
|
17
|
-
activesupport (6.
|
|
17
|
+
activesupport (6.1.3.1)
|
|
18
18
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
19
|
-
i18n (>=
|
|
20
|
-
minitest (
|
|
21
|
-
tzinfo (~>
|
|
22
|
-
zeitwerk (~> 2.
|
|
23
|
-
ast (2.4.
|
|
19
|
+
i18n (>= 1.6, < 2)
|
|
20
|
+
minitest (>= 5.1)
|
|
21
|
+
tzinfo (~> 2.0)
|
|
22
|
+
zeitwerk (~> 2.3)
|
|
23
|
+
ast (2.4.2)
|
|
24
24
|
backport (1.1.2)
|
|
25
|
-
benchmark (0.1.
|
|
25
|
+
benchmark (0.1.1)
|
|
26
26
|
benchmark-malloc (0.2.0)
|
|
27
27
|
benchmark-perf (0.6.0)
|
|
28
28
|
benchmark-trend (0.4.0)
|
|
29
29
|
builder (3.2.4)
|
|
30
|
-
concurrent-ruby (1.1.
|
|
31
|
-
cucumber (
|
|
32
|
-
builder (~> 3.2, >= 3.2.
|
|
33
|
-
cucumber-core (~>
|
|
34
|
-
cucumber-create-meta (~>
|
|
35
|
-
cucumber-cucumber-expressions (~> 10.
|
|
36
|
-
cucumber-gherkin (~>
|
|
37
|
-
cucumber-html-formatter (~>
|
|
38
|
-
cucumber-messages (~>
|
|
39
|
-
cucumber-wire (~>
|
|
40
|
-
diff-lcs (~> 1.
|
|
30
|
+
concurrent-ruby (1.1.8)
|
|
31
|
+
cucumber (5.3.0)
|
|
32
|
+
builder (~> 3.2, >= 3.2.4)
|
|
33
|
+
cucumber-core (~> 8.0, >= 8.0.1)
|
|
34
|
+
cucumber-create-meta (~> 2.0, >= 2.0.2)
|
|
35
|
+
cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
|
|
36
|
+
cucumber-gherkin (~> 15.0, >= 15.0.2)
|
|
37
|
+
cucumber-html-formatter (~> 9.0, >= 9.0.0)
|
|
38
|
+
cucumber-messages (~> 13.1, >= 13.1.0)
|
|
39
|
+
cucumber-wire (~> 4.0, >= 4.0.1)
|
|
40
|
+
diff-lcs (~> 1.4, >= 1.4.4)
|
|
41
41
|
multi_test (~> 0.1, >= 0.1.2)
|
|
42
|
-
sys-uname (~> 1.
|
|
43
|
-
cucumber-core (
|
|
44
|
-
cucumber-gherkin (~>
|
|
45
|
-
cucumber-messages (~>
|
|
42
|
+
sys-uname (~> 1.2, >= 1.2.1)
|
|
43
|
+
cucumber-core (8.0.1)
|
|
44
|
+
cucumber-gherkin (~> 15.0, >= 15.0.2)
|
|
45
|
+
cucumber-messages (~> 13.0, >= 13.0.1)
|
|
46
46
|
cucumber-tag-expressions (~> 2.0, >= 2.0.4)
|
|
47
|
-
cucumber-create-meta (
|
|
48
|
-
cucumber-messages (~>
|
|
47
|
+
cucumber-create-meta (2.0.4)
|
|
48
|
+
cucumber-messages (~> 13.1, >= 13.1.0)
|
|
49
49
|
sys-uname (~> 1.2, >= 1.2.1)
|
|
50
|
-
cucumber-cucumber-expressions (10.
|
|
51
|
-
cucumber-gherkin (
|
|
52
|
-
cucumber-messages (~>
|
|
53
|
-
cucumber-html-formatter (
|
|
54
|
-
cucumber-messages (~>
|
|
55
|
-
cucumber-messages (
|
|
50
|
+
cucumber-cucumber-expressions (10.3.0)
|
|
51
|
+
cucumber-gherkin (15.0.2)
|
|
52
|
+
cucumber-messages (~> 13.0, >= 13.0.1)
|
|
53
|
+
cucumber-html-formatter (9.0.0)
|
|
54
|
+
cucumber-messages (~> 13.0, >= 13.0.1)
|
|
55
|
+
cucumber-messages (13.2.1)
|
|
56
56
|
protobuf-cucumber (~> 3.10, >= 3.10.8)
|
|
57
57
|
cucumber-tag-expressions (2.0.4)
|
|
58
|
-
cucumber-wire (
|
|
59
|
-
cucumber-core (~>
|
|
60
|
-
cucumber-cucumber-expressions (~> 10.
|
|
61
|
-
cucumber-messages (~>
|
|
62
|
-
diff-lcs (1.
|
|
63
|
-
docile (1.3.
|
|
58
|
+
cucumber-wire (4.0.1)
|
|
59
|
+
cucumber-core (~> 8.0, >= 8.0.1)
|
|
60
|
+
cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
|
|
61
|
+
cucumber-messages (~> 13.0, >= 13.0.1)
|
|
62
|
+
diff-lcs (1.4.4)
|
|
63
|
+
docile (1.3.5)
|
|
64
64
|
domain_name (0.5.20190701)
|
|
65
65
|
unf (>= 0.0.5, < 1.0.0)
|
|
66
66
|
e2mmap (0.1.0)
|
|
67
|
-
ffi (1.
|
|
68
|
-
google-protobuf (3.
|
|
69
|
-
googleapis-common-protos-types (1.0.
|
|
70
|
-
google-protobuf (~> 3.
|
|
71
|
-
grpc (1.
|
|
72
|
-
google-protobuf (~> 3.
|
|
67
|
+
ffi (1.15.0)
|
|
68
|
+
google-protobuf (3.15.8)
|
|
69
|
+
googleapis-common-protos-types (1.0.6)
|
|
70
|
+
google-protobuf (~> 3.14)
|
|
71
|
+
grpc (1.37.0)
|
|
72
|
+
google-protobuf (~> 3.15)
|
|
73
73
|
googleapis-common-protos-types (~> 1.0)
|
|
74
|
-
grpc-tools (1.
|
|
74
|
+
grpc-tools (1.37.0)
|
|
75
75
|
http-accept (1.7.0)
|
|
76
76
|
http-cookie (1.0.3)
|
|
77
77
|
domain_name (~> 0.5)
|
|
78
|
-
i18n (1.8.
|
|
78
|
+
i18n (1.8.10)
|
|
79
79
|
concurrent-ruby (~> 1.0)
|
|
80
80
|
jaro_winkler (1.5.4)
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
kramdown (2.3.1)
|
|
82
|
+
rexml
|
|
83
|
+
kramdown-parser-gfm (1.1.0)
|
|
84
|
+
kramdown (~> 2.0)
|
|
83
85
|
middleware (0.1.0)
|
|
84
86
|
mime-types (3.3.1)
|
|
85
87
|
mime-types-data (~> 3.2015)
|
|
86
|
-
mime-types-data (3.
|
|
87
|
-
mini_portile2 (2.
|
|
88
|
-
minitest (5.14.
|
|
88
|
+
mime-types-data (3.2021.0225)
|
|
89
|
+
mini_portile2 (2.5.0)
|
|
90
|
+
minitest (5.14.4)
|
|
89
91
|
multi_test (0.1.2)
|
|
90
92
|
mustermann (1.1.1)
|
|
91
93
|
ruby2_keywords (~> 0.0.1)
|
|
92
94
|
netrc (0.11.0)
|
|
93
|
-
nio4r (2.5.
|
|
94
|
-
nokogiri (1.
|
|
95
|
-
mini_portile2 (~> 2.
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
nio4r (2.5.7)
|
|
96
|
+
nokogiri (1.11.3)
|
|
97
|
+
mini_portile2 (~> 2.5.0)
|
|
98
|
+
racc (~> 1.4)
|
|
99
|
+
parallel (1.20.1)
|
|
100
|
+
parser (3.0.1.0)
|
|
98
101
|
ast (~> 2.4.1)
|
|
99
102
|
protobuf-cucumber (3.10.8)
|
|
100
103
|
activesupport (>= 3.2)
|
|
101
104
|
middleware
|
|
102
105
|
thor
|
|
103
106
|
thread_safe
|
|
104
|
-
puma (
|
|
107
|
+
puma (5.2.2)
|
|
105
108
|
nio4r (~> 2.0)
|
|
109
|
+
racc (1.5.2)
|
|
106
110
|
rack (2.2.3)
|
|
107
|
-
rack-protection (2.0
|
|
111
|
+
rack-protection (2.1.0)
|
|
108
112
|
rack
|
|
109
113
|
rainbow (3.0.0)
|
|
110
|
-
|
|
111
|
-
regexp_parser (1.7.1)
|
|
114
|
+
regexp_parser (2.1.1)
|
|
112
115
|
rest-client (2.1.0)
|
|
113
116
|
http-accept (>= 1.7.0, < 2.0)
|
|
114
117
|
http-cookie (>= 1.0.2, < 2.0)
|
|
@@ -116,75 +119,76 @@ GEM
|
|
|
116
119
|
netrc (~> 0.8)
|
|
117
120
|
reverse_markdown (2.0.0)
|
|
118
121
|
nokogiri
|
|
119
|
-
rexml (3.2.
|
|
120
|
-
rspec (3.
|
|
121
|
-
rspec-core (~> 3.
|
|
122
|
-
rspec-expectations (~> 3.
|
|
123
|
-
rspec-mocks (~> 3.
|
|
122
|
+
rexml (3.2.5)
|
|
123
|
+
rspec (3.10.0)
|
|
124
|
+
rspec-core (~> 3.10.0)
|
|
125
|
+
rspec-expectations (~> 3.10.0)
|
|
126
|
+
rspec-mocks (~> 3.10.0)
|
|
124
127
|
rspec-benchmark (0.6.0)
|
|
125
128
|
benchmark-malloc (~> 0.2)
|
|
126
129
|
benchmark-perf (~> 0.6)
|
|
127
130
|
benchmark-trend (~> 0.4)
|
|
128
131
|
rspec (>= 3.0)
|
|
129
|
-
rspec-core (3.
|
|
130
|
-
rspec-support (~> 3.
|
|
131
|
-
rspec-expectations (3.
|
|
132
|
+
rspec-core (3.10.1)
|
|
133
|
+
rspec-support (~> 3.10.0)
|
|
134
|
+
rspec-expectations (3.10.1)
|
|
132
135
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
133
|
-
rspec-support (~> 3.
|
|
134
|
-
rspec-mocks (3.
|
|
136
|
+
rspec-support (~> 3.10.0)
|
|
137
|
+
rspec-mocks (3.10.2)
|
|
135
138
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
136
|
-
rspec-support (~> 3.
|
|
137
|
-
rspec-support (3.
|
|
138
|
-
rubocop (
|
|
139
|
+
rspec-support (~> 3.10.0)
|
|
140
|
+
rspec-support (3.10.2)
|
|
141
|
+
rubocop (1.13.0)
|
|
139
142
|
parallel (~> 1.10)
|
|
140
|
-
parser (>=
|
|
143
|
+
parser (>= 3.0.0.0)
|
|
141
144
|
rainbow (>= 2.2.2, < 4.0)
|
|
142
|
-
regexp_parser (>= 1.
|
|
145
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
143
146
|
rexml
|
|
144
|
-
rubocop-ast (>=
|
|
147
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
|
145
148
|
ruby-progressbar (~> 1.7)
|
|
146
|
-
unicode-display_width (>= 1.4.0, <
|
|
147
|
-
rubocop-ast (
|
|
148
|
-
parser (>= 2.7.
|
|
149
|
-
ruby-progressbar (1.
|
|
150
|
-
ruby2_keywords (0.0.
|
|
151
|
-
simplecov (0.
|
|
149
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
150
|
+
rubocop-ast (1.4.1)
|
|
151
|
+
parser (>= 2.7.1.5)
|
|
152
|
+
ruby-progressbar (1.11.0)
|
|
153
|
+
ruby2_keywords (0.0.4)
|
|
154
|
+
simplecov (0.21.2)
|
|
152
155
|
docile (~> 1.1)
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
simplecov-html (0.
|
|
156
|
-
|
|
156
|
+
simplecov-html (~> 0.11)
|
|
157
|
+
simplecov_json_formatter (~> 0.1)
|
|
158
|
+
simplecov-html (0.12.3)
|
|
159
|
+
simplecov_json_formatter (0.1.2)
|
|
160
|
+
sinatra (2.1.0)
|
|
157
161
|
mustermann (~> 1.0)
|
|
158
|
-
rack (~> 2.
|
|
159
|
-
rack-protection (= 2.0
|
|
162
|
+
rack (~> 2.2)
|
|
163
|
+
rack-protection (= 2.1.0)
|
|
160
164
|
tilt (~> 2.0)
|
|
161
|
-
solargraph (0.
|
|
165
|
+
solargraph (0.40.4)
|
|
162
166
|
backport (~> 1.1)
|
|
163
167
|
benchmark
|
|
164
168
|
bundler (>= 1.17.2)
|
|
165
169
|
e2mmap
|
|
166
170
|
jaro_winkler (~> 1.5)
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
parser (~>
|
|
171
|
+
kramdown (~> 2.3)
|
|
172
|
+
kramdown-parser-gfm (~> 1.1)
|
|
173
|
+
parser (~> 3.0)
|
|
170
174
|
reverse_markdown (>= 1.0.5, < 3)
|
|
171
|
-
rubocop (
|
|
175
|
+
rubocop (>= 0.52)
|
|
172
176
|
thor (~> 1.0)
|
|
173
177
|
tilt (~> 2.0)
|
|
174
178
|
yard (~> 0.9, >= 0.9.24)
|
|
175
|
-
sys-uname (1.2.
|
|
176
|
-
ffi (
|
|
179
|
+
sys-uname (1.2.2)
|
|
180
|
+
ffi (~> 1.1)
|
|
177
181
|
thor (1.0.1)
|
|
178
182
|
thread_safe (0.3.6)
|
|
179
183
|
tilt (2.0.10)
|
|
180
|
-
tzinfo (
|
|
181
|
-
|
|
184
|
+
tzinfo (2.0.4)
|
|
185
|
+
concurrent-ruby (~> 1.0)
|
|
182
186
|
unf (0.1.4)
|
|
183
187
|
unf_ext
|
|
184
188
|
unf_ext (0.0.7.7)
|
|
185
|
-
unicode-display_width (
|
|
186
|
-
yard (0.9.
|
|
187
|
-
zeitwerk (2.4.
|
|
189
|
+
unicode-display_width (2.0.0)
|
|
190
|
+
yard (0.9.26)
|
|
191
|
+
zeitwerk (2.4.2)
|
|
188
192
|
|
|
189
193
|
PLATFORMS
|
|
190
194
|
ruby
|
|
@@ -193,10 +197,9 @@ DEPENDENCIES
|
|
|
193
197
|
bundler (~> 2.1, >= 2.1.4)
|
|
194
198
|
grpc-tools (>= 1, < 2)
|
|
195
199
|
nonnative!
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
solargraph (~> 0.39.11)
|
|
200
|
+
rubocop (~> 1.12)
|
|
201
|
+
simplecov (~> 0.21.2)
|
|
202
|
+
solargraph (~> 0.40.4)
|
|
200
203
|
|
|
201
204
|
BUNDLED WITH
|
|
202
205
|
2.1.4
|
data/Makefile
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
.PHONY: features
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
dep:
|
|
4
4
|
bin/setup
|
|
5
5
|
|
|
6
|
-
outdated
|
|
6
|
+
outdated:
|
|
7
7
|
bundle outdated --only-explicit
|
|
8
8
|
|
|
9
9
|
features: clean
|
|
10
10
|
bundle exec cucumber --profile report --fail-fast $(feature)
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
lint:
|
|
13
13
|
bundle exec rubocop
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
bundle exec rubocop -
|
|
15
|
+
fix-lint:
|
|
16
|
+
bundle exec rubocop -A
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
clean-logs:
|
|
19
19
|
rm -rf features/logs/*.log
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
clean-reports:
|
|
22
22
|
rm -rf reports
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
clean-coverage:
|
|
25
25
|
rm -rf coverage
|
|
26
26
|
|
|
27
|
-
clean:
|
|
27
|
+
clean: clean-logs clean-reports clean-coverage
|
data/README.md
CHANGED
|
@@ -373,3 +373,39 @@ server = Nonnative.pool.server_by_name(name)
|
|
|
373
373
|
server.proxy.close_all # To use close_all.
|
|
374
374
|
server.proxy.reset # To reset it back to a good state.
|
|
375
375
|
```
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
### Go
|
|
379
|
+
|
|
380
|
+
As we love using go as a language for services we have added support to start binaries with defined parameters. This expects that you build your services in the format of `command sub_command --params`
|
|
381
|
+
|
|
382
|
+
To get this to work you will need to create a `main_test.go` file with these contents:
|
|
383
|
+
|
|
384
|
+
```go
|
|
385
|
+
// +build features
|
|
386
|
+
|
|
387
|
+
package main
|
|
388
|
+
|
|
389
|
+
import (
|
|
390
|
+
"testing"
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
// TestFeatures is a hack that allows us to figure out what the coverage is during
|
|
394
|
+
// integration tests. I would not recommend that you use a binary built using
|
|
395
|
+
// this hack outside of a test suite.
|
|
396
|
+
func TestFeatures(t *testing.T) {
|
|
397
|
+
main()
|
|
398
|
+
}
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
Then to compile this binary you will need to do the following:
|
|
402
|
+
|
|
403
|
+
```sh
|
|
404
|
+
go test -mod vendor -c -tags features -covermode=count -o your_binary -coverpkg=./... github.com/your_location
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Then to get an executable you do the following:
|
|
408
|
+
|
|
409
|
+
```ruby
|
|
410
|
+
Nonnative::GoCommand.new('your_binary', 'reports').executable('sub_command', '--config config.yaml')
|
|
411
|
+
```
|
data/lib/nonnative.rb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require 'socket'
|
|
4
4
|
require 'timeout'
|
|
5
5
|
require 'yaml'
|
|
6
|
+
require 'open3'
|
|
6
7
|
|
|
7
8
|
require 'grpc'
|
|
8
9
|
require 'sinatra'
|
|
@@ -28,7 +29,6 @@ require 'nonnative/server'
|
|
|
28
29
|
require 'nonnative/http_client'
|
|
29
30
|
require 'nonnative/http_server'
|
|
30
31
|
require 'nonnative/grpc_server'
|
|
31
|
-
require 'nonnative/grpc_server'
|
|
32
32
|
require 'nonnative/observability'
|
|
33
33
|
require 'nonnative/proxy_factory'
|
|
34
34
|
require 'nonnative/proxy'
|
|
@@ -40,6 +40,7 @@ require 'nonnative/delay_socket_pair'
|
|
|
40
40
|
require 'nonnative/invalid_data_socket_pair'
|
|
41
41
|
require 'nonnative/socket_pair_factory'
|
|
42
42
|
require 'nonnative/strategy'
|
|
43
|
+
require 'nonnative/go_command'
|
|
43
44
|
|
|
44
45
|
module Nonnative
|
|
45
46
|
class << self
|
|
@@ -40,19 +40,21 @@ module Nonnative
|
|
|
40
40
|
s.port = fd['port']
|
|
41
41
|
s.log = fd['log']
|
|
42
42
|
|
|
43
|
-
proxy
|
|
44
|
-
|
|
45
|
-
if proxy
|
|
46
|
-
s.proxy = {
|
|
47
|
-
type: proxy['type'],
|
|
48
|
-
port: proxy['port'],
|
|
49
|
-
log: proxy['log'],
|
|
50
|
-
options: proxy['options']
|
|
51
|
-
}
|
|
52
|
-
end
|
|
43
|
+
proxy s, fd['proxy']
|
|
53
44
|
end
|
|
54
45
|
end
|
|
55
46
|
end
|
|
47
|
+
|
|
48
|
+
def proxy(server, proxy)
|
|
49
|
+
return unless proxy
|
|
50
|
+
|
|
51
|
+
server.proxy = {
|
|
52
|
+
type: proxy['type'],
|
|
53
|
+
port: proxy['port'],
|
|
54
|
+
log: proxy['log'],
|
|
55
|
+
options: proxy['options']
|
|
56
|
+
}
|
|
57
|
+
end
|
|
56
58
|
end
|
|
57
59
|
|
|
58
60
|
def initialize
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Nonnative
|
|
4
|
+
class GoCommand
|
|
5
|
+
def initialize(exec, output)
|
|
6
|
+
@exec = exec
|
|
7
|
+
@output = output
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def executable(cmd, *params)
|
|
11
|
+
params = params.join(' ')
|
|
12
|
+
"#{exec} #{flags(cmd, params).join(' ')} #{cmd} #{params}".strip
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def execute(cmd, *params)
|
|
16
|
+
Open3.popen3(executable(cmd, params)) do |_stdin, stdout, stderr, wait_thr|
|
|
17
|
+
return stdout.read, stderr.read, wait_thr.value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
attr_reader :exec, :output
|
|
24
|
+
|
|
25
|
+
def flags(cmd, params)
|
|
26
|
+
m = File.basename(exec, File.extname(exec))
|
|
27
|
+
p = params.gsub(/\W/, '')
|
|
28
|
+
name = [m, cmd, p].reject(&:empty?).join('-')
|
|
29
|
+
path = "#{output}/#{name}"
|
|
30
|
+
|
|
31
|
+
[
|
|
32
|
+
"-test.cpuprofile=#{path}-cpu.prof",
|
|
33
|
+
"-test.memprofile=#{path}-mem.prof",
|
|
34
|
+
"-test.blockprofile=#{path}-block.prof",
|
|
35
|
+
"-test.mutexprofile=#{path}-mutex.prof",
|
|
36
|
+
"-test.coverprofile=#{path}.cov",
|
|
37
|
+
"-test.trace=#{path}-trace.out"
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
data/lib/nonnative/timeout.rb
CHANGED
data/lib/nonnative/version.rb
CHANGED
data/nonnative.gemspec
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
lib = File.expand_path('lib', __dir__)
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
+
|
|
5
6
|
require 'nonnative/version'
|
|
6
7
|
|
|
7
8
|
Gem::Specification.new do |spec|
|
|
@@ -14,20 +15,18 @@ Gem::Specification.new do |spec|
|
|
|
14
15
|
spec.description = spec.summary
|
|
15
16
|
spec.homepage = 'https://github.com/alexfalkowski/nonnative'
|
|
16
17
|
spec.license = 'Unlicense'
|
|
17
|
-
|
|
18
|
-
# Specify which files should be added to the gem when it is released.
|
|
19
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
20
18
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
21
19
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
22
20
|
end
|
|
23
21
|
spec.bindir = 'exe'
|
|
24
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
25
23
|
spec.require_paths = ['lib']
|
|
24
|
+
spec.required_ruby_version = ['>= 2.7.0', '< 2.8.0']
|
|
26
25
|
|
|
27
26
|
spec.add_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
|
|
28
|
-
spec.add_dependency 'cucumber', ['>=
|
|
27
|
+
spec.add_dependency 'cucumber', ['>= 5', '< 6']
|
|
29
28
|
spec.add_dependency 'grpc', ['>= 1', '< 2']
|
|
30
|
-
spec.add_dependency 'puma', '~>
|
|
29
|
+
spec.add_dependency 'puma', '~> 5.0'
|
|
31
30
|
spec.add_dependency 'rest-client', '~> 2.1'
|
|
32
31
|
spec.add_dependency 'rspec-benchmark', '~> 0.6.0'
|
|
33
32
|
spec.add_dependency 'rspec-expectations', '~> 3.9', '>= 3.9.2'
|
|
@@ -35,8 +34,7 @@ Gem::Specification.new do |spec|
|
|
|
35
34
|
|
|
36
35
|
spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.4'
|
|
37
36
|
spec.add_development_dependency 'grpc-tools', ['>= 1', '< 2']
|
|
38
|
-
spec.add_development_dependency '
|
|
39
|
-
spec.add_development_dependency '
|
|
40
|
-
spec.add_development_dependency '
|
|
41
|
-
spec.add_development_dependency 'solargraph', '~> 0.39.11'
|
|
37
|
+
spec.add_development_dependency 'rubocop', '~> 1.12'
|
|
38
|
+
spec.add_development_dependency 'simplecov', '~> 0.21.2'
|
|
39
|
+
spec.add_development_dependency 'solargraph', '~> 0.40.4'
|
|
42
40
|
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.36.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex Falkowski
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-04-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: concurrent-ruby
|
|
@@ -36,20 +36,20 @@ dependencies:
|
|
|
36
36
|
requirements:
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
39
|
+
version: '5'
|
|
40
40
|
- - "<"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '
|
|
42
|
+
version: '6'
|
|
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: '5'
|
|
50
50
|
- - "<"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: '
|
|
52
|
+
version: '6'
|
|
53
53
|
- !ruby/object:Gem::Dependency
|
|
54
54
|
name: grpc
|
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -76,20 +76,14 @@ dependencies:
|
|
|
76
76
|
requirements:
|
|
77
77
|
- - "~>"
|
|
78
78
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: '
|
|
80
|
-
- - ">="
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: 4.3.3
|
|
79
|
+
version: '5.0'
|
|
83
80
|
type: :runtime
|
|
84
81
|
prerelease: false
|
|
85
82
|
version_requirements: !ruby/object:Gem::Requirement
|
|
86
83
|
requirements:
|
|
87
84
|
- - "~>"
|
|
88
85
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
90
|
-
- - ">="
|
|
91
|
-
- !ruby/object:Gem::Version
|
|
92
|
-
version: 4.3.3
|
|
86
|
+
version: '5.0'
|
|
93
87
|
- !ruby/object:Gem::Dependency
|
|
94
88
|
name: rest-client
|
|
95
89
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -198,68 +192,48 @@ dependencies:
|
|
|
198
192
|
- - "<"
|
|
199
193
|
- !ruby/object:Gem::Version
|
|
200
194
|
version: '2'
|
|
201
|
-
- !ruby/object:Gem::Dependency
|
|
202
|
-
name: rake
|
|
203
|
-
requirement: !ruby/object:Gem::Requirement
|
|
204
|
-
requirements:
|
|
205
|
-
- - "~>"
|
|
206
|
-
- !ruby/object:Gem::Version
|
|
207
|
-
version: '13.0'
|
|
208
|
-
- - ">="
|
|
209
|
-
- !ruby/object:Gem::Version
|
|
210
|
-
version: 13.0.1
|
|
211
|
-
type: :development
|
|
212
|
-
prerelease: false
|
|
213
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
214
|
-
requirements:
|
|
215
|
-
- - "~>"
|
|
216
|
-
- !ruby/object:Gem::Version
|
|
217
|
-
version: '13.0'
|
|
218
|
-
- - ">="
|
|
219
|
-
- !ruby/object:Gem::Version
|
|
220
|
-
version: 13.0.1
|
|
221
195
|
- !ruby/object:Gem::Dependency
|
|
222
196
|
name: rubocop
|
|
223
197
|
requirement: !ruby/object:Gem::Requirement
|
|
224
198
|
requirements:
|
|
225
199
|
- - "~>"
|
|
226
200
|
- !ruby/object:Gem::Version
|
|
227
|
-
version: '
|
|
201
|
+
version: '1.12'
|
|
228
202
|
type: :development
|
|
229
203
|
prerelease: false
|
|
230
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
231
205
|
requirements:
|
|
232
206
|
- - "~>"
|
|
233
207
|
- !ruby/object:Gem::Version
|
|
234
|
-
version: '
|
|
208
|
+
version: '1.12'
|
|
235
209
|
- !ruby/object:Gem::Dependency
|
|
236
210
|
name: simplecov
|
|
237
211
|
requirement: !ruby/object:Gem::Requirement
|
|
238
212
|
requirements:
|
|
239
213
|
- - "~>"
|
|
240
214
|
- !ruby/object:Gem::Version
|
|
241
|
-
version: 0.
|
|
215
|
+
version: 0.21.2
|
|
242
216
|
type: :development
|
|
243
217
|
prerelease: false
|
|
244
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
245
219
|
requirements:
|
|
246
220
|
- - "~>"
|
|
247
221
|
- !ruby/object:Gem::Version
|
|
248
|
-
version: 0.
|
|
222
|
+
version: 0.21.2
|
|
249
223
|
- !ruby/object:Gem::Dependency
|
|
250
224
|
name: solargraph
|
|
251
225
|
requirement: !ruby/object:Gem::Requirement
|
|
252
226
|
requirements:
|
|
253
227
|
- - "~>"
|
|
254
228
|
- !ruby/object:Gem::Version
|
|
255
|
-
version: 0.
|
|
229
|
+
version: 0.40.4
|
|
256
230
|
type: :development
|
|
257
231
|
prerelease: false
|
|
258
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
259
233
|
requirements:
|
|
260
234
|
- - "~>"
|
|
261
235
|
- !ruby/object:Gem::Version
|
|
262
|
-
version: 0.
|
|
236
|
+
version: 0.40.4
|
|
263
237
|
description: Allows you to keep using the power of ruby to test other systems
|
|
264
238
|
email:
|
|
265
239
|
- alexrfalkowski@gmail.com
|
|
@@ -273,12 +247,12 @@ files:
|
|
|
273
247
|
- ".gitignore"
|
|
274
248
|
- ".rubocop.yml"
|
|
275
249
|
- ".ruby-version"
|
|
250
|
+
- CHANGELOG.md
|
|
276
251
|
- Gemfile
|
|
277
252
|
- Gemfile.lock
|
|
278
253
|
- LICENSE
|
|
279
254
|
- Makefile
|
|
280
255
|
- README.md
|
|
281
|
-
- Rakefile
|
|
282
256
|
- bin/console
|
|
283
257
|
- bin/setup
|
|
284
258
|
- lib/nonnative.rb
|
|
@@ -292,6 +266,7 @@ files:
|
|
|
292
266
|
- lib/nonnative/delay_socket_pair.rb
|
|
293
267
|
- lib/nonnative/error.rb
|
|
294
268
|
- lib/nonnative/fault_injection_proxy.rb
|
|
269
|
+
- lib/nonnative/go_command.rb
|
|
295
270
|
- lib/nonnative/grpc_server.rb
|
|
296
271
|
- lib/nonnative/http_client.rb
|
|
297
272
|
- lib/nonnative/http_server.rb
|
|
@@ -314,7 +289,6 @@ files:
|
|
|
314
289
|
- lib/nonnative/timeout.rb
|
|
315
290
|
- lib/nonnative/version.rb
|
|
316
291
|
- nonnative.gemspec
|
|
317
|
-
- sonar-project.properties
|
|
318
292
|
homepage: https://github.com/alexfalkowski/nonnative
|
|
319
293
|
licenses:
|
|
320
294
|
- Unlicense
|
|
@@ -327,14 +301,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
327
301
|
requirements:
|
|
328
302
|
- - ">="
|
|
329
303
|
- !ruby/object:Gem::Version
|
|
330
|
-
version:
|
|
304
|
+
version: 2.7.0
|
|
305
|
+
- - "<"
|
|
306
|
+
- !ruby/object:Gem::Version
|
|
307
|
+
version: 2.8.0
|
|
331
308
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
332
309
|
requirements:
|
|
333
310
|
- - ">="
|
|
334
311
|
- !ruby/object:Gem::Version
|
|
335
312
|
version: '0'
|
|
336
313
|
requirements: []
|
|
337
|
-
rubygems_version: 3.1.
|
|
314
|
+
rubygems_version: 3.1.4
|
|
338
315
|
signing_key:
|
|
339
316
|
specification_version: 4
|
|
340
317
|
summary: Allows you to keep using the power of ruby to test other systems
|
data/Rakefile
DELETED
data/sonar-project.properties
DELETED