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,53 @@
|
|
|
1
|
+
Feature: Stop all commands
|
|
2
|
+
|
|
3
|
+
To stop all running commands use the `#stop_all_commands`-method.
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given I use a fixture named "cli-app"
|
|
7
|
+
|
|
8
|
+
Scenario: Multiple commands are running
|
|
9
|
+
Given an executable named "bin/cli" with:
|
|
10
|
+
"""bash
|
|
11
|
+
#!/bin/bash
|
|
12
|
+
sleep 3
|
|
13
|
+
"""
|
|
14
|
+
And a file named "spec/run_spec.rb" with:
|
|
15
|
+
"""ruby
|
|
16
|
+
require 'spec_helper'
|
|
17
|
+
|
|
18
|
+
RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 5 do
|
|
19
|
+
before(:each) { run('cli') }
|
|
20
|
+
before(:each) { run('cli') }
|
|
21
|
+
|
|
22
|
+
before(:each) { stop_all_commands }
|
|
23
|
+
|
|
24
|
+
it { expect(all_commands).to all be_stopped }
|
|
25
|
+
end
|
|
26
|
+
"""
|
|
27
|
+
When I run `rspec`
|
|
28
|
+
Then the specs should all pass
|
|
29
|
+
|
|
30
|
+
Scenario: Stop all commands for which the block returns true
|
|
31
|
+
Given an executable named "bin/cli" with:
|
|
32
|
+
"""bash
|
|
33
|
+
#!/bin/bash
|
|
34
|
+
sleep 1
|
|
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, :exit_timeout => 2 do
|
|
41
|
+
before(:each) { @cmd1 = run('cli') }
|
|
42
|
+
before(:each) { @cmd2 = run('cli') }
|
|
43
|
+
before(:each) { @cmd3 = run('sleep 1') }
|
|
44
|
+
|
|
45
|
+
before(:each) { stop_all_commands { |c| c.commandline == 'cli' } }
|
|
46
|
+
|
|
47
|
+
it { expect(@cmd1).to be_stopped }
|
|
48
|
+
it { expect(@cmd2).to be_stopped }
|
|
49
|
+
it { expect(@cmd3).not_to be_stopped }
|
|
50
|
+
end
|
|
51
|
+
"""
|
|
52
|
+
When I run `rspec`
|
|
53
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Feature: Terminate all commands
|
|
2
|
+
|
|
3
|
+
To terminate all running commands use the `#terminate_all_commands`-method.
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given I use a fixture named "cli-app"
|
|
7
|
+
|
|
8
|
+
Scenario: Multiple commands are running
|
|
9
|
+
Given an executable named "bin/cli" with:
|
|
10
|
+
"""bash
|
|
11
|
+
#!/bin/bash
|
|
12
|
+
sleep 3
|
|
13
|
+
"""
|
|
14
|
+
And a file named "spec/run_spec.rb" with:
|
|
15
|
+
"""ruby
|
|
16
|
+
require 'spec_helper'
|
|
17
|
+
|
|
18
|
+
RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 5 do
|
|
19
|
+
before(:each) { run('cli') }
|
|
20
|
+
before(:each) { run('cli') }
|
|
21
|
+
|
|
22
|
+
before(:each) { terminate_all_commands }
|
|
23
|
+
|
|
24
|
+
it { expect(all_commands).to all be_stopped }
|
|
25
|
+
end
|
|
26
|
+
"""
|
|
27
|
+
When I run `rspec`
|
|
28
|
+
Then the specs should all pass
|
|
29
|
+
|
|
30
|
+
Scenario: Terminate all commands for which the block returns true
|
|
31
|
+
Given an executable named "bin/cli" with:
|
|
32
|
+
"""bash
|
|
33
|
+
#!/bin/bash
|
|
34
|
+
sleep 1
|
|
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, :exit_timeout => 2 do
|
|
41
|
+
before(:each) { @cmd1 = run('cli') }
|
|
42
|
+
before(:each) { @cmd2 = run('cli') }
|
|
43
|
+
before(:each) { @cmd3 = run('sleep 1') }
|
|
44
|
+
|
|
45
|
+
before(:each) { terminate_all_commands { |c| c.commandline == 'cli' } }
|
|
46
|
+
|
|
47
|
+
it { expect(@cmd1).to be_stopped }
|
|
48
|
+
it { expect(@cmd2).to be_stopped }
|
|
49
|
+
it { expect(@cmd3).not_to be_stopped }
|
|
50
|
+
end
|
|
51
|
+
"""
|
|
52
|
+
When I run `rspec`
|
|
53
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Feature: Get path to command
|
|
2
|
+
|
|
3
|
+
Sometimes you only know a commands name, but not where to find it. Here comes
|
|
4
|
+
`which` to the rescue.
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given I use a fixture named "cli-app"
|
|
8
|
+
|
|
9
|
+
Scenario: Existing executable
|
|
10
|
+
Given an executable named "bin/cli" with:
|
|
11
|
+
"""bash
|
|
12
|
+
#!/bin/bash
|
|
13
|
+
exit 0
|
|
14
|
+
"""
|
|
15
|
+
And a file named "spec/which_spec.rb" with:
|
|
16
|
+
"""ruby
|
|
17
|
+
require 'spec_helper'
|
|
18
|
+
|
|
19
|
+
RSpec.describe 'Find path for command', :type => :aruba do
|
|
20
|
+
it { expect(which('cli')).to match %r{tmp/aruba/cli-app/bin/cli} }
|
|
21
|
+
end
|
|
22
|
+
"""
|
|
23
|
+
When I run `rspec`
|
|
24
|
+
Then the specs should all pass
|
|
25
|
+
|
|
26
|
+
Scenario: Non-existing executable
|
|
27
|
+
Given a file named "bin/cli" does not exist
|
|
28
|
+
And a file named "spec/which_spec.rb" with:
|
|
29
|
+
"""ruby
|
|
30
|
+
require 'spec_helper'
|
|
31
|
+
|
|
32
|
+
RSpec.describe 'Find path for command', :type => :aruba do
|
|
33
|
+
it { expect(which('cli')).to be_nil }
|
|
34
|
+
end
|
|
35
|
+
"""
|
|
36
|
+
When I run `rspec`
|
|
37
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Feature: Expand paths with aruba
|
|
2
|
+
|
|
3
|
+
There are quite a few uses cases why you want to expand a path. `aruba` helps
|
|
4
|
+
you with this by providing you the `expand_path`-method. This method expands
|
|
5
|
+
paths relative to the `aruba.current_directory`-directory.
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use the fixture "cli-app"
|
|
9
|
+
|
|
10
|
+
Scenario: Use relative path
|
|
11
|
+
Given a file named "spec/expand_path_spec.rb" with:
|
|
12
|
+
"""ruby
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
|
|
15
|
+
RSpec.describe 'Expand path', :type => :aruba do
|
|
16
|
+
let(:path) { 'path/to/dir' }
|
|
17
|
+
it { expect(expand_path(path)).to eq File.join(aruba.root_directory, aruba.current_directory, path) }
|
|
18
|
+
end
|
|
19
|
+
"""
|
|
20
|
+
When I run `rspec`
|
|
21
|
+
Then the specs should all pass
|
|
22
|
+
|
|
23
|
+
Scenario: Change directory using cd
|
|
24
|
+
Given a file named "spec/expand_path_spec.rb" with:
|
|
25
|
+
"""ruby
|
|
26
|
+
require 'spec_helper'
|
|
27
|
+
|
|
28
|
+
RSpec.describe 'Expand path', :type => :aruba do
|
|
29
|
+
let(:path) { 'path/to/dir' }
|
|
30
|
+
let(:directory) { 'dir1' }
|
|
31
|
+
|
|
32
|
+
before(:each) { create_directory(directory) }
|
|
33
|
+
before(:each) { cd(directory) }
|
|
34
|
+
|
|
35
|
+
it { expect(expand_path(path)).to eq File.join(aruba.root_directory, aruba.current_directory, path) }
|
|
36
|
+
end
|
|
37
|
+
"""
|
|
38
|
+
When I run `rspec`
|
|
39
|
+
Then the specs should all pass
|
|
40
|
+
|
|
41
|
+
Scenario: Warn if aruba's working directory does not exist
|
|
42
|
+
Given a file named "spec/expand_path_spec.rb" with:
|
|
43
|
+
"""ruby
|
|
44
|
+
require 'spec_helper'
|
|
45
|
+
|
|
46
|
+
RSpec.describe 'Expand path', :type => :aruba do
|
|
47
|
+
before(:each) { remove('.') }
|
|
48
|
+
|
|
49
|
+
let(:path) { 'path/to/dir' }
|
|
50
|
+
|
|
51
|
+
it { expect { expand_path(path) }.to output(/working directory does not exist/).to_stderr }
|
|
52
|
+
end
|
|
53
|
+
"""
|
|
54
|
+
When I run `rspec`
|
|
55
|
+
Then the specs should all pass
|
|
56
|
+
|
|
57
|
+
Scenario: Use ~ in path
|
|
58
|
+
|
|
59
|
+
Now this useses the HOME-variable from your normal shell HOME-variable.
|
|
60
|
+
From 1.0.0 on HOME will be `File.join(aruba.config.root_directory,
|
|
61
|
+
aruba.config.working_directory)`. If you want HOME have some other value,
|
|
62
|
+
you need to configure it explicitly via `Aruba.configure {}`.
|
|
63
|
+
|
|
64
|
+
Given a file named "spec/expand_path_spec.rb" with:
|
|
65
|
+
"""ruby
|
|
66
|
+
require 'spec_helper'
|
|
67
|
+
|
|
68
|
+
# Old before 1.0.0
|
|
69
|
+
RSpec.describe 'Expand path', :type => :aruba do
|
|
70
|
+
let(:path) { '~/path/to/dir' }
|
|
71
|
+
|
|
72
|
+
it { expect(expand_path(path)).to match %r</home/[^/]+/path/to/dir> }
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# New from 1.0.0
|
|
76
|
+
RSpec.describe 'Expand path', :type => :aruba do
|
|
77
|
+
let(:path) { '~/path/to/dir' }
|
|
78
|
+
|
|
79
|
+
before(:each) do
|
|
80
|
+
set_environment_variable('HOME', File.join(aruba.config.root_directory, aruba.config.working_directory))
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it { expect(expand_path(path)).to eq File.join(aruba.config.root_directory, aruba.config.working_directory, 'path/to/dir') }
|
|
84
|
+
end
|
|
85
|
+
"""
|
|
86
|
+
When I run `rspec`
|
|
87
|
+
Then the specs should all pass
|
|
88
|
+
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
Feature: Append environment variable
|
|
2
|
+
|
|
3
|
+
It is quite handy to modify the environment of a process. To make this
|
|
4
|
+
possible, `aruba` provides several methods. One of these is
|
|
5
|
+
`#append_environment_variable`. Using this variable appends a given value to
|
|
6
|
+
an existing one. If the variable does not exist, it is created with the given
|
|
7
|
+
value.
|
|
8
|
+
|
|
9
|
+
Each variable name and each value is converted to a string. Otherwise `ruby`
|
|
10
|
+
would complain about an invalid argument. To make use of a variable you can
|
|
11
|
+
either use `#run` and the like or `#with_environment`.
|
|
12
|
+
|
|
13
|
+
Background:
|
|
14
|
+
Given I use the fixture "cli-app"
|
|
15
|
+
|
|
16
|
+
Scenario: Non-existing variable
|
|
17
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
18
|
+
"""ruby
|
|
19
|
+
require 'spec_helper'
|
|
20
|
+
|
|
21
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
22
|
+
before(:each) { append_environment_variable 'LONG_LONG_VARIABLE', 'a' }
|
|
23
|
+
|
|
24
|
+
before(:each) { run('env') }
|
|
25
|
+
before(:each) { stop_all_commands }
|
|
26
|
+
|
|
27
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=a' }
|
|
28
|
+
end
|
|
29
|
+
"""
|
|
30
|
+
When I run `rspec`
|
|
31
|
+
Then the specs should all pass
|
|
32
|
+
|
|
33
|
+
Scenario: Existing inner variable
|
|
34
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
35
|
+
"""ruby
|
|
36
|
+
require 'spec_helper'
|
|
37
|
+
|
|
38
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
39
|
+
before(:each) { append_environment_variable 'LONG_LONG_VARIABLE', 'a' }
|
|
40
|
+
before(:each) { append_environment_variable 'LONG_LONG_VARIABLE', 'b' }
|
|
41
|
+
|
|
42
|
+
before(:each) { run('env') }
|
|
43
|
+
before(:each) { stop_all_commands }
|
|
44
|
+
|
|
45
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=ab' }
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
When I run `rspec`
|
|
49
|
+
Then the specs should all pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
Scenario: Existing outer variable
|
|
53
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
54
|
+
"""ruby
|
|
55
|
+
require 'spec_helper'
|
|
56
|
+
|
|
57
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
|
|
58
|
+
|
|
59
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
60
|
+
before(:each) { append_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
|
|
61
|
+
|
|
62
|
+
before(:each) { run('env') }
|
|
63
|
+
before(:each) { stop_all_commands }
|
|
64
|
+
|
|
65
|
+
it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=ab' }
|
|
66
|
+
|
|
67
|
+
# Has no effect here, is not in block and not a command `run`
|
|
68
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
|
|
69
|
+
end
|
|
70
|
+
"""
|
|
71
|
+
When I run `rspec`
|
|
72
|
+
Then the specs should all pass
|
|
73
|
+
|
|
74
|
+
Scenario: Run some ruby code with previously set environment
|
|
75
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
76
|
+
"""ruby
|
|
77
|
+
require 'spec_helper'
|
|
78
|
+
|
|
79
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
|
|
80
|
+
|
|
81
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
82
|
+
before(:each) { append_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
|
|
83
|
+
|
|
84
|
+
before(:each) { run('env') }
|
|
85
|
+
before(:each) { stop_all_commands }
|
|
86
|
+
|
|
87
|
+
it do
|
|
88
|
+
with_environment do
|
|
89
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'ab'
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Has no effect here, is not in block and not a command `run`
|
|
94
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
|
|
95
|
+
end
|
|
96
|
+
"""
|
|
97
|
+
When I run `rspec`
|
|
98
|
+
Then the specs should all pass
|
|
99
|
+
|
|
100
|
+
Scenario: Run some ruby code with local environment
|
|
101
|
+
|
|
102
|
+
If you pass the same variable to the block it will not be appended, but
|
|
103
|
+
overwrites the variable
|
|
104
|
+
|
|
105
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
106
|
+
"""ruby
|
|
107
|
+
require 'spec_helper'
|
|
108
|
+
|
|
109
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
|
|
110
|
+
|
|
111
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
112
|
+
before(:each) { append_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
|
|
113
|
+
|
|
114
|
+
before(:each) { run('env') }
|
|
115
|
+
before(:each) { stop_all_commands }
|
|
116
|
+
|
|
117
|
+
it do
|
|
118
|
+
with_environment 'REALLY_LONG_LONG_VARIABLE' => 'a' do
|
|
119
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a'
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Has no effect here, is not in block and not a command `run`
|
|
124
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
|
|
125
|
+
end
|
|
126
|
+
"""
|
|
127
|
+
When I run `rspec`
|
|
128
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
Feature: Delete existing environment variable via API-method
|
|
2
|
+
|
|
3
|
+
It is quite handy to modify the environment of a process. To make this
|
|
4
|
+
possible, `aruba` provides several methods. One of these is
|
|
5
|
+
`#delete_environment_variable`. Using this remove an existing variable.
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use the fixture "cli-app"
|
|
9
|
+
|
|
10
|
+
Scenario: Non-existing variable
|
|
11
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
12
|
+
"""ruby
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
|
|
15
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
16
|
+
before(:each) { delete_environment_variable 'LONG_LONG_VARIABLE' }
|
|
17
|
+
|
|
18
|
+
before(:each) { run('env') }
|
|
19
|
+
before(:each) { stop_all_commands }
|
|
20
|
+
|
|
21
|
+
it { expect(last_command_started.output).not_to include 'LONG_LONG_VARIABLE=1' }
|
|
22
|
+
end
|
|
23
|
+
"""
|
|
24
|
+
When I run `rspec`
|
|
25
|
+
Then the specs should all pass
|
|
26
|
+
|
|
27
|
+
Scenario: Existing variable set from within the test
|
|
28
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
29
|
+
"""ruby
|
|
30
|
+
require 'spec_helper'
|
|
31
|
+
|
|
32
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
33
|
+
before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
|
|
34
|
+
before(:each) { delete_environment_variable 'LONG_LONG_VARIABLE' }
|
|
35
|
+
|
|
36
|
+
before(:each) { run('env') }
|
|
37
|
+
before(:each) { stop_all_commands }
|
|
38
|
+
|
|
39
|
+
it { expect(last_command_started.output).not_to include 'LONG_LONG_VARIABLE' }
|
|
40
|
+
end
|
|
41
|
+
"""
|
|
42
|
+
When I run `rspec`
|
|
43
|
+
Then the specs should all pass
|
|
44
|
+
|
|
45
|
+
Scenario: Existing variable set by some outer parent process
|
|
46
|
+
|
|
47
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
48
|
+
"""ruby
|
|
49
|
+
require 'spec_helper'
|
|
50
|
+
|
|
51
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
|
|
52
|
+
|
|
53
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
54
|
+
before(:each) { delete_environment_variable 'REALLY_LONG_LONG_VARIABLE' }
|
|
55
|
+
|
|
56
|
+
before(:each) { run('env') }
|
|
57
|
+
before(:each) { stop_all_commands }
|
|
58
|
+
|
|
59
|
+
it { expect(last_command_started.output).not_to include 'REALLY_LONG_LONG_VARIABLE' }
|
|
60
|
+
end
|
|
61
|
+
"""
|
|
62
|
+
When I run `rspec`
|
|
63
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
Feature: Prepend environment variable
|
|
2
|
+
|
|
3
|
+
It is quite handy to modify the environment of a process. To make this
|
|
4
|
+
possible, `aruba` provides several methods. One of these is
|
|
5
|
+
`#prepend_environment_variable`. Using this variable prepends a given value to
|
|
6
|
+
an existing one. If the variable does not exist, it is created with the given
|
|
7
|
+
value.
|
|
8
|
+
|
|
9
|
+
Each variable name and each value is converted to a string. Otherwise `ruby`
|
|
10
|
+
would complain about an invalid argument. To make use of a variable you can
|
|
11
|
+
either use `#run` and the like or `#with_environment`.
|
|
12
|
+
|
|
13
|
+
Background:
|
|
14
|
+
Given I use the fixture "cli-app"
|
|
15
|
+
|
|
16
|
+
Scenario: Non-existing variable
|
|
17
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
18
|
+
"""ruby
|
|
19
|
+
require 'spec_helper'
|
|
20
|
+
|
|
21
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
22
|
+
before(:each) { prepend_environment_variable 'LONG_LONG_VARIABLE', 'a' }
|
|
23
|
+
|
|
24
|
+
before(:each) { run('env') }
|
|
25
|
+
before(:each) { stop_all_commands }
|
|
26
|
+
|
|
27
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=a' }
|
|
28
|
+
end
|
|
29
|
+
"""
|
|
30
|
+
When I run `rspec`
|
|
31
|
+
Then the specs should all pass
|
|
32
|
+
|
|
33
|
+
Scenario: Existing inner variable
|
|
34
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
35
|
+
"""ruby
|
|
36
|
+
require 'spec_helper'
|
|
37
|
+
|
|
38
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
39
|
+
before(:each) { prepend_environment_variable 'LONG_LONG_VARIABLE', 'a' }
|
|
40
|
+
before(:each) { prepend_environment_variable 'LONG_LONG_VARIABLE', 'b' }
|
|
41
|
+
|
|
42
|
+
before(:each) { run('env') }
|
|
43
|
+
before(:each) { stop_all_commands }
|
|
44
|
+
|
|
45
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=ba' }
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
When I run `rspec`
|
|
49
|
+
Then the specs should all pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
Scenario: Existing outer variable
|
|
53
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
54
|
+
"""ruby
|
|
55
|
+
require 'spec_helper'
|
|
56
|
+
|
|
57
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
|
|
58
|
+
|
|
59
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
60
|
+
before(:each) { prepend_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
|
|
61
|
+
|
|
62
|
+
before(:each) { run('env') }
|
|
63
|
+
before(:each) { stop_all_commands }
|
|
64
|
+
|
|
65
|
+
it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=ba' }
|
|
66
|
+
|
|
67
|
+
# Has no effect here, is not in block and not a command `run`
|
|
68
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
|
|
69
|
+
end
|
|
70
|
+
"""
|
|
71
|
+
When I run `rspec`
|
|
72
|
+
Then the specs should all pass
|
|
73
|
+
|
|
74
|
+
Scenario: Run some ruby code with previously set environment
|
|
75
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
76
|
+
"""ruby
|
|
77
|
+
require 'spec_helper'
|
|
78
|
+
|
|
79
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
|
|
80
|
+
|
|
81
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
82
|
+
before(:each) { prepend_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
|
|
83
|
+
|
|
84
|
+
before(:each) { run('env') }
|
|
85
|
+
before(:each) { stop_all_commands }
|
|
86
|
+
|
|
87
|
+
it do
|
|
88
|
+
with_environment do
|
|
89
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'ba'
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Has no effect here, is not in block and not a command `run`
|
|
94
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
|
|
95
|
+
end
|
|
96
|
+
"""
|
|
97
|
+
When I run `rspec`
|
|
98
|
+
Then the specs should all pass
|
|
99
|
+
|
|
100
|
+
Scenario: Run some ruby code with local environment
|
|
101
|
+
|
|
102
|
+
If you pass the same variable to the block it will not be prepended, but
|
|
103
|
+
overwrites the variable
|
|
104
|
+
|
|
105
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
106
|
+
"""ruby
|
|
107
|
+
require 'spec_helper'
|
|
108
|
+
|
|
109
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
|
|
110
|
+
|
|
111
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
112
|
+
before(:each) { prepend_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
|
|
113
|
+
|
|
114
|
+
before(:each) { run('env') }
|
|
115
|
+
before(:each) { stop_all_commands }
|
|
116
|
+
|
|
117
|
+
it do
|
|
118
|
+
with_environment 'REALLY_LONG_LONG_VARIABLE' => 'a' do
|
|
119
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a'
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Has no effect here, is not in block and not a command `run`
|
|
124
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
|
|
125
|
+
end
|
|
126
|
+
"""
|
|
127
|
+
When I run `rspec`
|
|
128
|
+
Then the specs should all pass
|