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,66 @@
|
|
|
1
|
+
Feature: Run commands
|
|
2
|
+
|
|
3
|
+
There are several steps to run commands with `aruba`.
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given I use a fixture named "cli-app"
|
|
7
|
+
|
|
8
|
+
Scenario: Run command found in path
|
|
9
|
+
Given an executable named "bin/cli" with:
|
|
10
|
+
"""
|
|
11
|
+
#!/bin/bash
|
|
12
|
+
exit 0
|
|
13
|
+
"""
|
|
14
|
+
And a file named "features/run.feature" with:
|
|
15
|
+
"""
|
|
16
|
+
Feature: Run it
|
|
17
|
+
Scenario: Run command
|
|
18
|
+
When I run `cli`
|
|
19
|
+
"""
|
|
20
|
+
When I run `cucumber`
|
|
21
|
+
Then the features should all pass
|
|
22
|
+
|
|
23
|
+
Scenario: Activate desired announcers when running command fails
|
|
24
|
+
Given an executable named "bin/cli" with:
|
|
25
|
+
"""
|
|
26
|
+
#!/bin/bash
|
|
27
|
+
echo "Hello, I'm STDOUT"
|
|
28
|
+
exit 1
|
|
29
|
+
"""
|
|
30
|
+
And a file named "features/run.feature" with:
|
|
31
|
+
"""
|
|
32
|
+
Feature: Run it
|
|
33
|
+
Scenario: Run command
|
|
34
|
+
When I successfully run `cli`
|
|
35
|
+
"""
|
|
36
|
+
And I append to "features/support/env.rb" with:
|
|
37
|
+
"""
|
|
38
|
+
Before do
|
|
39
|
+
aruba.config.activate_announcer_on_command_failure = [:stdout]
|
|
40
|
+
end
|
|
41
|
+
"""
|
|
42
|
+
When I run `cucumber`
|
|
43
|
+
Then the features should not pass
|
|
44
|
+
And the output should contain:
|
|
45
|
+
"""
|
|
46
|
+
<<-STDOUT
|
|
47
|
+
Hello, I'm STDOUT
|
|
48
|
+
|
|
49
|
+
STDOUT
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
Scenario: Run command found in "bin"-directory which is found in the current directory
|
|
53
|
+
Given a file named "features/run.feature" with:
|
|
54
|
+
"""
|
|
55
|
+
Feature: Run it
|
|
56
|
+
Scenario: Run command
|
|
57
|
+
Given an executable named "bin/local_cli" with:
|
|
58
|
+
\"\"\"
|
|
59
|
+
#!/bin/bash
|
|
60
|
+
exit 0
|
|
61
|
+
\"\"\"
|
|
62
|
+
And I look for executables in "bin" within the current directory
|
|
63
|
+
When I successfully run `local_cli`
|
|
64
|
+
"""
|
|
65
|
+
When I run `cucumber`
|
|
66
|
+
Then the features should all pass
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Feature: Send a signal to command
|
|
2
|
+
|
|
3
|
+
You can send a command a signal with the following steps:
|
|
4
|
+
|
|
5
|
+
- `When I send the signal "HUP" to the command started last`
|
|
6
|
+
- `When I send the signal "HUP" to the command "bin/cli"`
|
|
7
|
+
|
|
8
|
+
Or just use `kill` on compatible platforms.
|
|
9
|
+
|
|
10
|
+
Background:
|
|
11
|
+
Given I use a fixture named "cli-app"
|
|
12
|
+
|
|
13
|
+
Scenario: Sending signal to the command started last
|
|
14
|
+
Given an executable named "bin/cli" with:
|
|
15
|
+
"""bash
|
|
16
|
+
#!/usr/bin/env bash
|
|
17
|
+
function hup {
|
|
18
|
+
echo "Got signal HUP."
|
|
19
|
+
exit 0
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
trap hup HUP
|
|
23
|
+
while [ true ]; do sleep 1; done
|
|
24
|
+
"""
|
|
25
|
+
And a file named "features/run.feature" with:
|
|
26
|
+
"""
|
|
27
|
+
Feature: Run it
|
|
28
|
+
Scenario: Run command
|
|
29
|
+
Given the default aruba exit timeout is 5 seconds
|
|
30
|
+
And I wait 5 seconds for a command to start up
|
|
31
|
+
When I run `cli` in background
|
|
32
|
+
And I send the signal "HUP" to the command started last
|
|
33
|
+
Then the exit status should be 0
|
|
34
|
+
And the output should contain:
|
|
35
|
+
\"\"\"
|
|
36
|
+
Got signal HUP.
|
|
37
|
+
\"\"\"
|
|
38
|
+
"""
|
|
39
|
+
When I run `cucumber`
|
|
40
|
+
Then the features should all pass
|
|
41
|
+
|
|
42
|
+
Scenario: Sending signal to a command given by command line
|
|
43
|
+
Given an executable named "bin/cli" with:
|
|
44
|
+
"""bash
|
|
45
|
+
#!/usr/bin/env bash
|
|
46
|
+
function hup {
|
|
47
|
+
echo "Got signal HUP."
|
|
48
|
+
exit 0
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
trap hup HUP
|
|
52
|
+
while [ true ]; do sleep 1; done
|
|
53
|
+
"""
|
|
54
|
+
And a file named "features/run.feature" with:
|
|
55
|
+
"""
|
|
56
|
+
Feature: Run it
|
|
57
|
+
Scenario: Run command
|
|
58
|
+
Given the default aruba exit timeout is 5 seconds
|
|
59
|
+
And I wait 5 seconds for a command to start up
|
|
60
|
+
When I run `cli` in background
|
|
61
|
+
And I send the signal "HUP" to the command "cli"
|
|
62
|
+
Then the exit status should be 0
|
|
63
|
+
And the output should contain:
|
|
64
|
+
\"\"\"
|
|
65
|
+
Got signal HUP.
|
|
66
|
+
\"\"\"
|
|
67
|
+
"""
|
|
68
|
+
When I run `cucumber`
|
|
69
|
+
Then the features should all pass
|
|
70
|
+
|
|
71
|
+
@unsupported-on-platform-windows
|
|
72
|
+
@experimental
|
|
73
|
+
Scenario: Using the "kill"-command
|
|
74
|
+
|
|
75
|
+
`<pid-last-command-started>` in your command line will be replaced by the
|
|
76
|
+
PID of the last command started. Please note, this feature is experimental.
|
|
77
|
+
The name of the variable may change without further notice.
|
|
78
|
+
|
|
79
|
+
Given an executable named "bin/cli" with:
|
|
80
|
+
"""bash
|
|
81
|
+
#!/usr/bin/env bash
|
|
82
|
+
function hup {
|
|
83
|
+
echo "Got signal HUP."
|
|
84
|
+
exit 0
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
trap hup HUP
|
|
88
|
+
while [ true ]; do sleep 1; done
|
|
89
|
+
"""
|
|
90
|
+
And a file named "features/run.feature" with:
|
|
91
|
+
"""
|
|
92
|
+
Feature: Run it
|
|
93
|
+
Scenario: Run command
|
|
94
|
+
Given the default aruba exit timeout is 5 seconds
|
|
95
|
+
And I wait 5 seconds for a command to start up
|
|
96
|
+
When I run `cli` in background
|
|
97
|
+
And I run `kill -HUP <pid-last-command-started>`
|
|
98
|
+
Then the output should contain:
|
|
99
|
+
\"\"\"
|
|
100
|
+
Got signal HUP.
|
|
101
|
+
\"\"\"
|
|
102
|
+
"""
|
|
103
|
+
When I run `cucumber`
|
|
104
|
+
Then the features should all pass
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
Feature: Running shell commands
|
|
2
|
+
|
|
3
|
+
You can run an *ad hoc* script with the following steps:
|
|
4
|
+
- `When I run the following script:`
|
|
5
|
+
|
|
6
|
+
Or you can run shell commands with:
|
|
7
|
+
- `I run the following (bash|zsh|...shell)? commands`
|
|
8
|
+
- `I run the following (bash|zsh|...shell)? commands (in|with) \`interpreter\``
|
|
9
|
+
- `I run the following (bash|zsh|...shell)? commands (in|with) \`/path/to/interpreter\``
|
|
10
|
+
|
|
11
|
+
Background:
|
|
12
|
+
Given I use a fixture named "cli-app"
|
|
13
|
+
|
|
14
|
+
Scenario: Creating and running scripts
|
|
15
|
+
Given a file named "features/shell.feature" with:
|
|
16
|
+
"""
|
|
17
|
+
Feature: Running scripts
|
|
18
|
+
Scenario: Running ruby script
|
|
19
|
+
When I run the following script:
|
|
20
|
+
\"\"\"bash
|
|
21
|
+
#!/usr/bin/env ruby
|
|
22
|
+
|
|
23
|
+
puts "Hello"
|
|
24
|
+
\"\"\"
|
|
25
|
+
Then the output should contain exactly "Hello"
|
|
26
|
+
|
|
27
|
+
Scenario: Running python script
|
|
28
|
+
When I run the following script:
|
|
29
|
+
\"\"\"bash
|
|
30
|
+
#!/usr/bin/env python
|
|
31
|
+
|
|
32
|
+
print("Hello")
|
|
33
|
+
\"\"\"
|
|
34
|
+
Then the output should contain exactly "Hello"
|
|
35
|
+
"""
|
|
36
|
+
When I run `cucumber`
|
|
37
|
+
Then the features should all pass
|
|
38
|
+
|
|
39
|
+
Scenario: Running shell commands
|
|
40
|
+
Given a file named "features/shell.feature" with:
|
|
41
|
+
"""
|
|
42
|
+
Feature: Running scripts
|
|
43
|
+
Scenario: Running shell commands
|
|
44
|
+
When I run the following commands:
|
|
45
|
+
\"\"\"bash
|
|
46
|
+
echo "Hello shell"
|
|
47
|
+
\"\"\"
|
|
48
|
+
Then the output should contain exactly "Hello shell"
|
|
49
|
+
"""
|
|
50
|
+
When I run `cucumber`
|
|
51
|
+
Then the features should all pass
|
|
52
|
+
|
|
53
|
+
Scenario: Running bash commands
|
|
54
|
+
Given a file named "features/shell.feature" with:
|
|
55
|
+
"""
|
|
56
|
+
Feature: Running scripts
|
|
57
|
+
Scenario: Running bash commands
|
|
58
|
+
When I run the following commands with `bash`:
|
|
59
|
+
\"\"\"bash
|
|
60
|
+
echo -n "Hello "
|
|
61
|
+
echo `echo bash` # subshell
|
|
62
|
+
\"\"\"
|
|
63
|
+
Then the output should contain exactly "Hello bash"
|
|
64
|
+
"""
|
|
65
|
+
When I run `cucumber`
|
|
66
|
+
Then the features should all pass
|
|
67
|
+
|
|
68
|
+
Scenario: Running zsh commands
|
|
69
|
+
Given a file named "features/shell.feature" with:
|
|
70
|
+
"""
|
|
71
|
+
Feature: Running zsh scripts
|
|
72
|
+
Scenario: Running zsh commands
|
|
73
|
+
When I run the following commands with `zsh`:
|
|
74
|
+
\"\"\"bash
|
|
75
|
+
echo "Hello \c"
|
|
76
|
+
echo $((2 + 2))
|
|
77
|
+
\"\"\"
|
|
78
|
+
Then the output should contain exactly "Hello 4"
|
|
79
|
+
"""
|
|
80
|
+
When I run `cucumber`
|
|
81
|
+
Then the features should all pass
|
|
82
|
+
|
|
83
|
+
Scenario: Running ruby commands
|
|
84
|
+
Given a file named "features/shell.feature" with:
|
|
85
|
+
"""
|
|
86
|
+
Feature: Running scripts
|
|
87
|
+
Scenario: Running ruby commands
|
|
88
|
+
When I run the following commands with `ruby`:
|
|
89
|
+
\"\"\"ruby
|
|
90
|
+
puts "Hello, Aruba!"
|
|
91
|
+
\"\"\"
|
|
92
|
+
Then the output should contain exactly "Hello, Aruba!"
|
|
93
|
+
"""
|
|
94
|
+
When I run `cucumber`
|
|
95
|
+
Then the features should all pass
|
|
96
|
+
|
|
97
|
+
Scenario: Running python commands
|
|
98
|
+
Given a file named "features/shell.feature" with:
|
|
99
|
+
"""
|
|
100
|
+
Feature: Running scripts
|
|
101
|
+
Scenario: Running ruby commands
|
|
102
|
+
When I run the following commands with `python`:
|
|
103
|
+
\"\"\"ruby
|
|
104
|
+
print("Hello, Aruba!")
|
|
105
|
+
\"\"\"
|
|
106
|
+
Then the output should contain exactly "Hello, Aruba!"
|
|
107
|
+
"""
|
|
108
|
+
When I run `cucumber`
|
|
109
|
+
Then the features should all pass
|
|
110
|
+
|
|
111
|
+
Scenario: Running commands if full path to interpreter is given
|
|
112
|
+
Given a file named "features/shell.feature" with:
|
|
113
|
+
"""
|
|
114
|
+
Feature: Running full path zsh
|
|
115
|
+
Scenario: Running zsh commands #1
|
|
116
|
+
When I run the following commands with `/bin/zsh`:
|
|
117
|
+
\"\"\"bash
|
|
118
|
+
echo "Hello \c"
|
|
119
|
+
echo $((6 - 2))
|
|
120
|
+
\"\"\"
|
|
121
|
+
Then the output should contain exactly "Hello 4"
|
|
122
|
+
|
|
123
|
+
Scenario: Running zsh commands #1
|
|
124
|
+
When I run the following commands in `/bin/zsh`:
|
|
125
|
+
\"\"\"bash
|
|
126
|
+
echo "Hello \c"
|
|
127
|
+
echo $((6 - 2))
|
|
128
|
+
\"\"\"
|
|
129
|
+
Then the output should contain exactly "Hello 4"
|
|
130
|
+
"""
|
|
131
|
+
When I run `cucumber`
|
|
132
|
+
Then the features should all pass
|
|
133
|
+
|
|
134
|
+
Scenario: Running commands if only the name of interpreter is given
|
|
135
|
+
Given a file named "features/shell.feature" with:
|
|
136
|
+
"""
|
|
137
|
+
Feature: Running full path zsh
|
|
138
|
+
Scenario: Running zsh commands #1
|
|
139
|
+
When I run the following commands with `zsh`:
|
|
140
|
+
\"\"\"bash
|
|
141
|
+
echo "Hello \c"
|
|
142
|
+
echo $((6 - 2))
|
|
143
|
+
\"\"\"
|
|
144
|
+
Then the output should contain exactly "Hello 4"
|
|
145
|
+
|
|
146
|
+
Scenario: Running zsh commands #2
|
|
147
|
+
When I run the following commands in `zsh`:
|
|
148
|
+
\"\"\"bash
|
|
149
|
+
echo "Hello \c"
|
|
150
|
+
echo $((6 - 2))
|
|
151
|
+
\"\"\"
|
|
152
|
+
Then the output should contain exactly "Hello 4"
|
|
153
|
+
"""
|
|
154
|
+
When I run `cucumber`
|
|
155
|
+
Then the features should all pass
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
Feature: STDERR of commands which were executed
|
|
2
|
+
|
|
3
|
+
In order to specify expected output
|
|
4
|
+
As a developer using Cucumber
|
|
5
|
+
I want to use the "the stderr should contain" step
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use a fixture named "cli-app"
|
|
9
|
+
|
|
10
|
+
Scenario: Detect stderr from all processes
|
|
11
|
+
Given a file named "features/output.feature" with:
|
|
12
|
+
"""
|
|
13
|
+
Feature: Run command
|
|
14
|
+
Scenario: Run command
|
|
15
|
+
When I run `bash -c 'printf "hello world!\n" >&2'`
|
|
16
|
+
And I run `bash -c 'cat >&2 '` interactively
|
|
17
|
+
And I type "hola"
|
|
18
|
+
And I type ""
|
|
19
|
+
Then the stderr should contain:
|
|
20
|
+
\"\"\"
|
|
21
|
+
hello world!
|
|
22
|
+
\"\"\"
|
|
23
|
+
And the stderr should contain:
|
|
24
|
+
\"\"\"
|
|
25
|
+
hola
|
|
26
|
+
\"\"\"
|
|
27
|
+
And the stdout should not contain anything
|
|
28
|
+
"""
|
|
29
|
+
When I run `cucumber`
|
|
30
|
+
Then the features should all pass
|
|
31
|
+
|
|
32
|
+
Scenario: Detect stderr from all processes (deprecated)
|
|
33
|
+
Given a file named "features/output.feature" with:
|
|
34
|
+
"""
|
|
35
|
+
Feature: Run command
|
|
36
|
+
Scenario: Run command
|
|
37
|
+
When I run `bash -c 'printf "hello world!\n" >&2'`
|
|
38
|
+
And I run `bash -c 'cat >&2 '` interactively
|
|
39
|
+
And I type "hola"
|
|
40
|
+
And I type ""
|
|
41
|
+
Then the stderr should contain:
|
|
42
|
+
\"\"\"
|
|
43
|
+
hello world!
|
|
44
|
+
hola
|
|
45
|
+
\"\"\"
|
|
46
|
+
And the stdout should not contain anything
|
|
47
|
+
"""
|
|
48
|
+
When I run `cucumber`
|
|
49
|
+
Then the features should all pass
|
|
50
|
+
|
|
51
|
+
Scenario: Detect stderr from named source
|
|
52
|
+
Given a file named "features/output.feature" with:
|
|
53
|
+
"""
|
|
54
|
+
Feature: Run command
|
|
55
|
+
Scenario: Run command
|
|
56
|
+
When I run `bash -c 'printf hello >&2'`
|
|
57
|
+
And I run `printf goodbye`
|
|
58
|
+
Then the stderr from "bash -c 'printf hello >&2'" should contain "hello"
|
|
59
|
+
And the stderr from "bash -c 'printf hello >&2'" should contain exactly "hello"
|
|
60
|
+
And the stderr from "bash -c 'printf hello >&2'" should contain exactly:
|
|
61
|
+
\"\"\"
|
|
62
|
+
hello
|
|
63
|
+
\"\"\"
|
|
64
|
+
And the stdout from "bash -c 'printf hello >&2'" should not contain "hello"
|
|
65
|
+
And the stderr from "printf goodbye" should not contain "hello"
|
|
66
|
+
"""
|
|
67
|
+
When I run `cucumber`
|
|
68
|
+
Then the features should all pass
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
Feature: STDOUT of commands which were executed
|
|
2
|
+
|
|
3
|
+
In order to specify expected output
|
|
4
|
+
As a developer using Cucumber
|
|
5
|
+
I want to use the "the stdout should contain" step
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use a fixture named "cli-app"
|
|
9
|
+
|
|
10
|
+
Scenario: Match output in stdout
|
|
11
|
+
Given an executable named "bin/cli" with:
|
|
12
|
+
"""bash
|
|
13
|
+
#!/usr/bin/env bash
|
|
14
|
+
|
|
15
|
+
echo -e "hello\nworld"
|
|
16
|
+
"""
|
|
17
|
+
And a file named "features/output.feature" with:
|
|
18
|
+
"""cucumber
|
|
19
|
+
Feature: Run command
|
|
20
|
+
Scenario: Run command
|
|
21
|
+
When I run `cli`
|
|
22
|
+
Then the stdout should contain "hello"
|
|
23
|
+
Then the stderr should not contain "hello"
|
|
24
|
+
"""
|
|
25
|
+
When I run `cucumber`
|
|
26
|
+
Then the features should all pass
|
|
27
|
+
|
|
28
|
+
Scenario: Match stdout on several lines
|
|
29
|
+
Given an executable named "bin/cli" with:
|
|
30
|
+
"""bash
|
|
31
|
+
#!/usr/bin/env bash
|
|
32
|
+
|
|
33
|
+
echo 'GET /'
|
|
34
|
+
"""
|
|
35
|
+
And a file named "features/output.feature" with:
|
|
36
|
+
"""cucumber
|
|
37
|
+
Feature: Run command
|
|
38
|
+
Scenario: Run command
|
|
39
|
+
When I run `cli`
|
|
40
|
+
Then the stdout should contain:
|
|
41
|
+
\"\"\"
|
|
42
|
+
GET /
|
|
43
|
+
\"\"\"
|
|
44
|
+
"""
|
|
45
|
+
When I run `cucumber`
|
|
46
|
+
Then the features should all pass
|
|
47
|
+
|
|
48
|
+
Scenario: Match output on several lines where stdout contains quotes
|
|
49
|
+
Given an executable named "bin/cli" with:
|
|
50
|
+
"""bash
|
|
51
|
+
#!/usr/bin/env bash
|
|
52
|
+
|
|
53
|
+
echo 'GET "/"'
|
|
54
|
+
"""
|
|
55
|
+
And a file named "features/output.feature" with:
|
|
56
|
+
"""cucumber
|
|
57
|
+
Feature: Run command
|
|
58
|
+
Scenario: Run command
|
|
59
|
+
When I run `cli`
|
|
60
|
+
Then the stdout should contain:
|
|
61
|
+
\"\"\"
|
|
62
|
+
GET "/"
|
|
63
|
+
\"\"\"
|
|
64
|
+
"""
|
|
65
|
+
When I run `cucumber`
|
|
66
|
+
Then the features should all pass
|
|
67
|
+
|
|
68
|
+
Scenario: Detect stdout from all processes including interactive ones
|
|
69
|
+
Given a file named "features/output.feature" with:
|
|
70
|
+
"""
|
|
71
|
+
Feature: Run command
|
|
72
|
+
Scenario: Run command
|
|
73
|
+
When I run `printf "hello world!\n"`
|
|
74
|
+
And I run `cat` interactively
|
|
75
|
+
And I type "hola"
|
|
76
|
+
And I type ""
|
|
77
|
+
Then the stdout should contain:
|
|
78
|
+
\"\"\"
|
|
79
|
+
hello world!
|
|
80
|
+
\"\"\"
|
|
81
|
+
And the stdout should contain:
|
|
82
|
+
\"\"\"
|
|
83
|
+
hola
|
|
84
|
+
\"\"\"
|
|
85
|
+
And the stderr should not contain anything
|
|
86
|
+
"""
|
|
87
|
+
When I run `cucumber`
|
|
88
|
+
Then the features should all pass
|
|
89
|
+
|
|
90
|
+
Scenario: Detect stdout from named source
|
|
91
|
+
Given a file named "features/output.feature" with:
|
|
92
|
+
"""
|
|
93
|
+
Feature: Run command
|
|
94
|
+
Scenario: Run command
|
|
95
|
+
When I run `printf 'hello'`
|
|
96
|
+
And I run `printf 'goodbye'`
|
|
97
|
+
Then the stdout from "printf 'hello'" should contain "hello"
|
|
98
|
+
And the stdout from "printf 'hello'" should contain exactly "hello"
|
|
99
|
+
And the stdout from "printf 'hello'" should contain exactly:
|
|
100
|
+
\"\"\"
|
|
101
|
+
hello
|
|
102
|
+
\"\"\"
|
|
103
|
+
And the stderr from "printf 'hello'" should not contain "hello"
|
|
104
|
+
And the stdout from "printf 'goodbye'" should not contain "hello"
|
|
105
|
+
"""
|
|
106
|
+
When I run `cucumber`
|
|
107
|
+
Then the features should all pass
|
|
108
|
+
|
|
109
|
+
|