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,313 @@
|
|
|
1
|
+
Feature: Stop commands
|
|
2
|
+
|
|
3
|
+
After you've started a command, you might want to stop a command. To do that
|
|
4
|
+
you've got multiple possibilities.
|
|
5
|
+
|
|
6
|
+
On "JRuby" it's not possible to read the output of command which `echo`s a
|
|
7
|
+
string in a `signal`-handler - `TERM`, `HUP` etc. So please don't write
|
|
8
|
+
tests, which check on this, if your script needs to run on "JRuby". All other
|
|
9
|
+
output is logged to `STDERR` and/or `STDOUT` as normal.
|
|
10
|
+
|
|
11
|
+
Background:
|
|
12
|
+
Given I use a fixture named "cli-app"
|
|
13
|
+
|
|
14
|
+
Scenario: Terminate last command started
|
|
15
|
+
|
|
16
|
+
Terminating a command will send `SIGTERM` to the command.
|
|
17
|
+
|
|
18
|
+
Given an executable named "bin/cli1" with:
|
|
19
|
+
"""bash
|
|
20
|
+
#!/bin/bash
|
|
21
|
+
|
|
22
|
+
function term {
|
|
23
|
+
exit 100
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
trap term TERM
|
|
27
|
+
echo "Hello, Aruba!"
|
|
28
|
+
while [ true ]; do sleep 1; done
|
|
29
|
+
exit 1
|
|
30
|
+
"""
|
|
31
|
+
And an executable named "bin/cli2" with:
|
|
32
|
+
"""bash
|
|
33
|
+
#!/bin/bash
|
|
34
|
+
|
|
35
|
+
function term {
|
|
36
|
+
exit 155
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
trap term TERM
|
|
40
|
+
echo "Hello, Aruba!"
|
|
41
|
+
while [ true ]; do sleep 1; done
|
|
42
|
+
exit 1
|
|
43
|
+
"""
|
|
44
|
+
And a file named "features/stop.feature" with:
|
|
45
|
+
"""
|
|
46
|
+
Feature: Run it
|
|
47
|
+
Scenario: Run command
|
|
48
|
+
Given the default aruba exit timeout is 1 second
|
|
49
|
+
And I wait 2 seconds for a command to start up
|
|
50
|
+
When I run `cli1` in background
|
|
51
|
+
And I run `cli2` in background
|
|
52
|
+
And I terminate the command started last
|
|
53
|
+
Then the exit status should be 155
|
|
54
|
+
And the output should contain:
|
|
55
|
+
\"\"\"
|
|
56
|
+
Hello, Aruba!
|
|
57
|
+
\"\"\"
|
|
58
|
+
"""
|
|
59
|
+
When I run `cucumber`
|
|
60
|
+
Then the features should all pass
|
|
61
|
+
|
|
62
|
+
Scenario: Stop last command started
|
|
63
|
+
|
|
64
|
+
Stopping a command will wait n seconds for the command to stop and then
|
|
65
|
+
send `SIGTERM` to the command. Normally "n" is defined by the default exit
|
|
66
|
+
timeout of aruba.
|
|
67
|
+
|
|
68
|
+
Given an executable named "bin/cli1" with:
|
|
69
|
+
"""bash
|
|
70
|
+
#!/bin/bash
|
|
71
|
+
|
|
72
|
+
function term {
|
|
73
|
+
exit 100
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
trap term TERM
|
|
77
|
+
echo "Hello, Aruba!"
|
|
78
|
+
while [ true ]; do sleep 1; done
|
|
79
|
+
exit 1
|
|
80
|
+
"""
|
|
81
|
+
And an executable named "bin/cli2" with:
|
|
82
|
+
"""bash
|
|
83
|
+
#!/bin/bash
|
|
84
|
+
|
|
85
|
+
function term {
|
|
86
|
+
exit 155
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
trap term TERM
|
|
90
|
+
echo "Hello, Aruba!"
|
|
91
|
+
while [ true ]; do sleep 1; done
|
|
92
|
+
exit 1
|
|
93
|
+
"""
|
|
94
|
+
And a file named "features/stop.feature" with:
|
|
95
|
+
"""
|
|
96
|
+
Feature: Run it
|
|
97
|
+
Background:
|
|
98
|
+
|
|
99
|
+
Scenario: Run command
|
|
100
|
+
Given the default aruba exit timeout is 5 seconds
|
|
101
|
+
And I wait 2 seconds for a command to start up
|
|
102
|
+
When I run `cli1` in background
|
|
103
|
+
And I run `cli2` in background
|
|
104
|
+
And I stop the command started last
|
|
105
|
+
Then the exit status should be 155
|
|
106
|
+
And the output should contain:
|
|
107
|
+
\"\"\"
|
|
108
|
+
Hello, Aruba!
|
|
109
|
+
\"\"\"
|
|
110
|
+
"""
|
|
111
|
+
When I run `cucumber`
|
|
112
|
+
Then the features should all pass
|
|
113
|
+
|
|
114
|
+
Scenario: Terminate command given by commandline
|
|
115
|
+
|
|
116
|
+
Pass the commandline to the step to find the command, which should be
|
|
117
|
+
stopped.
|
|
118
|
+
|
|
119
|
+
Given an executable named "bin/cli1" with:
|
|
120
|
+
"""bash
|
|
121
|
+
#!/bin/bash
|
|
122
|
+
|
|
123
|
+
function term {
|
|
124
|
+
exit 100
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
trap term TERM
|
|
128
|
+
echo "Hello, Aruba!"
|
|
129
|
+
while [ true ]; do sleep 1; done
|
|
130
|
+
"""
|
|
131
|
+
And an executable named "bin/cli2" with:
|
|
132
|
+
"""bash
|
|
133
|
+
#!/bin/bash
|
|
134
|
+
|
|
135
|
+
function term {
|
|
136
|
+
exit 155
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
trap term TERM
|
|
140
|
+
echo "Hello, Aruba!"
|
|
141
|
+
while [ true ]; do sleep 1; done
|
|
142
|
+
exit 2
|
|
143
|
+
"""
|
|
144
|
+
And a file named "features/stop.feature" with:
|
|
145
|
+
"""
|
|
146
|
+
Feature: Run it
|
|
147
|
+
Background:
|
|
148
|
+
Given the default aruba exit timeout is 5 seconds
|
|
149
|
+
|
|
150
|
+
Scenario: Run command
|
|
151
|
+
Given I wait 2 seconds for a command to start up
|
|
152
|
+
When I run `cli1` in background
|
|
153
|
+
When I run `cli2` in background
|
|
154
|
+
And I terminate the command "cli1"
|
|
155
|
+
Then the exit status should be 100
|
|
156
|
+
And the output should contain:
|
|
157
|
+
\"\"\"
|
|
158
|
+
Hello, Aruba!
|
|
159
|
+
\"\"\"
|
|
160
|
+
"""
|
|
161
|
+
When I run `cucumber`
|
|
162
|
+
Then the features should all pass
|
|
163
|
+
|
|
164
|
+
Scenario: Stop command given by commandline
|
|
165
|
+
|
|
166
|
+
Stopping a command will wait n seconds for the command to stop and then
|
|
167
|
+
send `SIGTERM` to the command. Normally "n" is defined by the default exit
|
|
168
|
+
timeout of aruba.
|
|
169
|
+
|
|
170
|
+
Given an executable named "bin/cli1" with:
|
|
171
|
+
"""bash
|
|
172
|
+
#!/bin/bash
|
|
173
|
+
|
|
174
|
+
function term {
|
|
175
|
+
exit 155
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
trap term TERM
|
|
179
|
+
echo "Hello, Aruba!"
|
|
180
|
+
while [ true ]; do sleep 1; done
|
|
181
|
+
exit 1
|
|
182
|
+
"""
|
|
183
|
+
And an executable named "bin/cli2" with:
|
|
184
|
+
"""bash
|
|
185
|
+
#!/bin/bash
|
|
186
|
+
|
|
187
|
+
function term {
|
|
188
|
+
exit 100
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
trap term TERM
|
|
192
|
+
echo "Hello, Aruba!"
|
|
193
|
+
while [ true ]; do sleep 1; done
|
|
194
|
+
exit 1
|
|
195
|
+
"""
|
|
196
|
+
And a file named "features/stop.feature" with:
|
|
197
|
+
"""
|
|
198
|
+
Feature: Run it
|
|
199
|
+
Background:
|
|
200
|
+
Given the default aruba exit timeout is 5 seconds
|
|
201
|
+
|
|
202
|
+
Scenario: Run command
|
|
203
|
+
Given I wait 2 seconds for a command to start up
|
|
204
|
+
When I run `cli1` in background
|
|
205
|
+
And I run `cli2` in background
|
|
206
|
+
When I stop the command "cli1"
|
|
207
|
+
Then the exit status should be 155
|
|
208
|
+
And the output should contain:
|
|
209
|
+
\"\"\"
|
|
210
|
+
Hello, Aruba!
|
|
211
|
+
\"\"\"
|
|
212
|
+
"""
|
|
213
|
+
When I run `cucumber`
|
|
214
|
+
Then the features should all pass
|
|
215
|
+
|
|
216
|
+
Scenario: Stop command with configured signal
|
|
217
|
+
|
|
218
|
+
You can define a default signal which is used to stop all commands.
|
|
219
|
+
|
|
220
|
+
Given an executable named "bin/cli" with:
|
|
221
|
+
"""bash
|
|
222
|
+
#!/bin/bash
|
|
223
|
+
function hup {
|
|
224
|
+
exit 155
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
function term {
|
|
228
|
+
exit 100
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
trap hup HUP
|
|
232
|
+
trap term TERM
|
|
233
|
+
echo "Hello, Aruba!"
|
|
234
|
+
while [ true ]; do sleep 1; done
|
|
235
|
+
exit 1
|
|
236
|
+
"""
|
|
237
|
+
And a file named "features/run.feature" with:
|
|
238
|
+
"""
|
|
239
|
+
Feature: Run it
|
|
240
|
+
Scenario: Run command
|
|
241
|
+
Given the default aruba stop signal is "HUP"
|
|
242
|
+
And the default aruba exit timeout is 5 seconds
|
|
243
|
+
When I run `cli`
|
|
244
|
+
Then the exit status should be 155
|
|
245
|
+
"""
|
|
246
|
+
When I run `cucumber`
|
|
247
|
+
Then the features should all pass
|
|
248
|
+
|
|
249
|
+
@requires-ruby-platform-java
|
|
250
|
+
Scenario: STDERR/STDOUT is empty on JRUBY if output was written in "signal"-handler
|
|
251
|
+
Given an executable named "bin/cli1" with:
|
|
252
|
+
"""bash
|
|
253
|
+
#!/bin/bash
|
|
254
|
+
|
|
255
|
+
function term {
|
|
256
|
+
echo 'Hello, TERM'
|
|
257
|
+
exit 100
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
trap term TERM
|
|
261
|
+
echo "Hello, Aruba!"
|
|
262
|
+
while [ true ]; do sleep 1; done
|
|
263
|
+
exit 1
|
|
264
|
+
"""
|
|
265
|
+
And a file named "features/stop.feature" with:
|
|
266
|
+
"""
|
|
267
|
+
Feature: Run it
|
|
268
|
+
Scenario: Run command
|
|
269
|
+
Given the default aruba exit timeout is 1 second
|
|
270
|
+
And I wait 2 seconds for a command to start up
|
|
271
|
+
When I run `cli1` in background
|
|
272
|
+
And I terminate the command started last
|
|
273
|
+
Then the exit status should be 100
|
|
274
|
+
And the output should not contain:
|
|
275
|
+
\"\"\"
|
|
276
|
+
Hello, TERM
|
|
277
|
+
\"\"\"
|
|
278
|
+
"""
|
|
279
|
+
When I run `cucumber`
|
|
280
|
+
Then the features should all pass
|
|
281
|
+
|
|
282
|
+
@requires-ruby-platform-mri
|
|
283
|
+
Scenario: STDERR/STDOUT is written normally with MRI-Ruby if output was written in "signal"-handler
|
|
284
|
+
Given an executable named "bin/cli1" with:
|
|
285
|
+
"""bash
|
|
286
|
+
#!/bin/bash
|
|
287
|
+
|
|
288
|
+
function term {
|
|
289
|
+
echo 'Hello, TERM'
|
|
290
|
+
exit 100
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
trap term TERM
|
|
294
|
+
echo "Hello, Aruba!"
|
|
295
|
+
while [ true ]; do sleep 1; done
|
|
296
|
+
exit 1
|
|
297
|
+
"""
|
|
298
|
+
And a file named "features/stop.feature" with:
|
|
299
|
+
"""
|
|
300
|
+
Feature: Run it
|
|
301
|
+
Scenario: Run command
|
|
302
|
+
Given the default aruba exit timeout is 1 second
|
|
303
|
+
And I wait 2 seconds for a command to start up
|
|
304
|
+
When I run `cli1` in background
|
|
305
|
+
And I terminate the command started last
|
|
306
|
+
Then the exit status should be 100
|
|
307
|
+
And the output should contain:
|
|
308
|
+
\"\"\"
|
|
309
|
+
Hello, TERM
|
|
310
|
+
\"\"\"
|
|
311
|
+
"""
|
|
312
|
+
When I run `cucumber`
|
|
313
|
+
Then the features should all pass
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
Feature: Announce output during test run
|
|
2
|
+
|
|
3
|
+
In order to specify expected output
|
|
4
|
+
As a developer using Cucumber
|
|
5
|
+
I want to use the "the output should contain" step
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use a fixture named "cli-app"
|
|
9
|
+
|
|
10
|
+
Scenario: Announce change of directory (deprecated)
|
|
11
|
+
Given a file named "features/exit_status.feature" with:
|
|
12
|
+
"""cucumber
|
|
13
|
+
Feature: Announce
|
|
14
|
+
@announce-dir
|
|
15
|
+
Scenario: Run command
|
|
16
|
+
Given a directory named "dir.d"
|
|
17
|
+
When I cd to "dir.d"
|
|
18
|
+
"""
|
|
19
|
+
When I run `cucumber`
|
|
20
|
+
Then the features should all pass
|
|
21
|
+
And the output should contain:
|
|
22
|
+
"""
|
|
23
|
+
$ cd /
|
|
24
|
+
"""
|
|
25
|
+
And the output should contain:
|
|
26
|
+
"""
|
|
27
|
+
tmp/aruba/dir.d
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
Scenario: Announce change of directory
|
|
31
|
+
Given a file named "features/exit_status.feature" with:
|
|
32
|
+
"""cucumber
|
|
33
|
+
Feature: Announce
|
|
34
|
+
@announce-directory
|
|
35
|
+
Scenario: Run command
|
|
36
|
+
Given a directory named "dir.d"
|
|
37
|
+
When I cd to "dir.d"
|
|
38
|
+
"""
|
|
39
|
+
When I run `cucumber`
|
|
40
|
+
Then the features should all pass
|
|
41
|
+
And the output should contain:
|
|
42
|
+
"""
|
|
43
|
+
$ cd /
|
|
44
|
+
"""
|
|
45
|
+
And the output should contain:
|
|
46
|
+
"""
|
|
47
|
+
tmp/aruba/dir.d
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
Scenario: Announce stdout
|
|
51
|
+
Given an executable named "bin/cli" with:
|
|
52
|
+
"""bash
|
|
53
|
+
#!/usr/bin/env bash
|
|
54
|
+
|
|
55
|
+
echo 'Hello World'
|
|
56
|
+
"""
|
|
57
|
+
And a file named "features/exit_status.feature" with:
|
|
58
|
+
"""cucumber
|
|
59
|
+
Feature: Announce
|
|
60
|
+
@announce-stdout
|
|
61
|
+
Scenario: Run command
|
|
62
|
+
When I run `cli`
|
|
63
|
+
Then the exit status should be 0
|
|
64
|
+
"""
|
|
65
|
+
When I run `cucumber`
|
|
66
|
+
Then the features should all pass
|
|
67
|
+
And the output should contain:
|
|
68
|
+
"""
|
|
69
|
+
<<-STDOUT
|
|
70
|
+
Hello World
|
|
71
|
+
|
|
72
|
+
STDOUT
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
Scenario: Announce stderr
|
|
76
|
+
Given an executable named "bin/cli" with:
|
|
77
|
+
"""bash
|
|
78
|
+
#!/usr/bin/env bash
|
|
79
|
+
|
|
80
|
+
echo 'Hello World' >&2
|
|
81
|
+
"""
|
|
82
|
+
And a file named "features/exit_status.feature" with:
|
|
83
|
+
"""cucumber
|
|
84
|
+
Feature: Announce
|
|
85
|
+
@announce-stderr
|
|
86
|
+
Scenario: Run command
|
|
87
|
+
When I run `cli`
|
|
88
|
+
Then the exit status should be 0
|
|
89
|
+
"""
|
|
90
|
+
When I run `cucumber`
|
|
91
|
+
Then the features should all pass
|
|
92
|
+
And the output should contain:
|
|
93
|
+
"""
|
|
94
|
+
<<-STDERR
|
|
95
|
+
Hello World
|
|
96
|
+
|
|
97
|
+
STDERR
|
|
98
|
+
"""
|
|
99
|
+
|
|
100
|
+
Scenario: Announce both stderr and stdout
|
|
101
|
+
Given an executable named "bin/cli" with:
|
|
102
|
+
"""bash
|
|
103
|
+
#!/usr/bin/env bash
|
|
104
|
+
|
|
105
|
+
echo 'Hello' >&2
|
|
106
|
+
echo 'World'
|
|
107
|
+
"""
|
|
108
|
+
And a file named "features/exit_status.feature" with:
|
|
109
|
+
"""cucumber
|
|
110
|
+
Feature: Announce
|
|
111
|
+
@announce-output
|
|
112
|
+
Scenario: Run command
|
|
113
|
+
When I run `cli`
|
|
114
|
+
Then the exit status should be 0
|
|
115
|
+
"""
|
|
116
|
+
When I run `cucumber`
|
|
117
|
+
Then the features should all pass
|
|
118
|
+
And the output should contain:
|
|
119
|
+
"""
|
|
120
|
+
<<-STDERR
|
|
121
|
+
Hello
|
|
122
|
+
|
|
123
|
+
STDERR
|
|
124
|
+
"""
|
|
125
|
+
And the output should contain:
|
|
126
|
+
"""
|
|
127
|
+
<<-STDOUT
|
|
128
|
+
World
|
|
129
|
+
|
|
130
|
+
STDOUT
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
Scenario: Announce command
|
|
134
|
+
Given an executable named "bin/cli" with:
|
|
135
|
+
"""bash
|
|
136
|
+
#!/usr/bin/env bash
|
|
137
|
+
|
|
138
|
+
echo 'Hello World'
|
|
139
|
+
"""
|
|
140
|
+
And a file named "features/exit_status.feature" with:
|
|
141
|
+
"""cucumber
|
|
142
|
+
Feature: Announce
|
|
143
|
+
@announce-cmd
|
|
144
|
+
Scenario: Run command
|
|
145
|
+
When I run `cli`
|
|
146
|
+
Then the exit status should be 0
|
|
147
|
+
"""
|
|
148
|
+
When I run `cucumber`
|
|
149
|
+
Then the features should all pass
|
|
150
|
+
And the output should contain:
|
|
151
|
+
"""
|
|
152
|
+
$ cli
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
Scenario: Announce change of environment variable
|
|
156
|
+
Given an executable named "bin/cli" with:
|
|
157
|
+
"""bash
|
|
158
|
+
#!/usr/bin/env bash
|
|
159
|
+
|
|
160
|
+
echo 'Hello World'
|
|
161
|
+
"""
|
|
162
|
+
And a file named "features/exit_status.feature" with:
|
|
163
|
+
"""cucumber
|
|
164
|
+
Feature: Announce
|
|
165
|
+
@announce-env
|
|
166
|
+
Scenario: Run command
|
|
167
|
+
When I set the environment variables to:
|
|
168
|
+
| variable | value |
|
|
169
|
+
| MY_VAR | my_value |
|
|
170
|
+
And I run `cli`
|
|
171
|
+
Then the exit status should be 0
|
|
172
|
+
"""
|
|
173
|
+
When I run `cucumber`
|
|
174
|
+
Then the features should all pass
|
|
175
|
+
And the output should contain:
|
|
176
|
+
"""
|
|
177
|
+
$ export MY_VAR=my_value
|
|
178
|
+
"""
|
|
179
|
+
|
|
180
|
+
Scenario: Announce change of environment variable which contains special characters
|
|
181
|
+
Given an executable named "bin/cli" with:
|
|
182
|
+
"""bash
|
|
183
|
+
#!/usr/bin/env bash
|
|
184
|
+
|
|
185
|
+
echo 'Hello World'
|
|
186
|
+
"""
|
|
187
|
+
And a file named "features/exit_status.feature" with:
|
|
188
|
+
"""cucumber
|
|
189
|
+
Feature: Announce
|
|
190
|
+
@announce-env
|
|
191
|
+
Scenario: Run command
|
|
192
|
+
When I set the environment variables to:
|
|
193
|
+
| variable | value |
|
|
194
|
+
| MY_VAR | my value ! |
|
|
195
|
+
And I run `cli`
|
|
196
|
+
Then the exit status should be 0
|
|
197
|
+
"""
|
|
198
|
+
When I run `cucumber`
|
|
199
|
+
Then the features should all pass
|
|
200
|
+
And the output should contain:
|
|
201
|
+
"""
|
|
202
|
+
$ export MY_VAR=my\ value\ \
|
|
203
|
+
"""
|
|
204
|
+
|
|
205
|
+
Scenario: Announce file system status of command
|
|
206
|
+
This will output information like owner, group, atime, mtime, ctime, size,
|
|
207
|
+
mode and if command is executable.
|
|
208
|
+
|
|
209
|
+
Given an executable named "bin/cli" with:
|
|
210
|
+
"""bash
|
|
211
|
+
#!/usr/bin/env bash
|
|
212
|
+
|
|
213
|
+
echo 'Hello World'
|
|
214
|
+
"""
|
|
215
|
+
And a file named "features/exit_status.feature" with:
|
|
216
|
+
"""cucumber
|
|
217
|
+
Feature: Announce
|
|
218
|
+
@announce-command-filesystem-status
|
|
219
|
+
Scenario: Run command
|
|
220
|
+
And I run `cli`
|
|
221
|
+
Then the exit status should be 0
|
|
222
|
+
"""
|
|
223
|
+
When I run `cucumber`
|
|
224
|
+
Then the features should all pass
|
|
225
|
+
And the output should contain:
|
|
226
|
+
"""
|
|
227
|
+
# mode => 755
|
|
228
|
+
"""
|
|
229
|
+
And the output should contain:
|
|
230
|
+
"""
|
|
231
|
+
# owner
|
|
232
|
+
"""
|
|
233
|
+
And the output should contain:
|
|
234
|
+
"""
|
|
235
|
+
# group
|
|
236
|
+
"""
|
|
237
|
+
And the output should contain:
|
|
238
|
+
"""
|
|
239
|
+
# ctime
|
|
240
|
+
"""
|
|
241
|
+
And the output should contain:
|
|
242
|
+
"""
|
|
243
|
+
# mtime
|
|
244
|
+
"""
|
|
245
|
+
And the output should contain:
|
|
246
|
+
"""
|
|
247
|
+
# atime
|
|
248
|
+
"""
|
|
249
|
+
And the output should contain:
|
|
250
|
+
"""
|
|
251
|
+
# size
|
|
252
|
+
"""
|
|
253
|
+
And the output should contain:
|
|
254
|
+
"""
|
|
255
|
+
# executable
|
|
256
|
+
"""
|
|
257
|
+
|
|
258
|
+
Scenario: Announce content of command
|
|
259
|
+
This will output the content of the executable command. Be careful doing
|
|
260
|
+
this with binary executables. This hook should be used with scripts only.
|
|
261
|
+
|
|
262
|
+
Given an executable named "bin/cli" with:
|
|
263
|
+
"""bash
|
|
264
|
+
#!/usr/bin/env bash
|
|
265
|
+
|
|
266
|
+
echo 'Hello World'
|
|
267
|
+
"""
|
|
268
|
+
And a file named "features/exit_status.feature" with:
|
|
269
|
+
"""cucumber
|
|
270
|
+
Feature: Announce
|
|
271
|
+
@announce-command-content
|
|
272
|
+
Scenario: Run command
|
|
273
|
+
And I run `cli`
|
|
274
|
+
Then the exit status should be 0
|
|
275
|
+
"""
|
|
276
|
+
When I run `cucumber`
|
|
277
|
+
Then the features should all pass
|
|
278
|
+
And the output should contain:
|
|
279
|
+
"""
|
|
280
|
+
#!/usr/bin/env bash
|
|
281
|
+
|
|
282
|
+
echo 'Hello World'
|
|
283
|
+
"""
|