nonnative 2.19.0 → 2.20.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/AGENTS.md +5 -2
- data/Gemfile.lock +1 -1
- data/README.md +49 -39
- data/lib/nonnative/configuration.rb +1 -1
- data/lib/nonnative/{go_command.rb → go_executable.rb} +23 -7
- data/lib/nonnative/version.rb +1 -1
- data/lib/nonnative.rb +20 -5
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3f867021d8754e7ef700f5b57991335299ea696410cc268f3ea6b18d4b3ae4d7
|
|
4
|
+
data.tar.gz: bea097cace138eab114d90b7b43404b0efd50479354c5448f247bafc78d93468
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 134bd430de52ad60233ccab7e71e08b593505cf69bcd4c9ee3dee1bc5c001c1416a628f0377c53dbecc1b9d3809ba0ad047c872f266b6ef2dd967ec22aaddeb6
|
|
7
|
+
data.tar.gz: a9461d8db4fba48d27ebdc9ffcb67916d4feb996769acf450cc0ab595633df94e00279bc415f17e0600e8d2edd9f8e114b2fa958f582b3e760d14129361c144b
|
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:3.
|
|
6
|
+
- image: alexfalkowski/ruby:3.9
|
|
7
7
|
working_directory: ~/nonnative
|
|
8
8
|
steps:
|
|
9
9
|
- checkout:
|
|
@@ -58,7 +58,7 @@ jobs:
|
|
|
58
58
|
resource_class: arm.large
|
|
59
59
|
wait-all:
|
|
60
60
|
docker:
|
|
61
|
-
- image: alexfalkowski/ruby:3.
|
|
61
|
+
- image: alexfalkowski/ruby:3.9
|
|
62
62
|
steps:
|
|
63
63
|
- run: echo "all applicable jobs finished"
|
|
64
64
|
resource_class: arm.large
|
data/AGENTS.md
CHANGED
|
@@ -29,7 +29,8 @@ of dependencies.
|
|
|
29
29
|
|
|
30
30
|
Public entry point: `lib/nonnative.rb`.
|
|
31
31
|
|
|
32
|
-
Main API: `configure`, `start`, `stop`, `clear`, `reset`, `pool
|
|
32
|
+
Main API: `configure`, `start`, `stop`, `clear`, `reset`, `pool`,
|
|
33
|
+
`go_argv`, `go_command`.
|
|
33
34
|
|
|
34
35
|
Configuration is `Nonnative::Configuration`, built with
|
|
35
36
|
`config.process`, `config.server`, `config.service`, or
|
|
@@ -81,7 +82,8 @@ Config rules:
|
|
|
81
82
|
|
|
82
83
|
- YAML config is loaded as data only via `Nonnative::ConfigurationFile`; ERB is not evaluated and arbitrary Ruby object tags are rejected
|
|
83
84
|
- Runner `host` and nested `proxy.host` default to `127.0.0.1`; use explicit `0.0.0.0` only when external access is intended
|
|
84
|
-
- Process `command` can be a legacy shell string or an argv array; prefer argv arrays for new config, and `go:` config builds argv internally
|
|
85
|
+
- Process `command` can be a legacy shell string or an argv array; prefer argv arrays for new config, and `go:` config builds argv internally with `Nonnative.go_argv`
|
|
86
|
+
- Use `Nonnative.go_argv` for no-shell Go executable argv entries and `Nonnative.go_command` only when a caller needs Ruby shell-style command string spawning
|
|
85
87
|
- YAML services belong under `services:`, not `processes:`
|
|
86
88
|
- There is no top-level `config.wait`; `wait` is per runner
|
|
87
89
|
- Programmatic service config uses `config.service do |s| ... end`, so use `s.host` / `s.port`
|
|
@@ -108,6 +110,7 @@ Limitations:
|
|
|
108
110
|
- Lifecycle: `lib/nonnative.rb`, `lib/nonnative/pool.rb`
|
|
109
111
|
- Readiness/timeouts: `lib/nonnative/port.rb`, `lib/nonnative/timeout.rb`
|
|
110
112
|
- Process lifecycle: `lib/nonnative/process.rb`
|
|
113
|
+
- Go executable command/argv building: `lib/nonnative/go_executable.rb`
|
|
111
114
|
- Proxies: `lib/nonnative/fault_injection_proxy.rb`, `lib/nonnative/socket_pair_factory.rb`
|
|
112
115
|
- Cucumber: `lib/nonnative/cucumber.rb`, `lib/nonnative/startup.rb`, `features/support/env.rb`
|
|
113
116
|
- Config loading: `lib/nonnative/configuration.rb`, `lib/nonnative/configuration_file.rb`, `lib/nonnative/configuration_runner.rb`, `lib/nonnative/configuration_proxy.rb`
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ gem install nonnative
|
|
|
37
37
|
|
|
38
38
|
## Usage
|
|
39
39
|
|
|
40
|
-
Nonnative is configured via
|
|
40
|
+
Nonnative is configured via `Nonnative.configure` (programmatic) or `config.load_file(...)` (YAML).
|
|
41
41
|
YAML configuration is loaded as data only: ERB is not evaluated and arbitrary Ruby objects are not
|
|
42
42
|
deserialized.
|
|
43
43
|
|
|
@@ -50,11 +50,14 @@ High-level configuration fields:
|
|
|
50
50
|
- `servers`: in-process Ruby servers started in threads.
|
|
51
51
|
- `services`: external dependencies (proxy-only; no process/thread started by Nonnative).
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Common runner fields:
|
|
54
|
+
- `name`: runner name used for lookup.
|
|
55
|
+
- `host`/`port`: client-facing address. `host` defaults to `127.0.0.1`. For processes and servers, this address is also used for readiness/shutdown port checks. When a `fault_injection` proxy is enabled, this is the endpoint your tests/clients should hit.
|
|
56
|
+
|
|
57
|
+
Process/server fields:
|
|
54
58
|
- `timeout`: max time (seconds) for readiness/shutdown port checks.
|
|
55
59
|
- `wait`: small sleep (seconds) between lifecycle steps.
|
|
56
|
-
- `
|
|
57
|
-
- `log`: per-runner log file (used by process output redirection or server implementations).
|
|
60
|
+
- `log`: per-runner log file used by process output redirection or server implementations.
|
|
58
61
|
|
|
59
62
|
For `fault_injection`, the nested `proxy.host`/`proxy.port` describe the upstream target behind the proxy. Nested `proxy.host` also defaults to `127.0.0.1`. In-process server implementations typically bind there via `proxy.host` / `proxy.port`.
|
|
60
63
|
|
|
@@ -95,7 +98,7 @@ A process is some sort of command that you would run locally.
|
|
|
95
98
|
Commands can be strings or argv arrays. String commands preserve legacy shell semantics, while argv arrays
|
|
96
99
|
avoid shell interpretation and are preferred for new configuration.
|
|
97
100
|
|
|
98
|
-
|
|
101
|
+
Set it up programmatically:
|
|
99
102
|
|
|
100
103
|
```ruby
|
|
101
104
|
require 'nonnative'
|
|
@@ -121,7 +124,7 @@ Nonnative.configure do |config|
|
|
|
121
124
|
|
|
122
125
|
config.process do |p|
|
|
123
126
|
p.name = 'start_2'
|
|
124
|
-
p.command = -> { 'features/support/bin/start 12_322' }
|
|
127
|
+
p.command = -> { ['features/support/bin/start', '12_322'] }
|
|
125
128
|
p.timeout = 0.5
|
|
126
129
|
p.wait = 0.1
|
|
127
130
|
p.port = 12_322
|
|
@@ -130,7 +133,7 @@ Nonnative.configure do |config|
|
|
|
130
133
|
end
|
|
131
134
|
```
|
|
132
135
|
|
|
133
|
-
|
|
136
|
+
Set it up through configuration:
|
|
134
137
|
|
|
135
138
|
```yaml
|
|
136
139
|
version: "1.0"
|
|
@@ -152,7 +155,9 @@ processes:
|
|
|
152
155
|
TEST: true
|
|
153
156
|
-
|
|
154
157
|
name: start_2
|
|
155
|
-
command:
|
|
158
|
+
command:
|
|
159
|
+
- features/support/bin/start
|
|
160
|
+
- "12_322"
|
|
156
161
|
timeout: 5
|
|
157
162
|
wait: 1
|
|
158
163
|
port: 12322
|
|
@@ -211,7 +216,7 @@ module Nonnative
|
|
|
211
216
|
end
|
|
212
217
|
```
|
|
213
218
|
|
|
214
|
-
|
|
219
|
+
Set it up programmatically:
|
|
215
220
|
|
|
216
221
|
```ruby
|
|
217
222
|
require 'nonnative'
|
|
@@ -224,7 +229,7 @@ Nonnative.configure do |config|
|
|
|
224
229
|
|
|
225
230
|
config.server do |s|
|
|
226
231
|
s.name = 'server_1'
|
|
227
|
-
s.klass = Nonnative::
|
|
232
|
+
s.klass = Nonnative::TCPServer
|
|
228
233
|
s.timeout = 1
|
|
229
234
|
s.port = 12_323
|
|
230
235
|
s.log = 'server_1.log'
|
|
@@ -232,7 +237,7 @@ Nonnative.configure do |config|
|
|
|
232
237
|
|
|
233
238
|
config.server do |s|
|
|
234
239
|
s.name = 'server_2'
|
|
235
|
-
s.klass = Nonnative::
|
|
240
|
+
s.klass = Nonnative::TCPServer
|
|
236
241
|
s.timeout = 1
|
|
237
242
|
s.port = 12_324
|
|
238
243
|
s.log = 'server_2.log'
|
|
@@ -240,7 +245,7 @@ Nonnative.configure do |config|
|
|
|
240
245
|
end
|
|
241
246
|
```
|
|
242
247
|
|
|
243
|
-
|
|
248
|
+
Set it up through configuration:
|
|
244
249
|
|
|
245
250
|
```yaml
|
|
246
251
|
version: "1.0"
|
|
@@ -250,13 +255,13 @@ log: nonnative.log
|
|
|
250
255
|
servers:
|
|
251
256
|
-
|
|
252
257
|
name: server_1
|
|
253
|
-
class: Nonnative::
|
|
258
|
+
class: Nonnative::TCPServer
|
|
254
259
|
timeout: 1
|
|
255
260
|
port: 12323
|
|
256
261
|
log: server_1.log
|
|
257
262
|
-
|
|
258
263
|
name: server_2
|
|
259
|
-
class: Nonnative::
|
|
264
|
+
class: Nonnative::TCPServer
|
|
260
265
|
timeout: 1
|
|
261
266
|
port: 12324
|
|
262
267
|
log: server_2.log
|
|
@@ -294,7 +299,7 @@ module Nonnative
|
|
|
294
299
|
end
|
|
295
300
|
```
|
|
296
301
|
|
|
297
|
-
|
|
302
|
+
Set it up programmatically:
|
|
298
303
|
|
|
299
304
|
```ruby
|
|
300
305
|
require 'nonnative'
|
|
@@ -315,7 +320,7 @@ Nonnative.configure do |config|
|
|
|
315
320
|
end
|
|
316
321
|
```
|
|
317
322
|
|
|
318
|
-
|
|
323
|
+
Set it up through configuration:
|
|
319
324
|
|
|
320
325
|
```yaml
|
|
321
326
|
version: "1.0"
|
|
@@ -359,7 +364,7 @@ module Nonnative
|
|
|
359
364
|
end
|
|
360
365
|
```
|
|
361
366
|
|
|
362
|
-
|
|
367
|
+
Set it up programmatically:
|
|
363
368
|
|
|
364
369
|
```ruby
|
|
365
370
|
require 'nonnative'
|
|
@@ -380,7 +385,7 @@ Nonnative.configure do |config|
|
|
|
380
385
|
end
|
|
381
386
|
```
|
|
382
387
|
|
|
383
|
-
|
|
388
|
+
Set it up through configuration:
|
|
384
389
|
|
|
385
390
|
```yaml
|
|
386
391
|
version: "1.0"
|
|
@@ -428,7 +433,7 @@ module Nonnative
|
|
|
428
433
|
end
|
|
429
434
|
```
|
|
430
435
|
|
|
431
|
-
|
|
436
|
+
Set it up programmatically:
|
|
432
437
|
|
|
433
438
|
```ruby
|
|
434
439
|
require 'nonnative'
|
|
@@ -449,7 +454,7 @@ Nonnative.configure do |config|
|
|
|
449
454
|
end
|
|
450
455
|
```
|
|
451
456
|
|
|
452
|
-
|
|
457
|
+
Set it up through configuration:
|
|
453
458
|
|
|
454
459
|
```yaml
|
|
455
460
|
version: "1.0"
|
|
@@ -711,7 +716,7 @@ Clients connect to the runner `host`/`port`, while the proxy forwards traffic to
|
|
|
711
716
|
|
|
712
717
|
###### Fault Injection Processes
|
|
713
718
|
|
|
714
|
-
|
|
719
|
+
Set it up programmatically:
|
|
715
720
|
|
|
716
721
|
```ruby
|
|
717
722
|
name = 'name of process in configuration'
|
|
@@ -730,7 +735,7 @@ Then I should reset the proxy for process 'process_1'
|
|
|
730
735
|
|
|
731
736
|
###### Fault Injection Servers
|
|
732
737
|
|
|
733
|
-
|
|
738
|
+
Set it up programmatically:
|
|
734
739
|
|
|
735
740
|
```ruby
|
|
736
741
|
name = 'name of server in configuration'
|
|
@@ -749,7 +754,7 @@ Then I should reset the proxy for server 'server_1'
|
|
|
749
754
|
|
|
750
755
|
###### Fault Injection Services
|
|
751
756
|
|
|
752
|
-
|
|
757
|
+
Set it up programmatically:
|
|
753
758
|
|
|
754
759
|
```ruby
|
|
755
760
|
name = 'name of service in configuration'
|
|
@@ -768,11 +773,28 @@ Then I should reset the proxy for service 'service_1'
|
|
|
768
773
|
|
|
769
774
|
### Go
|
|
770
775
|
|
|
771
|
-
As we love using
|
|
776
|
+
As we love using Go as a language for services we have added support to start binaries with defined parameters.
|
|
777
|
+
|
|
778
|
+
Programmatic Go binaries can be configured as normal argv process commands:
|
|
779
|
+
|
|
780
|
+
```ruby
|
|
781
|
+
Nonnative.configure do |config|
|
|
782
|
+
config.process do |p|
|
|
783
|
+
p.name = 'go'
|
|
784
|
+
p.command = -> { Nonnative.go_argv(%w[cover], 'reports', 'your_binary', 'sub_command', '-i file:.config/server.yml') }
|
|
785
|
+
p.port = 12_345
|
|
786
|
+
end
|
|
787
|
+
end
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
Use `Nonnative.go_argv(...)` when a process should execute without shell interpretation, and `Nonnative.go_command(...)` when a caller needs a command string for Ruby's shell-style `spawn` behavior.
|
|
791
|
+
|
|
792
|
+
YAML `go:` configuration is for Go test binaries compiled with `go test -c`. It builds argv entries in this order: executable, optional `-test.*` profiling/trace/coverage flags, command, then parameters. Parameter strings are parsed into argv words with shell-style quoting, but the argv entries are executed without shell interpretation.
|
|
772
793
|
|
|
773
794
|
To get this to work you will need to create a `main_test.go` file with these contents:
|
|
774
795
|
|
|
775
796
|
```go
|
|
797
|
+
//go:build features
|
|
776
798
|
// +build features
|
|
777
799
|
|
|
778
800
|
package main
|
|
@@ -780,7 +802,7 @@ package main
|
|
|
780
802
|
import "testing"
|
|
781
803
|
|
|
782
804
|
func TestFeatures(t *testing.T) {
|
|
783
|
-
|
|
805
|
+
main()
|
|
784
806
|
}
|
|
785
807
|
```
|
|
786
808
|
|
|
@@ -790,19 +812,7 @@ Then to compile this binary you will need to do the following:
|
|
|
790
812
|
go test -mod vendor -c -tags features -covermode=count -o your_binary -coverpkg=./... github.com/your_location
|
|
791
813
|
```
|
|
792
814
|
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
```ruby
|
|
796
|
-
Nonnative.configure do |config|
|
|
797
|
-
config.process do |p|
|
|
798
|
-
p.name = 'go'
|
|
799
|
-
p.command = -> { ['your_binary', 'sub_command', '--config', 'config.yaml'] }
|
|
800
|
-
p.port = 12_345
|
|
801
|
-
end
|
|
802
|
-
end
|
|
803
|
-
```
|
|
804
|
-
|
|
805
|
-
Setup it up through configuration:
|
|
815
|
+
Set it up through configuration:
|
|
806
816
|
|
|
807
817
|
```yaml
|
|
808
818
|
version: "1.0"
|
|
@@ -818,7 +828,7 @@ processes:
|
|
|
818
828
|
executable: your_binary
|
|
819
829
|
command: sub_command
|
|
820
830
|
parameters:
|
|
821
|
-
-
|
|
831
|
+
- "-i file:.config/server.yml"
|
|
822
832
|
timeout: 5
|
|
823
833
|
port: 8000
|
|
824
834
|
log: go.log
|
|
@@ -141,7 +141,7 @@ module Nonnative
|
|
|
141
141
|
params = go.parameters || []
|
|
142
142
|
tools = go.tools || []
|
|
143
143
|
|
|
144
|
-
-> { Nonnative.
|
|
144
|
+
-> { Nonnative.go_argv(tools, go.output, go.executable, go.command, *params) }
|
|
145
145
|
else
|
|
146
146
|
-> { process.command }
|
|
147
147
|
end
|
|
@@ -19,13 +19,16 @@ module Nonnative
|
|
|
19
19
|
#
|
|
20
20
|
# If `tools` is `nil` or empty, all tools (`prof`, `trace`, `cover`) are enabled.
|
|
21
21
|
#
|
|
22
|
+
# Parameter strings are parsed into argv words using shell-style quoting.
|
|
23
|
+
#
|
|
22
24
|
# @example
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
+
# executable = Nonnative::GoExecutable.new(%w[prof cover], './svc.test', 'reports')
|
|
26
|
+
# executable.argv('serve', '--config', 'config.yaml')
|
|
25
27
|
# # => ["./svc.test", "-test.cpuprofile=...", "-test.coverprofile=...", "serve", "--config", "config.yaml"]
|
|
26
28
|
#
|
|
27
|
-
# @see Nonnative.
|
|
28
|
-
|
|
29
|
+
# @see Nonnative.go_command
|
|
30
|
+
# @see Nonnative.go_argv
|
|
31
|
+
class GoExecutable
|
|
29
32
|
# @param tools [Array<String>, nil] tool names to enable (see class docs)
|
|
30
33
|
# @param exec [String] path to the compiled Go test binary
|
|
31
34
|
# @param output [String] output directory for generated files
|
|
@@ -40,16 +43,29 @@ module Nonnative
|
|
|
40
43
|
# A short random suffix is appended to output filenames to reduce collisions across runs.
|
|
41
44
|
#
|
|
42
45
|
# @param cmd [String] command/sub-command argument passed to the Go test binary
|
|
43
|
-
# @param params [Array<String>] additional
|
|
46
|
+
# @param params [Array<String>] additional parameter strings passed after `cmd`
|
|
44
47
|
# @return [Array<String>] argv entries to execute
|
|
45
|
-
def
|
|
46
|
-
[exec, *flags(cmd), cmd, *params
|
|
48
|
+
def argv(cmd, *params)
|
|
49
|
+
[exec, *flags(cmd), cmd, *parameter_args(params)]
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Returns an executable command string including enabled `-test.*` flags.
|
|
53
|
+
#
|
|
54
|
+
# @param cmd [String] command/sub-command argument passed to the Go test binary
|
|
55
|
+
# @param params [Array<String>] additional parameter strings passed after `cmd`
|
|
56
|
+
# @return [String] the full command to execute
|
|
57
|
+
def command(cmd, *params)
|
|
58
|
+
Shellwords.join(argv(cmd, *params))
|
|
47
59
|
end
|
|
48
60
|
|
|
49
61
|
private
|
|
50
62
|
|
|
51
63
|
attr_reader :tools, :exec, :output
|
|
52
64
|
|
|
65
|
+
def parameter_args(params)
|
|
66
|
+
params.flatten.compact.flat_map { |p| Shellwords.split(p.to_s) }
|
|
67
|
+
end
|
|
68
|
+
|
|
53
69
|
def flags(cmd)
|
|
54
70
|
suffix = SecureRandom.alphanumeric(4)
|
|
55
71
|
m = File.basename(exec, File.extname(exec))
|
data/lib/nonnative/version.rb
CHANGED
data/lib/nonnative.rb
CHANGED
|
@@ -46,6 +46,7 @@ require 'timeout'
|
|
|
46
46
|
require 'yaml'
|
|
47
47
|
require 'open3'
|
|
48
48
|
require 'securerandom'
|
|
49
|
+
require 'shellwords'
|
|
49
50
|
|
|
50
51
|
require 'grpc'
|
|
51
52
|
require 'sinatra'
|
|
@@ -93,7 +94,7 @@ require 'nonnative/close_all_socket_pair'
|
|
|
93
94
|
require 'nonnative/delay_socket_pair'
|
|
94
95
|
require 'nonnative/invalid_data_socket_pair'
|
|
95
96
|
require 'nonnative/socket_pair_factory'
|
|
96
|
-
require 'nonnative/
|
|
97
|
+
require 'nonnative/go_executable'
|
|
97
98
|
require 'nonnative/cucumber'
|
|
98
99
|
require 'nonnative/header'
|
|
99
100
|
|
|
@@ -153,18 +154,32 @@ module Nonnative
|
|
|
153
154
|
File.readlines(path).select { |l| predicate.call(l) }
|
|
154
155
|
end
|
|
155
156
|
|
|
157
|
+
# Builds a Go test executable command string with optional profiling/trace/coverage flags.
|
|
158
|
+
#
|
|
159
|
+
# Use this when passing a command string directly to `spawn`.
|
|
160
|
+
#
|
|
161
|
+
# @param tools [Array<String>] enabled tool names (e.g. `["prof", "trace", "cover"]`)
|
|
162
|
+
# @param output [String] directory where outputs should be written
|
|
163
|
+
# @param exec [String] the test binary (or wrapper) to execute
|
|
164
|
+
# @param cmd [String] the command argument passed to the test binary
|
|
165
|
+
# @param params [Array<String>] extra parameter strings for the command
|
|
166
|
+
# @return [String] executable command string
|
|
167
|
+
def go_command(tools, output, exec, cmd, *params)
|
|
168
|
+
Nonnative::GoExecutable.new(tools, exec, output).command(cmd, *params)
|
|
169
|
+
end
|
|
170
|
+
|
|
156
171
|
# Builds a Go test executable argv array with optional profiling/trace/coverage flags.
|
|
157
172
|
#
|
|
158
|
-
#
|
|
173
|
+
# Use this when passing argv entries directly to `spawn`.
|
|
159
174
|
#
|
|
160
175
|
# @param tools [Array<String>] enabled tool names (e.g. `["prof", "trace", "cover"]`)
|
|
161
176
|
# @param output [String] directory where outputs should be written
|
|
162
177
|
# @param exec [String] the test binary (or wrapper) to execute
|
|
163
178
|
# @param cmd [String] the command argument passed to the test binary
|
|
164
|
-
# @param params [Array<String>] extra
|
|
179
|
+
# @param params [Array<String>] extra parameter strings for the command
|
|
165
180
|
# @return [Array<String>] executable argv entries
|
|
166
|
-
def
|
|
167
|
-
Nonnative::
|
|
181
|
+
def go_argv(tools, output, exec, cmd, *params)
|
|
182
|
+
Nonnative::GoExecutable.new(tools, exec, output).argv(cmd, *params)
|
|
168
183
|
end
|
|
169
184
|
|
|
170
185
|
# Returns an HTTP client for common health/readiness endpoints.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nonnative
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.20.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alejandro Falkowski
|
|
@@ -298,7 +298,7 @@ files:
|
|
|
298
298
|
- lib/nonnative/delay_socket_pair.rb
|
|
299
299
|
- lib/nonnative/error.rb
|
|
300
300
|
- lib/nonnative/fault_injection_proxy.rb
|
|
301
|
-
- lib/nonnative/
|
|
301
|
+
- lib/nonnative/go_executable.rb
|
|
302
302
|
- lib/nonnative/grpc_server.rb
|
|
303
303
|
- lib/nonnative/header.rb
|
|
304
304
|
- lib/nonnative/http_client.rb
|