aruba-win-fix 0.14.2
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 +7 -0
- data/.document +5 -0
- data/.gitignore +37 -0
- data/.rspec +3 -0
- data/.rubocop.yml +188 -0
- data/.simplecov +34 -0
- data/.travis.yml +47 -0
- data/.yardopts +8 -0
- data/CONTRIBUTING.md +71 -0
- data/Gemfile +83 -0
- data/History.md +579 -0
- data/LICENSE +20 -0
- data/README.md +226 -0
- data/Rakefile +49 -0
- data/TODO.md +13 -0
- data/appveyor.yml +32 -0
- data/aruba.gemspec +48 -0
- data/bin/aruba +7 -0
- data/config/.gitignore +1 -0
- data/cucumber.yml +26 -0
- data/features/.nav +72 -0
- data/features/api/command/find_command.feature +83 -0
- data/features/api/command/last_command_started.feature +50 -0
- data/features/api/command/last_command_stopped.feature +89 -0
- data/features/api/command/run.feature +414 -0
- data/features/api/command/run_simple.feature +242 -0
- data/features/api/command/send_signal.feature +53 -0
- data/features/api/command/stderr.feature +46 -0
- data/features/api/command/stdout.feature +46 -0
- data/features/api/command/stop.feature +131 -0
- data/features/api/command/stop_all_commands.feature +53 -0
- data/features/api/command/terminate_all_commands.feature +53 -0
- data/features/api/command/which.feature +37 -0
- data/features/api/core/expand_path.feature +88 -0
- data/features/api/environment/append_environment_variable.feature +128 -0
- data/features/api/environment/delete_environment_variable.feature +63 -0
- data/features/api/environment/prepend_environment_variable.feature +128 -0
- data/features/api/environment/set_environment_variable.feature +376 -0
- data/features/api/filesystem/cd.feature +184 -0
- data/features/api/filesystem/create_directory.feature +57 -0
- data/features/api/filesystem/disk_usage.feature +152 -0
- data/features/api/filesystem/does_exist.feature +62 -0
- data/features/api/filesystem/fixtures.feature +104 -0
- data/features/api/filesystem/is_absolute.feature +48 -0
- data/features/api/filesystem/is_directory.feature +53 -0
- data/features/api/filesystem/is_file.feature +54 -0
- data/features/api/filesystem/is_relative.feature +48 -0
- data/features/api/filesystem/move.feature +119 -0
- data/features/api/text/extract_text.feature +87 -0
- data/features/api/text/replace_variables.feature +45 -0
- data/features/api/text/sanitize_text.feature +228 -0
- data/features/api/text/unescape_text.feature +127 -0
- data/features/cli/console.feature +52 -0
- data/features/cli/init.feature +79 -0
- data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
- data/features/configuration/command_runtime_environment.feature +129 -0
- data/features/configuration/console_history_file.feature +38 -0
- data/features/configuration/exit_timeout.feature +52 -0
- data/features/configuration/fixtures_directories.feature +38 -0
- data/features/configuration/fixtures_path_prefix.feature +23 -0
- data/features/configuration/home_directory.feature +80 -0
- data/features/configuration/io_timeout.feature +30 -0
- data/features/configuration/keep_ansi.feature +30 -0
- data/features/configuration/log_level.feature +38 -0
- data/features/configuration/physical_block_size.feature +53 -0
- data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
- data/features/configuration/root_directory.feature +30 -0
- data/features/configuration/startup_wait_time.feature +48 -0
- data/features/configuration/usage.feature +159 -0
- data/features/configuration/working_directory.feature +33 -0
- data/features/development/build.feature +15 -0
- data/features/development/test.feature +24 -0
- data/features/getting_started/cleanup.feature +67 -0
- data/features/getting_started/install.feature +8 -0
- data/features/getting_started/run_commands.feature +177 -0
- data/features/getting_started/supported_testing_frameworks.feature +104 -0
- data/features/getting_started/writing_good_feature_tests.feature +38 -0
- data/features/hooks/after/command.feature +44 -0
- data/features/hooks/before/command.feature +71 -0
- data/features/matchers/collection/include_an_object.feature +72 -0
- data/features/matchers/directory/have_sub_directory.feature +110 -0
- data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
- data/features/matchers/file/be_existing_executable.feature +88 -0
- data/features/matchers/file/be_existing_file.feature +82 -0
- data/features/matchers/file/have_file_content.feature +123 -0
- data/features/matchers/file/have_file_size.feature +107 -0
- data/features/matchers/path/be_an_absolute_path.feature +74 -0
- data/features/matchers/path/be_an_existing_path.feature +97 -0
- data/features/matchers/path/have_permissions.feature +118 -0
- data/features/matchers/timeouts.feature +48 -0
- data/features/platforms/jruby.feature +14 -0
- data/features/rspec/integration.feature +179 -0
- data/features/step_definitions/aruba_dev_steps.rb +56 -0
- data/features/step_definitions/hooks.rb +96 -0
- data/features/steps/command/debug.feature +92 -0
- data/features/steps/command/exit_statuses.feature +136 -0
- data/features/steps/command/in_process.feature +485 -0
- data/features/steps/command/interactive.feature +90 -0
- data/features/steps/command/output.feature +588 -0
- data/features/steps/command/run.feature +66 -0
- data/features/steps/command/send_signal.feature +104 -0
- data/features/steps/command/shell.feature +155 -0
- data/features/steps/command/stderr.feature +68 -0
- data/features/steps/command/stdout.feature +109 -0
- data/features/steps/command/stop.feature +313 -0
- data/features/steps/core/announce.feature +283 -0
- data/features/steps/environment/append_environment_variable.feature +52 -0
- data/features/steps/environment/home_variable.feature +62 -0
- data/features/steps/environment/prepend_environment_variable.feature +52 -0
- data/features/steps/environment/set_environment_variable.feature +49 -0
- data/features/steps/filesystem/append_to_file.feature +45 -0
- data/features/steps/filesystem/cd_to_directory.feature +33 -0
- data/features/steps/filesystem/check_file_content.feature +61 -0
- data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
- data/features/steps/filesystem/compare_files.feature +42 -0
- data/features/steps/filesystem/copy.feature +45 -0
- data/features/steps/filesystem/create_directory.feature +57 -0
- data/features/steps/filesystem/create_file.feature +76 -0
- data/features/steps/filesystem/existence_of_directory.feature +57 -0
- data/features/steps/filesystem/existence_of_file.feature +43 -0
- data/features/steps/filesystem/file_content.feature +86 -0
- data/features/steps/filesystem/fixtures.feature +64 -0
- data/features/steps/filesystem/move.feature +45 -0
- data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
- data/features/steps/filesystem/non_existence_of_file.feature +80 -0
- data/features/steps/filesystem/overwrite_file.feature +72 -0
- data/features/steps/filesystem/remove_directory.feature +38 -0
- data/features/steps/filesystem/remove_file.feature +38 -0
- data/features/steps/filesystem/use_fixture.feature +77 -0
- data/features/steps/overview.feature +60 -0
- data/features/support/aruba.rb +7 -0
- data/features/support/env.rb +33 -0
- data/features/support/jruby.rb +5 -0
- data/features/support/simplecov_setup.rb +8 -0
- data/fixtures/cli-app/.gitignore +9 -0
- data/fixtures/cli-app/.rspec +2 -0
- data/fixtures/cli-app/README.md +39 -0
- data/fixtures/cli-app/Rakefile +1 -0
- data/fixtures/cli-app/bin/cli +6 -0
- data/fixtures/cli-app/cli-app.gemspec +26 -0
- data/fixtures/cli-app/features/support/env.rb +1 -0
- data/fixtures/cli-app/lib/cli/app.rb +13 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
- data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
- data/fixtures/cli-app/script/console +14 -0
- data/fixtures/cli-app/spec/spec_helper.rb +9 -0
- data/fixtures/cli-app/spec/support/aruba.rb +1 -0
- data/fixtures/copy/file.txt +1 -0
- data/fixtures/empty-app/.gitignore +9 -0
- data/fixtures/empty-app/.rspec +2 -0
- data/fixtures/empty-app/README.md +24 -0
- data/fixtures/empty-app/Rakefile +1 -0
- data/fixtures/empty-app/cli-app.gemspec +26 -0
- data/fixtures/empty-app/lib/cli/app.rb +13 -0
- data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
- data/fixtures/getting-started-app/.gitignore +4 -0
- data/fixtures/getting-started-app/Gemfile +4 -0
- data/fixtures/getting-started-app/README.md +3 -0
- data/fixtures/getting-started-app/features/support/env.rb +1 -0
- data/fixtures/spawn_process/stderr.sh +3 -0
- data/lib/aruba.rb +1 -0
- data/lib/aruba/api.rb +34 -0
- data/lib/aruba/api/command.rb +307 -0
- data/lib/aruba/api/core.rb +191 -0
- data/lib/aruba/api/deprecated.rb +897 -0
- data/lib/aruba/api/environment.rb +89 -0
- data/lib/aruba/api/filesystem.rb +392 -0
- data/lib/aruba/api/rvm.rb +44 -0
- data/lib/aruba/api/text.rb +56 -0
- data/lib/aruba/aruba_path.rb +133 -0
- data/lib/aruba/basic_configuration.rb +240 -0
- data/lib/aruba/basic_configuration/option.rb +32 -0
- data/lib/aruba/cli.rb +26 -0
- data/lib/aruba/colorizer.rb +108 -0
- data/lib/aruba/command.rb +74 -0
- data/lib/aruba/config.rb +108 -0
- data/lib/aruba/config/jruby.rb +17 -0
- data/lib/aruba/config_wrapper.rb +58 -0
- data/lib/aruba/console.rb +70 -0
- data/lib/aruba/console/help.rb +35 -0
- data/lib/aruba/contracts/absolute_path.rb +20 -0
- data/lib/aruba/contracts/enum.rb +26 -0
- data/lib/aruba/contracts/is_power_of_two.rb +22 -0
- data/lib/aruba/contracts/relative_path.rb +20 -0
- data/lib/aruba/cucumber.rb +13 -0
- data/lib/aruba/cucumber/command.rb +422 -0
- data/lib/aruba/cucumber/core.rb +5 -0
- data/lib/aruba/cucumber/environment.rb +42 -0
- data/lib/aruba/cucumber/file.rb +201 -0
- data/lib/aruba/cucumber/hooks.rb +160 -0
- data/lib/aruba/cucumber/rvm.rb +3 -0
- data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
- data/lib/aruba/errors.rb +37 -0
- data/lib/aruba/event_bus.rb +59 -0
- data/lib/aruba/event_bus/name_resolver.rb +168 -0
- data/lib/aruba/events.rb +39 -0
- data/lib/aruba/extensions/string/strip.rb +25 -0
- data/lib/aruba/file_size.rb +63 -0
- data/lib/aruba/generators/script_file.rb +46 -0
- data/lib/aruba/hooks.rb +56 -0
- data/lib/aruba/in_config_wrapper.rb +24 -0
- data/lib/aruba/in_process.rb +14 -0
- data/lib/aruba/initializer.rb +222 -0
- data/lib/aruba/jruby.rb +4 -0
- data/lib/aruba/matchers/base/base_matcher.rb +96 -0
- data/lib/aruba/matchers/base/object_formatter.rb +114 -0
- data/lib/aruba/matchers/collection.rb +1 -0
- data/lib/aruba/matchers/collection/all.rb +11 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
- data/lib/aruba/matchers/command.rb +1 -0
- data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
- data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
- data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
- data/lib/aruba/matchers/command/have_output.rb +36 -0
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
- data/lib/aruba/matchers/command/have_output_size.rb +28 -0
- data/lib/aruba/matchers/directory.rb +1 -0
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
- data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
- data/lib/aruba/matchers/environment.rb +1 -0
- data/lib/aruba/matchers/file.rb +1 -0
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
- data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
- data/lib/aruba/matchers/file/have_file_content.rb +62 -0
- data/lib/aruba/matchers/file/have_file_size.rb +47 -0
- data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
- data/lib/aruba/matchers/path.rb +1 -0
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
- data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
- data/lib/aruba/matchers/path/have_permissions.rb +64 -0
- data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
- data/lib/aruba/matchers/string.rb +1 -0
- data/lib/aruba/matchers/string/include_output_string.rb +36 -0
- data/lib/aruba/matchers/string/match_output_string.rb +37 -0
- data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
- data/lib/aruba/platform.rb +25 -0
- data/lib/aruba/platforms/announcer.rb +232 -0
- data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_logger.rb +81 -0
- data/lib/aruba/platforms/command_monitor.rb +229 -0
- data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
- data/lib/aruba/platforms/determine_file_size.rb +22 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
- data/lib/aruba/platforms/filesystem_status.rb +68 -0
- data/lib/aruba/platforms/local_environment.rb +29 -0
- data/lib/aruba/platforms/simple_table.rb +54 -0
- data/lib/aruba/platforms/unix_command_string.rb +27 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
- data/lib/aruba/platforms/unix_platform.rb +276 -0
- data/lib/aruba/platforms/unix_which.rb +85 -0
- data/lib/aruba/platforms/windows_command_string.rb +31 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
- data/lib/aruba/platforms/windows_platform.rb +42 -0
- data/lib/aruba/platforms/windows_which.rb +106 -0
- data/lib/aruba/processes/basic_process.rb +143 -0
- data/lib/aruba/processes/debug_process.rb +69 -0
- data/lib/aruba/processes/in_process.rb +125 -0
- data/lib/aruba/processes/spawn_process.rb +278 -0
- data/lib/aruba/reporting.rb +126 -0
- data/lib/aruba/rspec.rb +107 -0
- data/lib/aruba/runtime.rb +96 -0
- data/lib/aruba/setup.rb +90 -0
- data/lib/aruba/spawn_process.rb +11 -0
- data/lib/aruba/version.rb +3 -0
- data/script/bootstrap +28 -0
- data/script/console +16 -0
- data/script/test +3 -0
- data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
- data/spec/aruba/api/environment/set_env_spec.rb +42 -0
- data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
- data/spec/aruba/api/runtime_spec.rb +28 -0
- data/spec/aruba/api_spec.rb +1209 -0
- data/spec/aruba/aruba_path_spec.rb +103 -0
- data/spec/aruba/basic_configuration_spec.rb +5 -0
- data/spec/aruba/configuration_spec.rb +5 -0
- data/spec/aruba/hooks_spec.rb +17 -0
- data/spec/aruba/in_config_wrapper_spec.rb +25 -0
- data/spec/aruba/jruby_spec.rb +55 -0
- data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
- data/spec/aruba/matchers/command_spec.rb +174 -0
- data/spec/aruba/matchers/directory_spec.rb +57 -0
- data/spec/aruba/matchers/file_spec.rb +127 -0
- data/spec/aruba/matchers/path_spec.rb +88 -0
- data/spec/aruba/platform/simple_table_spec.rb +23 -0
- data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
- data/spec/aruba/rspec_spec.rb +15 -0
- data/spec/aruba/runtime_spec.rb +29 -0
- data/spec/aruba/spawn_process_spec.rb +60 -0
- data/spec/event_bus/name_resolver_spec.rb +68 -0
- data/spec/event_bus_spec.rb +160 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/configs/.keep +0 -0
- data/spec/support/configs/aruba.rb +5 -0
- data/spec/support/configs/pry.rb +3 -0
- data/spec/support/configs/rspec.rb +15 -0
- data/spec/support/helpers/.keep +0 -0
- data/spec/support/helpers/reporting.rb +44 -0
- data/spec/support/matchers/.keep +0 -0
- data/spec/support/matchers/option.rb +35 -0
- data/spec/support/shared_contexts/.keep +0 -0
- data/spec/support/shared_contexts/aruba.rb +48 -0
- data/spec/support/shared_examples/.keep +0 -0
- data/spec/support/shared_examples/configuration.rb +116 -0
- data/spec/support/shared_examples/directory.rb +7 -0
- data/spec/support/shared_examples/file.rb +7 -0
- data/templates/css/console.css +24 -0
- data/templates/css/filesystem.css +42 -0
- data/templates/css/pygments-autumn.css +59 -0
- data/templates/files.erb +14 -0
- data/templates/images/LICENSE +22 -0
- data/templates/images/folder.png +0 -0
- data/templates/images/page_white.png +0 -0
- data/templates/images/page_white_gherkin.png +0 -0
- data/templates/images/page_white_ruby.png +0 -0
- data/templates/index.erb +20 -0
- data/templates/js/filesystem.js +5 -0
- data/templates/js/jquery-1.11.3.min.js +5 -0
- data/templates/main.erb +34 -0
- metadata +629 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
Feature: Run command
|
|
2
|
+
|
|
3
|
+
To run a command use the `#run`-method. There are some configuration options
|
|
4
|
+
which are relevant here:
|
|
5
|
+
|
|
6
|
+
- `fail_on_error`:
|
|
7
|
+
|
|
8
|
+
Given this option is `true`, `aruba` fails if the `command` fails to run - exit code <> 0.
|
|
9
|
+
|
|
10
|
+
For all other options see [run.feature](run.feature).
|
|
11
|
+
|
|
12
|
+
Background:
|
|
13
|
+
Given I use a fixture named "cli-app"
|
|
14
|
+
|
|
15
|
+
Scenario: Require executable to succeed (by default value)
|
|
16
|
+
Given an executable named "bin/cli" with:
|
|
17
|
+
"""bash
|
|
18
|
+
#!/bin/bash
|
|
19
|
+
exit 1
|
|
20
|
+
"""
|
|
21
|
+
And a file named "spec/run_spec.rb" with:
|
|
22
|
+
"""ruby
|
|
23
|
+
require 'spec_helper'
|
|
24
|
+
|
|
25
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
26
|
+
it { expect { run_simple('cli') }.to raise_error RSpec::Expectations::ExpectationNotMetError }
|
|
27
|
+
end
|
|
28
|
+
"""
|
|
29
|
+
When I run `rspec`
|
|
30
|
+
Then the specs should all pass
|
|
31
|
+
|
|
32
|
+
Scenario: Require executable to succeed (set by option)
|
|
33
|
+
Given an executable named "bin/cli" with:
|
|
34
|
+
"""bash
|
|
35
|
+
#!/bin/bash
|
|
36
|
+
exit 1
|
|
37
|
+
"""
|
|
38
|
+
And a file named "spec/run_spec.rb" with:
|
|
39
|
+
"""ruby
|
|
40
|
+
require 'spec_helper'
|
|
41
|
+
|
|
42
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
43
|
+
it { expect { run_simple('cli', :fail_on_error => true) }.to raise_error }
|
|
44
|
+
end
|
|
45
|
+
"""
|
|
46
|
+
When I run `rspec`
|
|
47
|
+
Then the specs should all pass
|
|
48
|
+
|
|
49
|
+
Scenario: Require executable to succeed (set by option, deprecated)
|
|
50
|
+
Given an executable named "bin/cli" with:
|
|
51
|
+
"""bash
|
|
52
|
+
#!/bin/bash
|
|
53
|
+
exit 1
|
|
54
|
+
"""
|
|
55
|
+
And a file named "spec/run_spec.rb" with:
|
|
56
|
+
"""ruby
|
|
57
|
+
require 'spec_helper'
|
|
58
|
+
|
|
59
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
60
|
+
it { expect { run_simple('cli', true) }.to raise_error }
|
|
61
|
+
end
|
|
62
|
+
"""
|
|
63
|
+
When I run `rspec`
|
|
64
|
+
Then the specs should all pass
|
|
65
|
+
|
|
66
|
+
Scenario: Ignore failure of executable (set by option)
|
|
67
|
+
Given an executable named "bin/cli" with:
|
|
68
|
+
"""bash
|
|
69
|
+
#!/bin/bash
|
|
70
|
+
exit 1
|
|
71
|
+
"""
|
|
72
|
+
And a file named "spec/run_spec.rb" with:
|
|
73
|
+
"""ruby
|
|
74
|
+
require 'spec_helper'
|
|
75
|
+
|
|
76
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
77
|
+
it { expect { run_simple('cli', :fail_on_error => false) }.not_to raise_error }
|
|
78
|
+
end
|
|
79
|
+
"""
|
|
80
|
+
When I run `rspec`
|
|
81
|
+
Then the specs should all pass
|
|
82
|
+
|
|
83
|
+
Scenario: Ignore failure of executable (set by option, deprecated)
|
|
84
|
+
Given an executable named "bin/cli" with:
|
|
85
|
+
"""bash
|
|
86
|
+
#!/bin/bash
|
|
87
|
+
exit 1
|
|
88
|
+
"""
|
|
89
|
+
And a file named "spec/run_spec.rb" with:
|
|
90
|
+
"""ruby
|
|
91
|
+
require 'spec_helper'
|
|
92
|
+
|
|
93
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
94
|
+
it { expect { run_simple('cli', false) }.not_to raise_error }
|
|
95
|
+
end
|
|
96
|
+
"""
|
|
97
|
+
When I run `rspec`
|
|
98
|
+
Then the specs should all pass
|
|
99
|
+
|
|
100
|
+
Scenario: Command with long startup phase
|
|
101
|
+
|
|
102
|
+
If you have got a command with a long startup phase or use `ruby` together
|
|
103
|
+
with `bundler`, you should consider using the `startup_wait_time`-option.
|
|
104
|
+
Otherwise methods like `#send_signal` don't work since they require the
|
|
105
|
+
command to be running and have setup it's signal handler.
|
|
106
|
+
|
|
107
|
+
Given an executable named "bin/cli" with:
|
|
108
|
+
"""bash
|
|
109
|
+
#!/usr/bin/env bash
|
|
110
|
+
|
|
111
|
+
function initialize_script {
|
|
112
|
+
sleep 2
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function do_some_work {
|
|
116
|
+
echo "Hello, Aruba is working"
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
initialize_script
|
|
120
|
+
do_some_work
|
|
121
|
+
|
|
122
|
+
exit 0
|
|
123
|
+
"""
|
|
124
|
+
And a file named "spec/run_spec.rb" with:
|
|
125
|
+
"""ruby
|
|
126
|
+
require 'spec_helper'
|
|
127
|
+
|
|
128
|
+
RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 1, :startup_wait_time => 2 do
|
|
129
|
+
before(:each) { run_simple('cli') }
|
|
130
|
+
|
|
131
|
+
it { expect(last_command_started).to be_successfully_executed }
|
|
132
|
+
it { expect(last_command_started).to have_output /Hello, Aruba is working/ }
|
|
133
|
+
end
|
|
134
|
+
"""
|
|
135
|
+
When I run `rspec`
|
|
136
|
+
Then the specs should all pass
|
|
137
|
+
|
|
138
|
+
Scenario: Long running command
|
|
139
|
+
|
|
140
|
+
If you have got a "long running" command, you should consider using the
|
|
141
|
+
`exit_timeout`-option.
|
|
142
|
+
|
|
143
|
+
Given an executable named "bin/cli" with:
|
|
144
|
+
"""bash
|
|
145
|
+
#!/usr/bin/env bash
|
|
146
|
+
|
|
147
|
+
function do_some_work {
|
|
148
|
+
sleep 2
|
|
149
|
+
echo "Hello, Aruba here"
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
do_some_work
|
|
153
|
+
"""
|
|
154
|
+
And a file named "spec/run_spec.rb" with:
|
|
155
|
+
"""ruby
|
|
156
|
+
require 'spec_helper'
|
|
157
|
+
|
|
158
|
+
RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 3 do
|
|
159
|
+
before(:each) { run_simple('cli') }
|
|
160
|
+
|
|
161
|
+
it { expect(last_command_started).to be_successfully_executed }
|
|
162
|
+
it { expect(last_command_started).to have_output /Hello, Aruba here/ }
|
|
163
|
+
end
|
|
164
|
+
"""
|
|
165
|
+
When I run `rspec`
|
|
166
|
+
Then the specs should all pass
|
|
167
|
+
|
|
168
|
+
Scenario: Sending signals to commands started with `#run_simple()`
|
|
169
|
+
|
|
170
|
+
Sending signals to a command which is started by
|
|
171
|
+
`#run_simple()` does not make sense. The command is stopped internally when
|
|
172
|
+
its exit status is checked.
|
|
173
|
+
|
|
174
|
+
Given an executable named "bin/cli" with:
|
|
175
|
+
"""bash
|
|
176
|
+
#!/usr/bin/env bash
|
|
177
|
+
|
|
178
|
+
function initialize_script {
|
|
179
|
+
sleep 1
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function cleanup_script {
|
|
183
|
+
sleep 1
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function do_some_work {
|
|
187
|
+
echo "Hello, Aruba is working"
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
trap stop_script TERM
|
|
191
|
+
|
|
192
|
+
initialize_script
|
|
193
|
+
do_some_work
|
|
194
|
+
cleanup_script
|
|
195
|
+
exit 0
|
|
196
|
+
"""
|
|
197
|
+
And a file named "spec/run_spec.rb" with:
|
|
198
|
+
"""ruby
|
|
199
|
+
require 'spec_helper'
|
|
200
|
+
|
|
201
|
+
RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 2, :startup_wait_time => 1 do
|
|
202
|
+
before(:each) { run_simple('cli') }
|
|
203
|
+
it { expect { last_command_started.send_signal 'HUP' }.to raise_error Aruba::CommandAlreadyStoppedError }
|
|
204
|
+
end
|
|
205
|
+
"""
|
|
206
|
+
When I run `rspec`
|
|
207
|
+
Then the specs should all pass
|
|
208
|
+
|
|
209
|
+
Scenario: Activate announcer channels on failure
|
|
210
|
+
|
|
211
|
+
Given an executable named "bin/cli" with:
|
|
212
|
+
"""bash
|
|
213
|
+
#!/bin/bash
|
|
214
|
+
echo "Hello, I'm STDOUT"
|
|
215
|
+
echo "Hello, I'm STDERR" 1>&2
|
|
216
|
+
exit 1
|
|
217
|
+
"""
|
|
218
|
+
And a file named "spec/run_spec.rb" with:
|
|
219
|
+
"""ruby
|
|
220
|
+
require 'spec_helper'
|
|
221
|
+
|
|
222
|
+
Aruba.configure do |config|
|
|
223
|
+
config.activate_announcer_on_command_failure = [:stdout, :stderr]
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
227
|
+
it { expect { run_simple('cli', :fail_on_error => true) }.to_not raise_error }
|
|
228
|
+
end
|
|
229
|
+
"""
|
|
230
|
+
When I run `rspec`
|
|
231
|
+
Then the specs should not pass
|
|
232
|
+
And the output should contain:
|
|
233
|
+
"""
|
|
234
|
+
<<-STDOUT
|
|
235
|
+
Hello, I'm STDOUT
|
|
236
|
+
|
|
237
|
+
STDOUT
|
|
238
|
+
<<-STDERR
|
|
239
|
+
Hello, I'm STDERR
|
|
240
|
+
|
|
241
|
+
STDERR
|
|
242
|
+
"""
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Feature: Send running command a signal
|
|
2
|
+
|
|
3
|
+
You can send a running command a signal using
|
|
4
|
+
`last_command_started#send_signal`. This is only supported with
|
|
5
|
+
`aruba.config.command_launcher = :spawn` (default).
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use a fixture named "cli-app"
|
|
9
|
+
|
|
10
|
+
Scenario: Existing executable
|
|
11
|
+
Given an executable named "bin/cli" with:
|
|
12
|
+
"""ruby
|
|
13
|
+
#!/usr/bin/env bash
|
|
14
|
+
|
|
15
|
+
function hup {
|
|
16
|
+
echo 'Exit...' >&2
|
|
17
|
+
exit 0
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
trap hup HUP
|
|
21
|
+
|
|
22
|
+
while [ true ]; do sleep 1; done
|
|
23
|
+
"""
|
|
24
|
+
And a file named "spec/run_spec.rb" with:
|
|
25
|
+
"""ruby
|
|
26
|
+
require 'spec_helper'
|
|
27
|
+
|
|
28
|
+
RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 1, :startup_wait_time => 5 do
|
|
29
|
+
before(:each) { run('cli') }
|
|
30
|
+
before(:each) { last_command_started.send_signal 'HUP' }
|
|
31
|
+
it { expect(last_command_started).to have_output /Exit/ }
|
|
32
|
+
end
|
|
33
|
+
"""
|
|
34
|
+
When I run `rspec`
|
|
35
|
+
Then the specs should all pass
|
|
36
|
+
|
|
37
|
+
Scenario: Dying command
|
|
38
|
+
Given an executable named "bin/cli" with:
|
|
39
|
+
"""ruby
|
|
40
|
+
#!/usr/bin/env bash
|
|
41
|
+
exit 1
|
|
42
|
+
"""
|
|
43
|
+
And a file named "spec/run_spec.rb" with:
|
|
44
|
+
"""ruby
|
|
45
|
+
require 'spec_helper'
|
|
46
|
+
|
|
47
|
+
RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 1, :startup_wait_time => 5 do
|
|
48
|
+
before(:each) { run('cli') }
|
|
49
|
+
it { expect { last_command_started.send_signal 'HUP' }.to raise_error Aruba::CommandAlreadyStoppedError, /Command "cli" with PID/ }
|
|
50
|
+
end
|
|
51
|
+
"""
|
|
52
|
+
When I run `rspec`
|
|
53
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Feature: Access STDERR of command
|
|
2
|
+
|
|
3
|
+
You may need to `#stop_all_commands` before accessing `#stderr` of a single
|
|
4
|
+
command - e.g. `#last_command_started`.
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given I use a fixture named "cli-app"
|
|
8
|
+
And the default aruba io wait timeout is 1 seconds
|
|
9
|
+
|
|
10
|
+
Scenario: Existing executable
|
|
11
|
+
Given an executable named "bin/cli" with:
|
|
12
|
+
"""bash
|
|
13
|
+
#!/bin/bash
|
|
14
|
+
echo 'Hello, Aruba!' >&2
|
|
15
|
+
"""
|
|
16
|
+
And a file named "spec/run_spec.rb" with:
|
|
17
|
+
"""ruby
|
|
18
|
+
require 'spec_helper'
|
|
19
|
+
|
|
20
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
21
|
+
before(:each) { run('cli') }
|
|
22
|
+
before(:each) { stop_all_commands }
|
|
23
|
+
it { expect(last_command_started.stderr).to start_with 'Hello' }
|
|
24
|
+
end
|
|
25
|
+
"""
|
|
26
|
+
When I run `rspec`
|
|
27
|
+
Then the specs should all pass
|
|
28
|
+
|
|
29
|
+
Scenario: Waiting for output to "appear" after 2 seconds
|
|
30
|
+
Given an executable named "bin/cli" with:
|
|
31
|
+
"""bash
|
|
32
|
+
#!/bin/bash
|
|
33
|
+
sleep 1
|
|
34
|
+
echo 'Hello, Aruba' >&2
|
|
35
|
+
"""
|
|
36
|
+
And a file named "spec/run_spec.rb" with:
|
|
37
|
+
"""ruby
|
|
38
|
+
require 'spec_helper'
|
|
39
|
+
|
|
40
|
+
RSpec.describe 'Run command', :type => :aruba, :io_wait_timeout => 2 do
|
|
41
|
+
before(:each) { run('cli') }
|
|
42
|
+
it { expect(last_command_started.stderr).to start_with 'Hello' }
|
|
43
|
+
end
|
|
44
|
+
"""
|
|
45
|
+
When I run `rspec`
|
|
46
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Feature: Access STDOUT of command
|
|
2
|
+
|
|
3
|
+
You may need to `#stop_all_commands` before accessing `#stdout` of a single
|
|
4
|
+
command - e.g. `#last_command_started`.
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given I use a fixture named "cli-app"
|
|
8
|
+
And the default aruba io wait timeout is 1 seconds
|
|
9
|
+
|
|
10
|
+
Scenario: Existing executable
|
|
11
|
+
Given an executable named "bin/cli" with:
|
|
12
|
+
"""bash
|
|
13
|
+
#!/bin/bash
|
|
14
|
+
echo 'Hello, Aruba!'
|
|
15
|
+
"""
|
|
16
|
+
And a file named "spec/run_spec.rb" with:
|
|
17
|
+
"""ruby
|
|
18
|
+
require 'spec_helper'
|
|
19
|
+
|
|
20
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
21
|
+
before(:each) { run('cli') }
|
|
22
|
+
before(:each) { stop_all_commands }
|
|
23
|
+
it { expect(last_command_started.stdout).to start_with 'Hello' }
|
|
24
|
+
end
|
|
25
|
+
"""
|
|
26
|
+
When I run `rspec`
|
|
27
|
+
Then the specs should all pass
|
|
28
|
+
|
|
29
|
+
Scenario: Waiting for output to "appear" after 2 seconds
|
|
30
|
+
Given an executable named "bin/cli" with:
|
|
31
|
+
"""bash
|
|
32
|
+
#!/bin/bash
|
|
33
|
+
sleep 1
|
|
34
|
+
echo 'Hello, Aruba'
|
|
35
|
+
"""
|
|
36
|
+
And a file named "spec/run_spec.rb" with:
|
|
37
|
+
"""ruby
|
|
38
|
+
require 'spec_helper'
|
|
39
|
+
|
|
40
|
+
RSpec.describe 'Run command', :type => :aruba, :io_wait_timeout => 2 do
|
|
41
|
+
before(:each) { run('cli') }
|
|
42
|
+
it { expect(last_command_started.stdout).to start_with 'Hello' }
|
|
43
|
+
end
|
|
44
|
+
"""
|
|
45
|
+
When I run `rspec`
|
|
46
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
Feature: Stop command
|
|
2
|
+
|
|
3
|
+
To stop commands via API you can do the following:
|
|
4
|
+
|
|
5
|
+
- `last_command_started.stop`
|
|
6
|
+
- `find_command('command').stop`
|
|
7
|
+
|
|
8
|
+
But normally there's no need to stop a command manually. All matchers
|
|
9
|
+
handling commands make sure, that they stop ALL command before check actual
|
|
10
|
+
against expected.
|
|
11
|
+
|
|
12
|
+
Background:
|
|
13
|
+
Given I use a fixture named "cli-app"
|
|
14
|
+
|
|
15
|
+
Scenario: Stop command started last
|
|
16
|
+
Given an executable named "bin/cli" with:
|
|
17
|
+
"""bash
|
|
18
|
+
#!/bin/bash
|
|
19
|
+
function term {
|
|
20
|
+
exit 0
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
trap term TERM
|
|
24
|
+
while [ true ]; do sleep 1; done
|
|
25
|
+
"""
|
|
26
|
+
And a file named "spec/run_spec.rb" with:
|
|
27
|
+
"""ruby
|
|
28
|
+
require 'spec_helper'
|
|
29
|
+
|
|
30
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
31
|
+
before(:each) { run('cli') }
|
|
32
|
+
before(:each) { last_command_started.stop }
|
|
33
|
+
it { expect(last_command_started).to be_successfully_executed }
|
|
34
|
+
end
|
|
35
|
+
"""
|
|
36
|
+
When I run `rspec`
|
|
37
|
+
Then the specs should all pass
|
|
38
|
+
|
|
39
|
+
Scenario: Find and stop command
|
|
40
|
+
Given an executable named "bin/cli" with:
|
|
41
|
+
"""bash
|
|
42
|
+
#!/bin/bash
|
|
43
|
+
function term {
|
|
44
|
+
exit 0
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
trap term TERM
|
|
48
|
+
while [ true ]; do sleep 1; done
|
|
49
|
+
"""
|
|
50
|
+
And a file named "spec/run_spec.rb" with:
|
|
51
|
+
"""ruby
|
|
52
|
+
require 'spec_helper'
|
|
53
|
+
|
|
54
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
55
|
+
before(:each) { run('cli') }
|
|
56
|
+
before(:each) { find_command('cli').stop }
|
|
57
|
+
it { expect(last_command_started).to be_successfully_executed }
|
|
58
|
+
end
|
|
59
|
+
"""
|
|
60
|
+
When I run `rspec`
|
|
61
|
+
Then the specs should all pass
|
|
62
|
+
|
|
63
|
+
Scenario: Stop successful command with configured signal
|
|
64
|
+
Given an executable named "bin/cli" with:
|
|
65
|
+
"""bash
|
|
66
|
+
#!/bin/bash
|
|
67
|
+
function hup {
|
|
68
|
+
echo "Exit..."
|
|
69
|
+
exit 0
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function term {
|
|
73
|
+
echo "No! No exit here. Try HUP. I stop the command with exit 1."
|
|
74
|
+
exit 1
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
trap hup HUP
|
|
78
|
+
trap term TERM
|
|
79
|
+
while [ true ]; do sleep 1; done
|
|
80
|
+
"""
|
|
81
|
+
And a file named "spec/run_spec.rb" with:
|
|
82
|
+
"""ruby
|
|
83
|
+
require 'spec_helper'
|
|
84
|
+
|
|
85
|
+
Aruba.configure do |config|
|
|
86
|
+
config.stop_signal = 'HUP'
|
|
87
|
+
config.exit_timeout = 1
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
91
|
+
before(:each) { run('cli') }
|
|
92
|
+
it { expect(last_command_started).to be_successfully_executed }
|
|
93
|
+
end
|
|
94
|
+
"""
|
|
95
|
+
When I run `rspec`
|
|
96
|
+
Then the specs should all pass
|
|
97
|
+
|
|
98
|
+
Scenario: Stop unsuccessful command with configured signal
|
|
99
|
+
Given an executable named "bin/cli" with:
|
|
100
|
+
"""bash
|
|
101
|
+
#!/bin/bash
|
|
102
|
+
function hup {
|
|
103
|
+
echo "Exit..."
|
|
104
|
+
exit 2
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function term {
|
|
108
|
+
echo "No! No exit here. Try HUP. I stop the command with exit 1."
|
|
109
|
+
exit 1
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
trap hup HUP
|
|
113
|
+
trap term TERM
|
|
114
|
+
while [ true ]; do sleep 1; done
|
|
115
|
+
"""
|
|
116
|
+
And a file named "spec/run_spec.rb" with:
|
|
117
|
+
"""ruby
|
|
118
|
+
require 'spec_helper'
|
|
119
|
+
|
|
120
|
+
Aruba.configure do |config|
|
|
121
|
+
config.stop_signal = 'HUP'
|
|
122
|
+
config.exit_timeout = 1
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
RSpec.describe 'Run command', :type => :aruba do
|
|
126
|
+
before(:each) { run('cli') }
|
|
127
|
+
it { expect(last_command_started).to have_exit_status 2 }
|
|
128
|
+
end
|
|
129
|
+
"""
|
|
130
|
+
When I run `rspec`
|
|
131
|
+
Then the specs should all pass
|