aruba 1.0.0.pre.alpha.2 → 1.0.0.pre.alpha.3
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 +5 -5
- data/.github/PULL_REQUEST_TEMPLATE.md +2 -1
- data/.rubocop.yml +6 -181
- data/.rubocop_todo.yml +364 -0
- data/.travis.yml +63 -34
- data/.yardopts +3 -0
- data/CHANGELOG.md +1121 -0
- data/CONTRIBUTING.md +179 -78
- data/Gemfile +29 -44
- data/README.md +41 -11
- data/Rakefile +35 -35
- data/appveyor.yml +6 -5
- data/aruba.gemspec +14 -16
- data/bin/console +2 -11
- data/cucumber.yml +0 -7
- data/fixtures/cli-app/README.md +1 -1
- data/fixtures/cli-app/Rakefile +1 -1
- data/fixtures/cli-app/cli-app.gemspec +1 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
- data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
- data/fixtures/empty-app/Rakefile +1 -1
- data/fixtures/empty-app/cli-app.gemspec +1 -0
- data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
- data/fixtures/getting-started-app/Gemfile +1 -1
- data/lib/aruba/api.rb +3 -10
- data/lib/aruba/api/bundler.rb +16 -0
- data/lib/aruba/api/commands.rb +249 -0
- data/lib/aruba/api/core.rb +24 -10
- data/lib/aruba/api/environment.rb +12 -7
- data/lib/aruba/api/filesystem.rb +22 -20
- data/lib/aruba/api/text.rb +3 -9
- data/lib/aruba/aruba_path.rb +3 -18
- data/lib/aruba/basic_configuration.rb +3 -19
- data/lib/aruba/cli.rb +1 -1
- data/lib/aruba/colorizer.rb +33 -33
- data/lib/aruba/command.rb +4 -0
- data/lib/aruba/config_wrapper.rb +1 -1
- data/lib/aruba/configuration.rb +78 -0
- data/lib/aruba/console.rb +5 -5
- data/lib/aruba/console/help.rb +1 -1
- data/lib/aruba/cucumber.rb +0 -1
- data/lib/aruba/cucumber/command.rb +55 -115
- data/lib/aruba/cucumber/environment.rb +1 -1
- data/lib/aruba/cucumber/file.rb +9 -21
- data/lib/aruba/cucumber/hooks.rb +6 -62
- data/lib/aruba/event_bus/name_resolver.rb +1 -2
- data/lib/aruba/hooks.rb +1 -1
- data/lib/aruba/initializer.rb +3 -3
- data/lib/aruba/matchers/base/base_matcher.rb +2 -2
- data/lib/aruba/matchers/base/message_indenter.rb +19 -0
- data/lib/aruba/matchers/base/object_formatter.rb +2 -2
- data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
- data/lib/aruba/matchers/command/be_successfully_executed.rb +2 -4
- data/lib/aruba/matchers/command/have_exit_status.rb +1 -1
- data/lib/aruba/matchers/command/have_finished_in_time.rb +2 -4
- data/lib/aruba/matchers/command/have_output.rb +9 -4
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +1 -1
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +1 -1
- data/lib/aruba/matchers/command/have_output_size.rb +1 -1
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +4 -6
- data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
- data/lib/aruba/matchers/file/be_an_existing_file.rb +4 -6
- data/lib/aruba/matchers/file/have_file_content.rb +4 -4
- data/lib/aruba/matchers/file/have_file_size.rb +6 -8
- data/lib/aruba/matchers/file/have_same_file_content.rb +9 -12
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
- data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
- data/lib/aruba/matchers/path/have_permissions.rb +6 -8
- data/lib/aruba/matchers/string/include_output_string.rb +8 -10
- data/lib/aruba/matchers/string/match_output_string.rb +9 -11
- data/lib/aruba/matchers/string/output_string_eq.rb +7 -9
- data/lib/aruba/platform.rb +0 -1
- data/lib/aruba/platforms/announcer.rb +26 -70
- data/lib/aruba/platforms/aruba_file_creator.rb +1 -1
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
- data/lib/aruba/platforms/aruba_logger.rb +22 -2
- data/lib/aruba/platforms/command_monitor.rb +2 -125
- data/lib/aruba/platforms/filesystem_status.rb +9 -9
- data/lib/aruba/platforms/local_environment.rb +2 -2
- data/lib/aruba/platforms/simple_table.rb +3 -3
- data/lib/aruba/platforms/unix_command_string.rb +7 -4
- data/lib/aruba/platforms/unix_environment_variables.rb +9 -13
- data/lib/aruba/platforms/unix_platform.rb +2 -27
- data/lib/aruba/platforms/unix_which.rb +2 -1
- data/lib/aruba/platforms/windows_command_string.rb +20 -7
- data/lib/aruba/platforms/windows_environment_variables.rb +35 -30
- data/lib/aruba/platforms/windows_which.rb +4 -3
- data/lib/aruba/processes/basic_process.rb +11 -15
- data/lib/aruba/processes/debug_process.rb +5 -0
- data/lib/aruba/processes/in_process.rb +17 -8
- data/lib/aruba/processes/spawn_process.rb +35 -23
- data/lib/aruba/rspec.rb +9 -22
- data/lib/aruba/runtime.rb +7 -5
- data/lib/aruba/setup.rb +6 -4
- data/lib/aruba/tasks/docker_helpers.rb +1 -1
- data/lib/aruba/version.rb +1 -1
- metadata +37 -57
- data/History.md +0 -612
- data/bin/bootstrap +0 -34
- data/fixtures/spawn_process/stderr.sh +0 -3
- data/lib/aruba/api/command.rb +0 -309
- data/lib/aruba/api/deprecated.rb +0 -895
- data/lib/aruba/api/rvm.rb +0 -44
- data/lib/aruba/config.rb +0 -101
- data/lib/aruba/cucumber/rvm.rb +0 -3
- data/lib/aruba/in_process.rb +0 -14
- data/lib/aruba/jruby.rb +0 -4
- data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
- data/lib/aruba/spawn_process.rb +0 -11
data/lib/aruba/command.rb
CHANGED
@@ -48,6 +48,8 @@ module Aruba
|
|
48
48
|
|
49
49
|
# Stop command
|
50
50
|
def stop(*)
|
51
|
+
return if __getobj__.stopped?
|
52
|
+
|
51
53
|
__getobj__.stop
|
52
54
|
event_bus.notify Events::CommandStopped.new(self)
|
53
55
|
|
@@ -56,6 +58,8 @@ module Aruba
|
|
56
58
|
|
57
59
|
# Terminate command
|
58
60
|
def terminate(*)
|
61
|
+
return if __getobj__.stopped?
|
62
|
+
|
59
63
|
__getobj__.terminate
|
60
64
|
event_bus.notify Events::CommandStopped.new(self)
|
61
65
|
|
data/lib/aruba/config_wrapper.rb
CHANGED
@@ -30,7 +30,7 @@ module Aruba
|
|
30
30
|
# If one method ends with "=", e.g. ":option1=", then notify the event
|
31
31
|
# queue, that the user changes the value of "option1"
|
32
32
|
def method_missing(name, *args, &block)
|
33
|
-
event_bus.notify Events::ChangedConfiguration.new(:
|
33
|
+
event_bus.notify Events::ChangedConfiguration.new(changed: { name: name.to_s.gsub(/=$/, ''), value: args.first }) if name.to_s.end_with? '='
|
34
34
|
|
35
35
|
config.send(name, *args, &block)
|
36
36
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'contracts'
|
2
|
+
|
3
|
+
require 'aruba/version'
|
4
|
+
require 'aruba/basic_configuration'
|
5
|
+
require 'aruba/in_config_wrapper'
|
6
|
+
require 'aruba/hooks'
|
7
|
+
|
8
|
+
require 'aruba/contracts/relative_path'
|
9
|
+
require 'aruba/contracts/absolute_path'
|
10
|
+
require 'aruba/contracts/enum'
|
11
|
+
|
12
|
+
require 'aruba/contracts/is_power_of_two'
|
13
|
+
|
14
|
+
# Aruba
|
15
|
+
module Aruba
|
16
|
+
# Aruba Configuration
|
17
|
+
#
|
18
|
+
# This defines the configuration options of aruba
|
19
|
+
class Configuration < BasicConfiguration
|
20
|
+
option_reader :root_directory, contract: { None => String }, default: Dir.getwd
|
21
|
+
|
22
|
+
option_accessor :working_directory, contract: { Aruba::Contracts::RelativePath => Aruba::Contracts::RelativePath }, default: 'tmp/aruba'
|
23
|
+
|
24
|
+
option_reader :fixtures_path_prefix, contract: { None => String }, default: '%'
|
25
|
+
|
26
|
+
option_accessor :exit_timeout, contract: { Num => Num }, default: 15
|
27
|
+
option_accessor :stop_signal, contract: { Maybe[String] => Maybe[String] }, default: nil
|
28
|
+
option_accessor :io_wait_timeout, contract: { Num => Num }, default: 0.1
|
29
|
+
option_accessor :startup_wait_time, contract: { Num => Num }, default: 0
|
30
|
+
option_accessor :fixtures_directories, contract: { Array => ArrayOf[String] }, default: %w(features/fixtures spec/fixtures test/fixtures fixtures)
|
31
|
+
option_accessor :command_runtime_environment, contract: { Hash => Hash }, default: {}
|
32
|
+
# rubocop:disable Metrics/LineLength
|
33
|
+
option_accessor(:command_search_paths, contract: { ArrayOf[String] => ArrayOf[String] }) { |config| [File.join(config.root_directory.value, 'bin'), File.join(config.root_directory.value, 'exe')] }
|
34
|
+
# rubocop:enable Metrics/LineLength
|
35
|
+
option_accessor :remove_ansi_escape_sequences, contract: { Bool => Bool }, default: true
|
36
|
+
# rubocop:disable Metrics/LineLength
|
37
|
+
option_accessor :command_launcher, contract: { Aruba::Contracts::Enum[:in_process, :spawn, :debug] => Aruba::Contracts::Enum[:in_process, :spawn, :debug] }, default: :spawn
|
38
|
+
option_accessor :main_class, contract: { Class => Maybe[Class] }, default: nil
|
39
|
+
|
40
|
+
option_accessor :home_directory, contract: { Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath] => Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath] } do |config|
|
41
|
+
File.join(config.root_directory.value, config.working_directory.value)
|
42
|
+
end
|
43
|
+
|
44
|
+
option_accessor :log_level, contract: { Aruba::Contracts::Enum[:fatal, :warn, :debug, :info, :error, :unknown, :silent] => Aruba::Contracts::Enum[:fatal, :warn, :debug, :info, :error, :unknown, :silent] }, default: :info
|
45
|
+
|
46
|
+
# TODO: deprecate this value and replace with "filesystem allocation unit"
|
47
|
+
# equal to 4096 by default. "filesystem allocation unit" would represent
|
48
|
+
# the actual MINIMUM space taken in bytes by a 1-byte file
|
49
|
+
option_accessor :physical_block_size, contract: { Aruba::Contracts::IsPowerOfTwo => Aruba::Contracts::IsPowerOfTwo }, default: 512
|
50
|
+
option_accessor :console_history_file, contract: { String => String }, default: '~/.aruba_history'
|
51
|
+
|
52
|
+
option_accessor :activate_announcer_on_command_failure, contract: { ArrayOf[Symbol] => ArrayOf[Symbol] }, default: []
|
53
|
+
option_accessor :allow_absolute_paths, contract: { Bool => Bool }, default: false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Aruba
|
58
|
+
module Aruba
|
59
|
+
@config = Configuration.new
|
60
|
+
|
61
|
+
class << self
|
62
|
+
attr_reader :config
|
63
|
+
|
64
|
+
# Configure aruba
|
65
|
+
#
|
66
|
+
# @example How to configure aruba
|
67
|
+
#
|
68
|
+
# Aruba.configure do |config|
|
69
|
+
# config.<option> = <value>
|
70
|
+
# end
|
71
|
+
#
|
72
|
+
def configure(&block)
|
73
|
+
@config.configure(&block)
|
74
|
+
|
75
|
+
self
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
data/lib/aruba/console.rb
CHANGED
@@ -20,10 +20,10 @@ module Aruba
|
|
20
20
|
|
21
21
|
IRB.conf[:PROMPT] = {}
|
22
22
|
IRB.conf[:PROMPT][:ARUBA] = {
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
23
|
+
PROMPT_I: '%N:%03n:%i> ',
|
24
|
+
PROMPT_S: '%N:%03n:%i%l ',
|
25
|
+
PROMPT_C: '%N:%03n:%i* ',
|
26
|
+
RETURN: "# => %s\n"
|
27
27
|
}
|
28
28
|
IRB.conf[:PROMPT_MODE] = :ARUBA
|
29
29
|
|
@@ -51,7 +51,7 @@ module Aruba
|
|
51
51
|
irb = IRB::Irb.new(IRB::WorkSpace.new(context.new))
|
52
52
|
IRB.conf[:MAIN_CONTEXT] = irb.context
|
53
53
|
|
54
|
-
trap(
|
54
|
+
trap('SIGINT') do
|
55
55
|
irb.signal_handle
|
56
56
|
end
|
57
57
|
|
data/lib/aruba/console/help.rb
CHANGED
@@ -18,7 +18,7 @@ module Aruba
|
|
18
18
|
|
19
19
|
# List available methods in aruba
|
20
20
|
def aruba_methods
|
21
|
-
ms = (Aruba::Api.instance_methods - Module.instance_methods).each_with_object([]) { |e, a| a << format(
|
21
|
+
ms = (Aruba::Api.instance_methods - Module.instance_methods).each_with_object([]) { |e, a| a << format('* %s', e) }.sort
|
22
22
|
|
23
23
|
puts "Available Methods:\n" + ms.join("\n")
|
24
24
|
|
data/lib/aruba/cucumber.rb
CHANGED
@@ -1,55 +1,34 @@
|
|
1
1
|
require 'aruba/generators/script_file'
|
2
2
|
|
3
|
-
When(/^I run
|
4
|
-
warn(%{\e[35m The /^I run "(.*)"$/ step definition is deprecated. Please use the `backticks` version\e[0m})
|
5
|
-
|
6
|
-
cmd = sanitize_text(cmd)
|
7
|
-
run_command_and_stop(cmd, false)
|
8
|
-
end
|
9
|
-
|
10
|
-
When(/^I run `([^`]*)`$/)do |cmd|
|
3
|
+
When(/^I run `([^`]*)`$/) do |cmd|
|
11
4
|
cmd = sanitize_text(cmd)
|
12
|
-
run_command_and_stop(cmd, :
|
13
|
-
end
|
14
|
-
|
15
|
-
When(/^I successfully run "(.*)"$/)do |cmd|
|
16
|
-
warn(%{\e[35m The /^I successfully run "(.*)"$/ step definition is deprecated. Please use the `backticks` version\e[0m})
|
17
|
-
|
18
|
-
cmd = sanitize_text(cmd)
|
19
|
-
run_command_and_stop(cmd)
|
5
|
+
run_command_and_stop(cmd, fail_on_error: false)
|
20
6
|
end
|
21
7
|
|
22
8
|
## I successfully run `echo -n "Hello"`
|
23
9
|
## I successfully run `sleep 29` for up to 30 seconds
|
24
|
-
When(/^I successfully run `(.*?)`(?: for up to (\d+) seconds)?$/)do |cmd, secs|
|
10
|
+
When(/^I successfully run `(.*?)`(?: for up to ([\d.]+) seconds)?$/) do |cmd, secs|
|
25
11
|
cmd = sanitize_text(cmd)
|
26
|
-
run_command_and_stop(cmd, :
|
12
|
+
run_command_and_stop(cmd, fail_on_error: true, exit_timeout: secs && secs.to_f)
|
27
13
|
end
|
28
14
|
|
29
15
|
When(/^I run the following (?:commands|script)(?: (?:with|in) `([^`]+)`)?:$/) do |shell, commands|
|
30
|
-
|
16
|
+
full_path = expand_path('bin/myscript')
|
31
17
|
|
32
18
|
Aruba.platform.mkdir(expand_path('bin'))
|
33
19
|
shell ||= Aruba.platform.default_shell
|
34
20
|
|
35
|
-
Aruba::ScriptFile.new(:
|
36
|
-
|
37
|
-
step 'I run `myscript`'
|
38
|
-
end
|
39
|
-
|
40
|
-
When(/^I run "([^"]*)" interactively$/) do |cmd|
|
41
|
-
Aruba.platform.deprecated(%{\e[35m The /^I run "([^"]*)" interactively$/ step definition is deprecated. Please use the `backticks` version\e[0m})
|
42
|
-
|
43
|
-
step %(I run `#{cmd}` interactively)
|
21
|
+
Aruba::ScriptFile.new(interpreter: shell, content: commands, path: full_path).call
|
22
|
+
run_command_and_stop(Shellwords.escape(full_path), fail_on_error: false)
|
44
23
|
end
|
45
24
|
|
46
|
-
When(/^I run `([^`]*)` interactively$/)do |cmd|
|
25
|
+
When(/^I run `([^`]*)` interactively$/) do |cmd|
|
47
26
|
cmd = sanitize_text(cmd)
|
48
27
|
@interactive = run_command(cmd)
|
49
28
|
end
|
50
29
|
|
51
30
|
# Merge interactive and background after refactoring with event queue
|
52
|
-
When(/^I run `([^`]*)` in background$/)do |cmd|
|
31
|
+
When(/^I run `([^`]*)` in background$/) do |cmd|
|
53
32
|
run_command(sanitize_text(cmd))
|
54
33
|
end
|
55
34
|
|
@@ -68,35 +47,26 @@ When(/^I pipe in (?:a|the) file(?: named)? "([^"]*)"$/) do |file|
|
|
68
47
|
end
|
69
48
|
|
70
49
|
When(/^I (terminate|stop) the command (?:"([^"]*)"|(?:started last))$/) do |signal, command|
|
71
|
-
|
72
|
-
cmd = all_commands.find { |c| c.commandline == command }
|
73
|
-
fail ArgumentError, %(No command "#{command}" found) if cmd.nil?
|
50
|
+
monitor = aruba.command_monitor
|
74
51
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
52
|
+
cmd = if command
|
53
|
+
monitor.find(command)
|
54
|
+
else
|
55
|
+
last_command_started
|
56
|
+
end
|
57
|
+
|
58
|
+
if signal == 'terminate'
|
59
|
+
cmd.terminate
|
82
60
|
else
|
83
|
-
|
84
|
-
# last_command_started.terminate
|
85
|
-
process_monitor.terminate_process!(last_command_started)
|
86
|
-
else
|
87
|
-
# last_command_started.stop
|
88
|
-
process_monitor.stop_process(last_command_started)
|
89
|
-
end
|
61
|
+
cmd.stop
|
90
62
|
end
|
91
63
|
end
|
92
64
|
|
93
65
|
When(/^I stop the command(?: started last)? if (output|stdout|stderr) contains:$/) do |channel, expected|
|
94
|
-
fail %(Invalid output channel "#{channel}" chosen. Please choose one of "output, stdout or stderr") unless %w(output stdout stderr).include? channel
|
95
|
-
|
96
66
|
begin
|
97
67
|
Timeout.timeout(aruba.config.exit_timeout) do
|
98
68
|
loop do
|
99
|
-
output = last_command_started.public_send channel.to_sym, :
|
69
|
+
output = last_command_started.public_send channel.to_sym, wait_for_io: 0
|
100
70
|
|
101
71
|
output = sanitize_text(output)
|
102
72
|
expected = sanitize_text(expected)
|
@@ -146,7 +116,7 @@ When(/^I wait for (?:output|stdout) to contain "([^"]*)"$/) do |expected|
|
|
146
116
|
end
|
147
117
|
|
148
118
|
Then(/^the output should be (\d+) bytes long$/) do |size|
|
149
|
-
expect(
|
119
|
+
expect(last_command_started.output).to have_output_size size.to_i
|
150
120
|
end
|
151
121
|
|
152
122
|
Then(/^(?:the )?(output|stderr|stdout)(?: from "([^"]*)")? should( not)? contain( exactly)? "([^"]*)"$/) do |channel, cmd, negated, exactly, expected|
|
@@ -171,23 +141,10 @@ Then(/^(?:the )?(output|stderr|stdout)(?: from "([^"]*)")? should( not)? contain
|
|
171
141
|
:an_output_string_including
|
172
142
|
end
|
173
143
|
|
174
|
-
if
|
175
|
-
|
176
|
-
c.stop
|
177
|
-
c.send(channel.to_sym).chomp
|
178
|
-
end.join("\n")
|
179
|
-
|
180
|
-
if negated
|
181
|
-
expect(combined_output).not_to send(output_string_matcher, expected)
|
182
|
-
else
|
183
|
-
expect(combined_output).to send(output_string_matcher, expected)
|
184
|
-
end
|
144
|
+
if negated
|
145
|
+
expect(commands).not_to include_an_object send(matcher, send(output_string_matcher, expected))
|
185
146
|
else
|
186
|
-
|
187
|
-
expect(commands).not_to include_an_object send(matcher, send(output_string_matcher, expected))
|
188
|
-
else
|
189
|
-
expect(commands).to include_an_object send(matcher, send(output_string_matcher, expected))
|
190
|
-
end
|
147
|
+
expect(commands).to include_an_object send(matcher, send(output_string_matcher, expected))
|
191
148
|
end
|
192
149
|
end
|
193
150
|
|
@@ -219,23 +176,10 @@ Then(/^(?:the )?(output|stderr|stdout)(?: from "([^"]*)")? should( not)? contain
|
|
219
176
|
:an_output_string_including
|
220
177
|
end
|
221
178
|
|
222
|
-
if
|
223
|
-
|
224
|
-
c.stop
|
225
|
-
c.send(channel.to_sym).chomp
|
226
|
-
end.join("\n")
|
227
|
-
|
228
|
-
if negated
|
229
|
-
expect(combined_output).not_to send(output_string_matcher, expected)
|
230
|
-
else
|
231
|
-
expect(combined_output).to send(output_string_matcher, expected)
|
232
|
-
end
|
179
|
+
if negated
|
180
|
+
expect(commands).not_to include_an_object send(matcher, send(output_string_matcher, expected))
|
233
181
|
else
|
234
|
-
|
235
|
-
expect(commands).not_to include_an_object send(matcher, send(output_string_matcher, expected))
|
236
|
-
else
|
237
|
-
expect(commands).to include_an_object send(matcher, send(output_string_matcher, expected))
|
238
|
-
end
|
182
|
+
expect(commands).to include_an_object send(matcher, send(output_string_matcher, expected))
|
239
183
|
end
|
240
184
|
end
|
241
185
|
|
@@ -268,6 +212,10 @@ Then(/^the output should( not)? match:$/) do |negated, expected|
|
|
268
212
|
end
|
269
213
|
|
270
214
|
Then(/^the exit status should( not)? be (\d+)$/) do |negated, exit_status|
|
215
|
+
if last_command_stopped.nil?
|
216
|
+
last_command_started.stop
|
217
|
+
end
|
218
|
+
|
271
219
|
if negated
|
272
220
|
expect(last_command_stopped).not_to have_exit_status exit_status.to_i
|
273
221
|
else
|
@@ -276,6 +224,8 @@ Then(/^the exit status should( not)? be (\d+)$/) do |negated, exit_status|
|
|
276
224
|
end
|
277
225
|
|
278
226
|
Then(/^it should( not)? (pass|fail) with "(.*?)"$/) do |negated, pass_fail, expected|
|
227
|
+
last_command_started.stop
|
228
|
+
|
279
229
|
if pass_fail == 'pass'
|
280
230
|
expect(last_command_stopped).to be_successfully_executed
|
281
231
|
else
|
@@ -290,6 +240,8 @@ Then(/^it should( not)? (pass|fail) with "(.*?)"$/) do |negated, pass_fail, expe
|
|
290
240
|
end
|
291
241
|
|
292
242
|
Then(/^it should( not)? (pass|fail) with:$/) do |negated, pass_fail, expected|
|
243
|
+
last_command_started.stop
|
244
|
+
|
293
245
|
if pass_fail == 'pass'
|
294
246
|
expect(last_command_stopped).to be_successfully_executed
|
295
247
|
else
|
@@ -304,6 +256,8 @@ Then(/^it should( not)? (pass|fail) with:$/) do |negated, pass_fail, expected|
|
|
304
256
|
end
|
305
257
|
|
306
258
|
Then(/^it should( not)? (pass|fail) with exactly:$/) do |negated, pass_fail, expected|
|
259
|
+
last_command_started.stop
|
260
|
+
|
307
261
|
if pass_fail == 'pass'
|
308
262
|
expect(last_command_stopped).to be_successfully_executed
|
309
263
|
else
|
@@ -318,6 +272,8 @@ Then(/^it should( not)? (pass|fail) with exactly:$/) do |negated, pass_fail, exp
|
|
318
272
|
end
|
319
273
|
|
320
274
|
Then(/^it should( not)? (pass|fail) (?:with regexp?|matching):$/) do |negated, pass_fail, expected|
|
275
|
+
last_command_started.stop
|
276
|
+
|
321
277
|
if pass_fail == 'pass'
|
322
278
|
expect(last_command_stopped).to be_successfully_executed
|
323
279
|
else
|
@@ -348,16 +304,16 @@ end
|
|
348
304
|
|
349
305
|
Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/) do |channel, negated, table|
|
350
306
|
table.raw.flatten.each do |expected|
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
307
|
+
case channel.to_sym
|
308
|
+
when :output
|
309
|
+
:have_output
|
310
|
+
when :stderr
|
311
|
+
:have_output_on_stderr
|
312
|
+
when :stdout
|
313
|
+
:have_output_on_stdout
|
314
|
+
else
|
315
|
+
fail ArgumentError, %(Invalid channel "#{channel}" chosen. Only "output", "stdout" and "stderr" are supported.)
|
316
|
+
end
|
361
317
|
|
362
318
|
if negated
|
363
319
|
expect(all_commands).not_to include_an_object have_output an_output_string_including(expected)
|
@@ -367,36 +323,20 @@ Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:
|
|
367
323
|
end
|
368
324
|
end
|
369
325
|
|
370
|
-
Given(
|
371
|
-
|
372
|
-
Aruba.platform.deprecated(%{The /^the default aruba timeout is (\d+) seconds/ step definition is deprecated. Please use /^the default aruba exit timeout is (\d+) seconds/ step definition is deprecated.})
|
373
|
-
# rubocop:enable Metrics/LineLength
|
374
|
-
|
375
|
-
aruba.config.exit_timeout = seconds.to_i
|
376
|
-
end
|
377
|
-
|
378
|
-
Given(/The default aruba timeout is (\d+) seconds/) do |seconds|
|
379
|
-
# rubocop:disable Metrics/LineLength
|
380
|
-
Aruba.platform.deprecated(%{The /^The default aruba timeout is (\d+) seconds/ step definition is deprecated. Please use /^the default aruba exit timeout is (\d+) seconds/ step definition is deprecated.})
|
381
|
-
# rubocop:enable Metrics/LineLength
|
382
|
-
|
383
|
-
aruba.config.exit_timeout = seconds.to_i
|
384
|
-
end
|
385
|
-
|
386
|
-
Given(/^the (?:default )?aruba io wait timeout is (\d+) seconds?$/) do |seconds|
|
387
|
-
aruba.config.io_wait_timeout = seconds.to_i
|
326
|
+
Given(/^the (?:default )?aruba io wait timeout is ([\d.]+) seconds?$/) do |seconds|
|
327
|
+
aruba.config.io_wait_timeout = seconds.to_f
|
388
328
|
end
|
389
329
|
|
390
|
-
Given(/^the (?:default )?aruba exit timeout is (\d+) seconds?$/) do |seconds|
|
391
|
-
aruba.config.exit_timeout = seconds.
|
330
|
+
Given(/^the (?:default )?aruba exit timeout is ([\d.]+) seconds?$/) do |seconds|
|
331
|
+
aruba.config.exit_timeout = seconds.to_f
|
392
332
|
end
|
393
333
|
|
394
334
|
Given(/^the (?:default )?aruba stop signal is "([^"]*)"$/) do |signal|
|
395
335
|
aruba.config.stop_signal = signal
|
396
336
|
end
|
397
337
|
|
398
|
-
Given(/^I wait (\d+) seconds? for (?:a|the) command to start up$/) do |seconds|
|
399
|
-
aruba.config.startup_wait_time = seconds.
|
338
|
+
Given(/^I wait ([\d.]+) seconds? for (?:a|the) command to start up$/) do |seconds|
|
339
|
+
aruba.config.startup_wait_time = seconds.to_f
|
400
340
|
end
|
401
341
|
|
402
342
|
When(/^I send the signal "([^"]*)" to the command (?:"([^"]*)"|(?:started last))$/) do |signal, command|
|
data/lib/aruba/cucumber/file.rb
CHANGED
@@ -3,11 +3,11 @@ Given(/^I use (?:a|the) fixture(?: named)? "([^"]*)"$/) do |name|
|
|
3
3
|
cd name
|
4
4
|
end
|
5
5
|
|
6
|
-
Given(/^I copy (?:a|the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |
|
6
|
+
Given(/^I copy (?:a|the) (?:file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |source, destination|
|
7
7
|
copy source, destination
|
8
8
|
end
|
9
9
|
|
10
|
-
Given(/^I move (?:a|the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |
|
10
|
+
Given(/^I move (?:a|the) (?:file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |source, destination|
|
11
11
|
move source, destination
|
12
12
|
end
|
13
13
|
|
@@ -42,11 +42,11 @@ Given(/^(?:a|the) (\d+) byte file(?: named)? "([^"]*)"$/) do |file_size, file_na
|
|
42
42
|
end
|
43
43
|
|
44
44
|
Given(/^(?:an|the) empty file(?: named)? "([^"]*)"$/) do |file_name|
|
45
|
-
write_file(file_name,
|
45
|
+
write_file(file_name, '')
|
46
46
|
end
|
47
47
|
|
48
48
|
Given(/^(?:an|the) empty file(?: named)? "([^"]*)" with mode "([^"]*)"$/) do |file_name, file_mode|
|
49
|
-
write_file(file_name,
|
49
|
+
write_file(file_name, '')
|
50
50
|
chmod(file_mode, file_name)
|
51
51
|
end
|
52
52
|
|
@@ -67,11 +67,11 @@ When(/^I append to "([^"]*)" with "([^"]*)"$/) do |file_name, file_content|
|
|
67
67
|
end
|
68
68
|
|
69
69
|
When(/^I remove (?:a|the) (?:file|directory)(?: named)? "([^"]*)"( with full force)?$/) do |name, force_remove|
|
70
|
-
remove(name, :
|
70
|
+
remove(name, force: force_remove.nil? ? false : true)
|
71
71
|
end
|
72
72
|
|
73
73
|
Given(/^(?:a|the) (?:file|directory)(?: named)? "([^"]*)" does not exist$/) do |name|
|
74
|
-
remove(name, :
|
74
|
+
remove(name, force: true)
|
75
75
|
end
|
76
76
|
|
77
77
|
When(/^I cd to "([^"]*)"$/) do |dir|
|
@@ -156,7 +156,7 @@ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?contain exactly:$/) do
|
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
159
|
-
Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?match %r<([
|
159
|
+
Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?match %r<([^>]*)>$/) do |file, negated, content|
|
160
160
|
if negated
|
161
161
|
expect(file).not_to have_file_content file_content_matching(content)
|
162
162
|
else
|
@@ -174,21 +174,9 @@ end
|
|
174
174
|
|
175
175
|
Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?be equal to file "([^"]*)"/) do |file, negated, reference_file|
|
176
176
|
if negated
|
177
|
-
expect(file).not_to
|
177
|
+
expect(file).not_to have_same_file_content_as(reference_file)
|
178
178
|
else
|
179
|
-
expect(file).to
|
180
|
-
end
|
181
|
-
end
|
182
|
-
|
183
|
-
Then(/^the mode of filesystem object "([^"]*)" should (not )?match "([^"]*)"$/) do |file, negated, permissions|
|
184
|
-
# rubocop:disable Metrics/LineLength
|
185
|
-
Aruba.platform.deprecated('The use of step "the mode of filesystem object "([^"]*)" should (not )?match "([^"]*)" is deprecated. Use "^the (?:file|directory)(?: named)? "([^"]*)" should have permissions "([^"]*)"$" instead')
|
186
|
-
# rubocop:enable Metrics/LineLength
|
187
|
-
|
188
|
-
if negated
|
189
|
-
expect(file).not_to have_permissions(permissions)
|
190
|
-
else
|
191
|
-
expect(file).to have_permissions(permissions)
|
179
|
+
expect(file).to have_same_file_content_as(reference_file)
|
192
180
|
end
|
193
181
|
end
|
194
182
|
|