aruba 1.0.0.pre.alpha.5 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +153 -28
- data/CONTRIBUTING.md +0 -9
- data/LICENSE +1 -1
- data/README.md +37 -30
- data/lib/aruba/api.rb +0 -1
- data/lib/aruba/api/bundler.rb +17 -2
- data/lib/aruba/api/commands.rb +15 -16
- data/lib/aruba/api/core.rb +64 -50
- data/lib/aruba/api/environment.rb +12 -4
- data/lib/aruba/api/filesystem.rb +32 -46
- data/lib/aruba/api/text.rb +15 -3
- data/lib/aruba/aruba_path.rb +23 -95
- data/lib/aruba/basic_configuration.rb +46 -65
- data/lib/aruba/basic_configuration/option.rb +2 -2
- data/lib/aruba/cli.rb +4 -1
- data/lib/aruba/config/jruby.rb +1 -1
- data/lib/aruba/config_wrapper.rb +17 -4
- data/lib/aruba/configuration.rb +29 -22
- data/lib/aruba/console.rb +0 -2
- data/lib/aruba/console/help.rb +8 -5
- data/lib/aruba/contracts/absolute_path.rb +3 -3
- data/lib/aruba/contracts/is_power_of_two.rb +2 -2
- data/lib/aruba/contracts/relative_path.rb +3 -3
- data/lib/aruba/cucumber/command.rb +93 -82
- data/lib/aruba/cucumber/file.rb +43 -23
- data/lib/aruba/cucumber/hooks.rb +4 -1
- data/lib/aruba/cucumber/testing_frameworks.rb +14 -12
- data/lib/aruba/event_bus.rb +4 -2
- data/lib/aruba/event_bus/name_resolver.rb +9 -8
- data/lib/aruba/events.rb +2 -1
- data/lib/aruba/hooks.rb +2 -4
- data/lib/aruba/in_config_wrapper.rb +8 -5
- data/lib/aruba/initializer.rb +9 -3
- data/lib/aruba/matchers/base/base_matcher.rb +2 -11
- data/lib/aruba/matchers/base/message_indenter.rb +1 -1
- data/lib/aruba/matchers/base/object_formatter.rb +0 -5
- data/lib/aruba/matchers/collection/include_an_object.rb +4 -4
- data/lib/aruba/matchers/command/be_successfully_executed.rb +3 -1
- data/lib/aruba/matchers/command/have_exit_status.rb +3 -1
- data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -1
- data/lib/aruba/matchers/command/have_output.rb +3 -1
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +3 -1
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +3 -1
- data/lib/aruba/matchers/directory/have_sub_directory.rb +8 -3
- data/lib/aruba/matchers/file/have_file_size.rb +4 -2
- data/lib/aruba/matchers/path/have_permissions.rb +7 -4
- data/lib/aruba/platforms/announcer.rb +25 -11
- data/lib/aruba/platforms/aruba_file_creator.rb +3 -1
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +7 -2
- data/lib/aruba/platforms/aruba_logger.rb +10 -9
- data/lib/aruba/platforms/command_monitor.rb +4 -6
- data/lib/aruba/platforms/determine_disk_usage.rb +55 -20
- data/lib/aruba/platforms/filesystem_status.rb +19 -13
- data/lib/aruba/platforms/simple_table.rb +2 -2
- data/lib/aruba/platforms/unix_environment_variables.rb +9 -4
- data/lib/aruba/platforms/unix_platform.rb +10 -10
- data/lib/aruba/platforms/unix_which.rb +1 -1
- data/lib/aruba/platforms/windows_command_string.rb +1 -1
- data/lib/aruba/platforms/windows_environment_variables.rb +2 -1
- data/lib/aruba/platforms/windows_platform.rb +3 -3
- data/lib/aruba/platforms/windows_which.rb +6 -2
- data/lib/aruba/processes/basic_process.rb +4 -6
- data/lib/aruba/processes/debug_process.rb +4 -2
- data/lib/aruba/processes/in_process.rb +5 -3
- data/lib/aruba/processes/spawn_process.rb +27 -16
- data/lib/aruba/rspec.rb +25 -15
- data/lib/aruba/runtime.rb +11 -4
- data/lib/aruba/setup.rb +23 -10
- data/lib/aruba/tasks/docker_helpers.rb +3 -1
- data/lib/aruba/version.rb +1 -1
- metadata +96 -109
- data/.cucumberproignore +0 -3
- data/.document +0 -5
- data/.github/ISSUE_TEMPLATE.md +0 -48
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -41
- data/.gitignore +0 -38
- data/.rspec +0 -3
- data/.rubocop.yml +0 -31
- data/.rubocop_todo.yml +0 -258
- data/.simplecov +0 -34
- data/.travis.yml +0 -73
- data/.yardopts +0 -11
- data/Dockerfile +0 -67
- data/Gemfile +0 -15
- data/Rakefile +0 -92
- data/TODO.md +0 -13
- data/appveyor.yml +0 -30
- data/aruba.gemspec +0 -46
- data/bin/console +0 -7
- data/bin/test +0 -9
- data/config/.gitignore +0 -1
- data/cucumber.yml +0 -6
- data/docker-compose.yml +0 -26
- data/fixtures/cli-app/.gitignore +0 -9
- data/fixtures/cli-app/.rspec +0 -2
- data/fixtures/cli-app/README.md +0 -39
- data/fixtures/cli-app/Rakefile +0 -1
- data/fixtures/cli-app/bin/aruba-test-cli +0 -6
- data/fixtures/cli-app/cli-app.gemspec +0 -25
- data/fixtures/cli-app/features/support/aruba.rb +0 -1
- data/fixtures/cli-app/features/support/env.rb +0 -1
- data/fixtures/cli-app/lib/cli/app.rb +0 -9
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +0 -15
- data/fixtures/cli-app/lib/cli/app/version.rb +0 -5
- data/fixtures/cli-app/script/console +0 -14
- data/fixtures/cli-app/spec/spec_helper.rb +0 -7
- data/fixtures/cli-app/spec/support/aruba.rb +0 -1
- data/fixtures/copy/file.txt +0 -1
- data/fixtures/empty-app/.gitignore +0 -9
- data/fixtures/empty-app/.rspec +0 -2
- data/fixtures/empty-app/README.md +0 -24
- data/fixtures/empty-app/Rakefile +0 -1
- data/fixtures/empty-app/cli-app.gemspec +0 -25
- data/fixtures/empty-app/lib/cli/app.rb +0 -7
- data/fixtures/empty-app/lib/cli/app/version.rb +0 -5
- data/fixtures/getting-started-app/.gitignore +0 -4
- data/fixtures/getting-started-app/Gemfile +0 -4
- data/fixtures/getting-started-app/README.md +0 -3
- data/fixtures/getting-started-app/features/support/env.rb +0 -1
- data/lib/aruba/extensions/string/strip.rb +0 -25
- data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
@@ -1,28 +1,34 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
|
3
1
|
module Aruba
|
4
2
|
module Platforms
|
5
3
|
# File System Status object
|
6
4
|
#
|
7
5
|
# This is a wrapper for File::Stat returning only a subset of information.
|
8
6
|
class FilesystemStatus
|
9
|
-
METHODS = [
|
10
|
-
:executable?,
|
11
|
-
:ctime,
|
12
|
-
:atime,
|
13
|
-
:mtime,
|
14
|
-
:size
|
15
|
-
].freeze
|
16
|
-
|
17
|
-
extend Forwardable
|
18
|
-
|
19
7
|
private
|
20
8
|
|
21
9
|
attr_reader :status
|
22
10
|
|
23
11
|
public
|
24
12
|
|
25
|
-
|
13
|
+
def executable?
|
14
|
+
status.executable?
|
15
|
+
end
|
16
|
+
|
17
|
+
def ctime
|
18
|
+
status.ctime
|
19
|
+
end
|
20
|
+
|
21
|
+
def atime
|
22
|
+
status.atime
|
23
|
+
end
|
24
|
+
|
25
|
+
def mtime
|
26
|
+
status.mtime
|
27
|
+
end
|
28
|
+
|
29
|
+
def size
|
30
|
+
status.size
|
31
|
+
end
|
26
32
|
|
27
33
|
def initialize(path)
|
28
34
|
@status = File::Stat.new(path)
|
@@ -31,8 +31,8 @@ module Aruba
|
|
31
31
|
|
32
32
|
name_size = longest_key.length
|
33
33
|
|
34
|
-
rows = hash.
|
35
|
-
|
34
|
+
rows = hash.map do |k, v|
|
35
|
+
format("# %-#{name_size}s => %s", k, v)
|
36
36
|
end
|
37
37
|
|
38
38
|
if opts[:sort] == true
|
@@ -9,11 +9,9 @@ module Aruba
|
|
9
9
|
attr_reader :other_env, :block
|
10
10
|
|
11
11
|
def initialize(other_env, &block)
|
12
|
-
@other_env = other_env.to_h.
|
12
|
+
@other_env = other_env.to_h.transform_values(&:to_s)
|
13
13
|
|
14
|
-
@block =
|
15
|
-
block
|
16
|
-
end
|
14
|
+
@block = block
|
17
15
|
end
|
18
16
|
|
19
17
|
def call(env)
|
@@ -188,6 +186,13 @@ module Aruba
|
|
188
186
|
value
|
189
187
|
end
|
190
188
|
|
189
|
+
def nest
|
190
|
+
old_actions = @actions.dup
|
191
|
+
yield(self)
|
192
|
+
ensure
|
193
|
+
@actions = old_actions
|
194
|
+
end
|
195
|
+
|
191
196
|
def self.hash_from_env
|
192
197
|
ENV.to_hash
|
193
198
|
end
|
@@ -31,7 +31,7 @@ module Aruba
|
|
31
31
|
# @private
|
32
32
|
class UnixPlatform
|
33
33
|
def self.match?
|
34
|
-
!
|
34
|
+
!Cucumber::WINDOWS
|
35
35
|
end
|
36
36
|
|
37
37
|
def environment_variables
|
@@ -62,8 +62,8 @@ module Aruba
|
|
62
62
|
DetermineFileSize.new.call(*args)
|
63
63
|
end
|
64
64
|
|
65
|
-
def determine_disk_usage(
|
66
|
-
DetermineDiskUsage.new.call(
|
65
|
+
def determine_disk_usage(paths)
|
66
|
+
DetermineDiskUsage.new.call(paths)
|
67
67
|
end
|
68
68
|
|
69
69
|
def create_file(*args)
|
@@ -83,7 +83,7 @@ module Aruba
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def detect_ruby(cmd)
|
86
|
-
if
|
86
|
+
if /^ruby\s/.match?(cmd)
|
87
87
|
cmd.gsub(/^ruby\s/, "#{current_ruby} ")
|
88
88
|
else
|
89
89
|
cmd
|
@@ -136,13 +136,13 @@ module Aruba
|
|
136
136
|
end
|
137
137
|
|
138
138
|
# Copy file/directory
|
139
|
-
def cp(
|
140
|
-
FileUtils.cp_r(
|
139
|
+
def cp(src, dest)
|
140
|
+
FileUtils.cp_r(src, dest)
|
141
141
|
end
|
142
142
|
|
143
143
|
# Move file/directory
|
144
|
-
def mv(
|
145
|
-
FileUtils.mv(
|
144
|
+
def mv(src, dest)
|
145
|
+
FileUtils.mv(src, dest)
|
146
146
|
end
|
147
147
|
|
148
148
|
# Change mode of file/directory
|
@@ -195,8 +195,8 @@ module Aruba
|
|
195
195
|
# * /bin/command.sh
|
196
196
|
# * command.sh
|
197
197
|
def relative_command?(path)
|
198
|
-
p =
|
199
|
-
p.relative? && p.
|
198
|
+
p = Pathname.new(path)
|
199
|
+
p.relative? && p.basename != p
|
200
200
|
end
|
201
201
|
|
202
202
|
# Check if command is relative
|
@@ -16,7 +16,8 @@ module Aruba
|
|
16
16
|
# C:>set PATH
|
17
17
|
# C:>Path=.;.\bin;c:\rubys\ruby-2.1.6-p336\bin;
|
18
18
|
#
|
19
|
-
# @example If you access environment variables through ENV, you can access
|
19
|
+
# @example If you access environment variables through ENV, you can access
|
20
|
+
# values no matter the case of the key:
|
20
21
|
# ENV["Path"] # => ".;.\bin;c:\rubys\ruby-2.1.6-p336\bin;"
|
21
22
|
# ENV["PATH"] # => ".;.\bin;c:\rubys\ruby-2.1.6-p336\bin;"
|
22
23
|
#
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'cucumber/platform'
|
2
2
|
|
3
3
|
require 'aruba/platforms/unix_platform'
|
4
4
|
require 'aruba/platforms/windows_command_string'
|
@@ -20,7 +20,7 @@ module Aruba
|
|
20
20
|
# @private
|
21
21
|
class WindowsPlatform < UnixPlatform
|
22
22
|
def self.match?
|
23
|
-
|
23
|
+
Cucumber::WINDOWS
|
24
24
|
end
|
25
25
|
|
26
26
|
# @see UnixPlatform#command_string
|
@@ -39,7 +39,7 @@ module Aruba
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def builtin_shell_commands
|
42
|
-
|
42
|
+
%w(cd dir echo exit set type)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
@@ -13,7 +13,7 @@ module Aruba
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def call(program, path)
|
16
|
-
|
16
|
+
raise %(Invalid input program "#{program}" and/or path "#{path}".)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -96,7 +96,11 @@ module Aruba
|
|
96
96
|
private
|
97
97
|
|
98
98
|
def windows_executable_extentions
|
99
|
-
|
99
|
+
if ENV['PATHEXT']
|
100
|
+
format('.{%s}', ENV['PATHEXT'].tr(';', ',').tr('.', '')).downcase
|
101
|
+
else
|
102
|
+
'.{exe,com,bat}'
|
103
|
+
end
|
100
104
|
end
|
101
105
|
end
|
102
106
|
end
|
@@ -14,7 +14,7 @@ module Aruba
|
|
14
14
|
attr_reader :exit_status, :environment, :working_directory, :main_class,
|
15
15
|
:io_wait_timeout, :exit_timeout, :startup_wait_time, :stop_signal
|
16
16
|
|
17
|
-
def initialize(cmd, exit_timeout, io_wait_timeout, working_directory,
|
17
|
+
def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists
|
18
18
|
environment = Aruba.platform.environment_variables.hash_from_env,
|
19
19
|
main_class = nil, stop_signal = nil, startup_wait_time = 0)
|
20
20
|
@cmd = cmd
|
@@ -111,10 +111,8 @@ module Aruba
|
|
111
111
|
def after_run; end
|
112
112
|
|
113
113
|
def inspect
|
114
|
-
|
115
|
-
|
116
|
-
err = truncate("#{stderr(wait_for_io: 0).inspect}", 35)
|
117
|
-
# rubocop:enable Style/UnneededInterpolation
|
114
|
+
out = truncate(stdout(wait_for_io: 0).inspect, 35)
|
115
|
+
err = truncate(stderr(wait_for_io: 0).inspect, 35)
|
118
116
|
|
119
117
|
fmt = '#<%s:%s commandline="%s": stdout=%s stderr=%s>'
|
120
118
|
format fmt, self.class, object_id, commandline, out, err
|
@@ -137,7 +135,7 @@ module Aruba
|
|
137
135
|
def truncate(string, max_length)
|
138
136
|
return string if string.length <= max_length
|
139
137
|
|
140
|
-
string[0, max_length - 1]
|
138
|
+
"#{string[0, max_length - 1]} ..."
|
141
139
|
end
|
142
140
|
end
|
143
141
|
end
|
@@ -41,7 +41,8 @@ module Aruba
|
|
41
41
|
# @return [String]
|
42
42
|
# A predefined string to make users aware they are using the DebugProcess
|
43
43
|
def stdout(*)
|
44
|
-
'This is the debug launcher on STDOUT.
|
44
|
+
'This is the debug launcher on STDOUT.' \
|
45
|
+
' If this output is unexpected, please check your setup.'
|
45
46
|
end
|
46
47
|
|
47
48
|
# Return stderr
|
@@ -49,7 +50,8 @@ module Aruba
|
|
49
50
|
# @return [String]
|
50
51
|
# A predefined string to make users aware they are using the DebugProcess
|
51
52
|
def stderr(*)
|
52
|
-
'This is the debug launcher on STDERR.
|
53
|
+
'This is the debug launcher on STDERR.' \
|
54
|
+
' If this output is unexpected, please check your setup.'
|
53
55
|
end
|
54
56
|
|
55
57
|
# Write to nothing
|
@@ -46,7 +46,7 @@ module Aruba
|
|
46
46
|
# @private
|
47
47
|
attr_reader :main_class
|
48
48
|
|
49
|
-
def initialize(cmd, exit_timeout, io_wait_timeout, working_directory,
|
49
|
+
def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists
|
50
50
|
environment = Aruba.platform.environment_variables.hash_from_env,
|
51
51
|
main_class = nil, stop_signal = nil, startup_wait_time = 0)
|
52
52
|
@cmd = cmd
|
@@ -61,7 +61,7 @@ module Aruba
|
|
61
61
|
|
62
62
|
# Start command
|
63
63
|
def start
|
64
|
-
|
64
|
+
raise 'You need to call aruba.config.main_class = YourMainClass' unless main_class
|
65
65
|
|
66
66
|
@started = true
|
67
67
|
|
@@ -109,7 +109,9 @@ module Aruba
|
|
109
109
|
|
110
110
|
# Close io
|
111
111
|
def close_io(name)
|
112
|
-
|
112
|
+
unless [:stdin, :stdout, :stderr].include? name
|
113
|
+
raise ArgumentError, 'Only stdin stdout and stderr are allowed to close'
|
114
|
+
end
|
113
115
|
|
114
116
|
get_instance_variable(name.to_sym).close
|
115
117
|
end
|
@@ -48,7 +48,7 @@ module Aruba
|
|
48
48
|
#
|
49
49
|
# @param [Numeric] startup_wait_time
|
50
50
|
# The amount of seconds to wait after Aruba has started a command.
|
51
|
-
def initialize(cmd, exit_timeout, io_wait_timeout, working_directory,
|
51
|
+
def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists
|
52
52
|
environment = Aruba.platform.environment_variables.hash_from_env,
|
53
53
|
main_class = nil, stop_signal = nil, startup_wait_time = 0)
|
54
54
|
super
|
@@ -63,16 +63,15 @@ module Aruba
|
|
63
63
|
# @yield [SpawnProcess]
|
64
64
|
# Run code for process which was started
|
65
65
|
#
|
66
|
-
# rubocop:disable Metrics/MethodLength
|
67
66
|
def start
|
68
|
-
# rubocop:disable Metrics/LineLength
|
69
67
|
if started?
|
70
|
-
error_message =
|
71
|
-
|
68
|
+
error_message =
|
69
|
+
"Command \"#{commandline}\" has already been started." \
|
70
|
+
' Please `#stop` the command first and `#start` it again.' \
|
71
|
+
' Alternatively use `#restart`.'
|
72
|
+
raise CommandAlreadyStartedError, error_message
|
72
73
|
end
|
73
74
|
|
74
|
-
# rubocop:enable Metrics/LineLength
|
75
|
-
|
76
75
|
@started = true
|
77
76
|
|
78
77
|
@process = ChildProcess.build(*command_string.to_a)
|
@@ -204,18 +203,19 @@ module Aruba
|
|
204
203
|
# ... and set the exit status
|
205
204
|
wait
|
206
205
|
else
|
207
|
-
|
206
|
+
begin
|
207
|
+
@process.stop
|
208
|
+
rescue Errno::EPERM # This can occur on MacOS
|
209
|
+
nil
|
210
|
+
end
|
208
211
|
end
|
209
212
|
end
|
210
213
|
|
211
|
-
@exit_status
|
212
|
-
|
214
|
+
@exit_status = @process.exit_code
|
215
|
+
|
213
216
|
@stdout_cache = read_temporary_output_file @stdout_file
|
214
217
|
@stderr_cache = read_temporary_output_file @stderr_file
|
215
218
|
|
216
|
-
# @stdout_file = nil
|
217
|
-
# @stderr_file = nil
|
218
|
-
|
219
219
|
@started = false
|
220
220
|
|
221
221
|
@exit_status
|
@@ -234,7 +234,7 @@ module Aruba
|
|
234
234
|
# The signal, i.e. 'TERM'
|
235
235
|
def send_signal(signal)
|
236
236
|
error_message = %(Command "#{commandline}" with PID "#{pid}" has already stopped.)
|
237
|
-
|
237
|
+
raise CommandAlreadyStoppedError, error_message if @process.exited?
|
238
238
|
|
239
239
|
Process.kill signal, pid
|
240
240
|
rescue Errno::ESRCH
|
@@ -265,12 +265,23 @@ module Aruba
|
|
265
265
|
private
|
266
266
|
|
267
267
|
def command_string
|
268
|
-
|
268
|
+
if command_path.nil?
|
269
|
+
raise LaunchError,
|
270
|
+
%(Command "#{command}" not found in PATH-variable "#{environment['PATH']}".)
|
271
|
+
end
|
272
|
+
|
269
273
|
Aruba.platform.command_string.new(command_path, *arguments)
|
270
274
|
end
|
271
275
|
|
272
276
|
def command_path
|
273
|
-
@command_path ||=
|
277
|
+
@command_path ||=
|
278
|
+
begin
|
279
|
+
if Aruba.platform.builtin_shell_commands.include?(command)
|
280
|
+
command
|
281
|
+
else
|
282
|
+
Aruba.platform.which(command, environment['PATH'])
|
283
|
+
end
|
284
|
+
end
|
274
285
|
end
|
275
286
|
|
276
287
|
def wait_for_io(time_to_wait)
|
data/lib/aruba/rspec.rb
CHANGED
@@ -13,8 +13,10 @@ RSpec.configure do |config|
|
|
13
13
|
setup_aruba
|
14
14
|
|
15
15
|
# Modify PATH to include project/bin
|
16
|
-
prepend_environment_variable
|
17
|
-
|
16
|
+
prepend_environment_variable(
|
17
|
+
'PATH',
|
18
|
+
aruba.config.command_search_paths.join(File::PATH_SEPARATOR) + File::PATH_SEPARATOR
|
19
|
+
)
|
18
20
|
|
19
21
|
# Use configured home directory as HOME
|
20
22
|
set_environment_variable 'HOME', aruba.config.home_directory
|
@@ -47,19 +49,27 @@ RSpec.configure do |config|
|
|
47
49
|
config.before :each do |example|
|
48
50
|
next unless self.class.include?(Aruba::Api)
|
49
51
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
aruba.announcer.activate(:
|
58
|
-
aruba.announcer.activate(:
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
aruba.announcer.activate(:
|
52
|
+
if example.metadata[:announce_full_environment]
|
53
|
+
aruba.announcer.activate(:full_environment)
|
54
|
+
end
|
55
|
+
if example.metadata[:announce_changed_environment]
|
56
|
+
aruba.announcer.activate(:changed_environment)
|
57
|
+
end
|
58
|
+
|
59
|
+
aruba.announcer.activate(:command) if example.metadata[:announce_command]
|
60
|
+
aruba.announcer.activate(:directory) if example.metadata[:announce_directory]
|
61
|
+
if example.metadata[:announce_full_environment]
|
62
|
+
aruba.announcer.activate(:full_environment)
|
63
|
+
end
|
64
|
+
aruba.announcer.activate(:stderr) if example.metadata[:announce_stderr]
|
65
|
+
aruba.announcer.activate(:stdout) if example.metadata[:announce_stdout]
|
66
|
+
aruba.announcer.activate(:stop_signal) if example.metadata[:announce_stop_signal]
|
67
|
+
aruba.announcer.activate(:timeout) if example.metadata[:announce_timeout]
|
68
|
+
aruba.announcer.activate(:wait_time) if example.metadata[:announce_wait_time]
|
69
|
+
aruba.announcer.activate(:command_content) if example.metadata[:announce_command_content]
|
70
|
+
if example.metadata[:announce_command_filesystem_status]
|
71
|
+
aruba.announcer.activate(:command_filesystem_status)
|
72
|
+
end
|
63
73
|
|
64
74
|
if example.metadata[:announce_output]
|
65
75
|
aruba.announcer.activate(:stderr)
|
data/lib/aruba/runtime.rb
CHANGED
@@ -42,14 +42,16 @@ module Aruba
|
|
42
42
|
def initialize(opts = {})
|
43
43
|
@event_bus = EventBus.new(EventBus::NameResolver.new(Aruba::Events))
|
44
44
|
@announcer = opts.fetch(:announcer, Aruba.platform.announcer.new)
|
45
|
-
@config = opts.fetch(:config,
|
45
|
+
@config = opts.fetch(:config,
|
46
|
+
ConfigWrapper.new(Aruba.config.make_copy, @event_bus))
|
46
47
|
@environment = opts.fetch(:environment, Aruba.platform.environment_variables.new)
|
47
48
|
@current_directory = ArubaPath.new(@config.working_directory)
|
48
49
|
@root_directory = ArubaPath.new(@config.root_directory)
|
49
50
|
|
50
51
|
@environment.update(@config.command_runtime_environment)
|
51
52
|
|
52
|
-
@command_monitor = opts.fetch(:command_monitor,
|
53
|
+
@command_monitor = opts.fetch(:command_monitor,
|
54
|
+
Aruba.platform.command_monitor.new(announcer: @announcer))
|
53
55
|
|
54
56
|
@logger = opts.fetch(:logger, Aruba.platform.logger.new)
|
55
57
|
@logger.mode = @config.log_level
|
@@ -81,12 +83,17 @@ module Aruba
|
|
81
83
|
candidates = config.fixtures_directories.map { |dir| File.join(root_directory, dir) }
|
82
84
|
directory = candidates.find { |d| Aruba.platform.directory? d }
|
83
85
|
|
84
|
-
|
86
|
+
unless directory
|
87
|
+
canditates_display = candidates.map { |d| format('"%s"', d) }.join(', ')
|
88
|
+
raise "No existing fixtures directory found in #{canditates_display}."
|
89
|
+
end
|
85
90
|
|
86
91
|
directory
|
87
92
|
end
|
88
93
|
|
89
|
-
|
94
|
+
unless Aruba.platform.directory?(@fixtures_directory)
|
95
|
+
raise %(Fixtures directory "#{@fixtures_directory}" is not a directory)
|
96
|
+
end
|
90
97
|
|
91
98
|
ArubaPath.new(@fixtures_directory)
|
92
99
|
end
|