From e83bbca6268c4586da3e8ea9235e073bcc6430b4 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sat, 20 Dec 2025 17:04:33 +0100 Subject: [PATCH 01/21] Run cucumber scenarios from section 2 on Windows in CI --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cf183290d..65e01dc34 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -86,8 +86,8 @@ jobs: run: bundle exec rake spec - name: Run cukes (1) run: bundle exec cucumber features/01_getting_started_with_aruba/ - # - name: Run cukes (2) - # run: bundle exec cucumber features/02_configure_aruba/ + - name: Run cukes (2) + run: bundle exec cucumber features/02_configure_aruba/ # - name: Run cukes (3) # run: bundle exec cucumber features/03_testing_frameworks/ # - name: Run cukes (4) From 87eb35230b0cfc78ee6709d51942a75acc3c4fdc Mon Sep 17 00:00:00 2001 From: Andrew Walter Date: Sun, 10 Jun 2018 20:47:24 +1000 Subject: [PATCH 02/21] CI: Windows - Fixed 02_Configuring_Aruba\HomeDirectory feature. --- features/02_configure_aruba/home_directory.feature | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/features/02_configure_aruba/home_directory.feature b/features/02_configure_aruba/home_directory.feature index 065be0eb6..5da4555ee 100644 --- a/features/02_configure_aruba/home_directory.feature +++ b/features/02_configure_aruba/home_directory.feature @@ -22,7 +22,7 @@ Feature: Configure the home directory to be used with aruba When I successfully run `cucumber` Then the output should match: """ - The default value is "/.*/tmp/aruba" + The default value is ".*/tmp/aruba" """ Scenario: Set to current working directory @@ -60,7 +60,7 @@ Feature: Configure the home directory to be used with aruba Then I successfully run `cucumber` Then the output should match: """ - The value is "/.*/tmp/aruba/home" + The value is ".*/tmp/aruba/home" """ Scenario: Set to some other path (deprecated) From 96b86db4f74aae65ab914f7de3591fea436b78ce Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 20 Jun 2021 08:55:57 +0200 Subject: [PATCH 03/21] Make 02_configure_aruba/basics feature platform-independent --- features/02_configure_aruba/basics.feature | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/features/02_configure_aruba/basics.feature b/features/02_configure_aruba/basics.feature index a95bca709..a119440bb 100644 --- a/features/02_configure_aruba/basics.feature +++ b/features/02_configure_aruba/basics.feature @@ -14,10 +14,9 @@ Feature: Usage of configuration Background: Given I use a fixture named "cli-app" And an executable named "bin/aruba-test-cli" with: - """bash - #!/bin/bash - trap "exit 128" SIGTERM SIGINT - sleep $* + """ruby + #!/usr/bin/env ruby + sleep ARGV[0].to_f """ Scenario: Setting default values for option for RSpec @@ -108,7 +107,7 @@ Feature: Usage of configuration Scenario: Slow command When I run `aruba-test-cli 1.0` - Then the exit status should be 128 + Then the exit status should not be 0 """ When I run `cucumber` Then the features should all pass @@ -122,7 +121,7 @@ Feature: Usage of configuration Given a file named "features/support/aruba_config.rb" with: """ruby Aruba.configure do |config| - config.exit_timeout = 0.2 + config.exit_timeout = 0.5 end """ And a file named "features/support/hooks.rb" with: @@ -144,8 +143,8 @@ Feature: Usage of configuration Then the exit status should be 0 Scenario: Slow command which might be a failure - When I run `aruba-test-cli 0.5` - Then the exit status should be 128 + When I run `aruba-test-cli 1` + Then the exit status should not be 0 """ When I run `cucumber` Then the features should all pass From 48e65eb23f762ae9e407e9c03de786e61d42a393 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 08:37:16 +0100 Subject: [PATCH 04/21] Make 02_configure_aruba/exit_timeout feature platform-independent --- features/02_configure_aruba/exit_timeout.feature | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/features/02_configure_aruba/exit_timeout.feature b/features/02_configure_aruba/exit_timeout.feature index a023bf57b..a8803dc47 100644 --- a/features/02_configure_aruba/exit_timeout.feature +++ b/features/02_configure_aruba/exit_timeout.feature @@ -7,10 +7,9 @@ Feature: Configure timeout for command execution Background: Given I use the fixture "cli-app" And an executable named "bin/aruba-test-cli" with: - """bash - #!/bin/bash - trap "exit 128" SIGTERM SIGINT - sleep $* + """ruby + #!/usr/bin/env ruby + sleep ARGV[0].to_f """ Scenario: Default value From 521138e015fda2a5983b5ff2a7d316f40b0bebce Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Fri, 18 Jun 2021 15:07:08 +0200 Subject: [PATCH 05/21] TMP: Limit set of platforms --- .github/workflows/test.yml | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 65e01dc34..f071296e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,14 +26,8 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby: ["3.1", "3.2", "jruby-9.4", "3.3", "3.4"] - appraisal: [cucumber_8, cucumber_9, cucumber_10, rspec_4] - include: - - ruby: "3.0" - appraisal: cucumber_8 - exclude: - - ruby: "3.4" - appraisal: cucumber_8 + ruby: ["3.3"] + appraisal: [cucumber_10] env: BUNDLE_GEMFILE: gemfiles/${{ matrix.appraisal }}.gemfile @@ -53,7 +47,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.0", "3.1", "3.2", "3.3", "3.4"] + ruby: ["3.3"] runs-on: macos-latest steps: - uses: actions/checkout@v6 @@ -71,7 +65,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.0", "3.1", "3.2", "3.3", "3.4"] + ruby: ["3.3"] runs-on: windows-latest steps: - name: git config autocrlf From 9028dbb5d4b677988bbbc20ce37d587d33d79b43 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Fri, 15 Nov 2024 18:14:53 +0100 Subject: [PATCH 06/21] Tighten output check in Cucumber step testing RSpec success This change ensures no errors were reported, and that both checks are performed before reporting any failures. --- lib/aruba/cucumber/testing_frameworks.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/aruba/cucumber/testing_frameworks.rb b/lib/aruba/cucumber/testing_frameworks.rb index 5016893f9..4355fb610 100644 --- a/lib/aruba/cucumber/testing_frameworks.rb +++ b/lib/aruba/cucumber/testing_frameworks.rb @@ -52,8 +52,11 @@ # RSpec Then(/^the spec(?:s)? should all pass$/) do - step 'the output should contain "0 failures"' - step 'the exit status should be 0' + aggregate_failures do + expect(last_command_stopped) + .to have_output an_output_string_matching('examples?, 0 failures') + expect(last_command_stopped).to have_exit_status 0 + end end # RSpec From 20b1ac099816d4ef66eefba247260014eee84554 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 10:31:19 +0100 Subject: [PATCH 07/21] Check timeouts in a platform-independent way --- features/02_configure_aruba/basics.feature | 46 +++++++++++++------ .../02_configure_aruba/exit_timeout.feature | 14 +++++- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/features/02_configure_aruba/basics.feature b/features/02_configure_aruba/basics.feature index a119440bb..c40c70280 100644 --- a/features/02_configure_aruba/basics.feature +++ b/features/02_configure_aruba/basics.feature @@ -33,12 +33,12 @@ Feature: Usage of configuration RSpec.describe 'Run command', :type => :aruba do context 'when fast command' do before { run_command('aruba-test-cli 0') } - it { expect(last_command_started).to be_successfully_executed } + it { expect(last_command_started).to have_finished_in_time } end context 'when slow command' do before { run_command('aruba-test-cli 1') } - it { expect(last_command_started).not_to be_successfully_executed } + it { expect(last_command_started).not_to have_finished_in_time } end end """ @@ -74,17 +74,17 @@ Feature: Usage of configuration RSpec.describe 'Run command', :type => :aruba do context 'when fast command' do before { run_command('aruba-test-cli 0') } - it { expect(last_command_started).to be_successfully_executed } + it { expect(last_command_started).to have_finished_in_time } end context 'when slow command and this is known by the developer', :slow_command => true do before { run_command('aruba-test-cli 1') } - it { expect(last_command_started).to be_successfully_executed } + it { expect(last_command_started).to have_finished_in_time } end context 'when slow command, but this might be a failure' do before { run_command('aruba-test-cli 1') } - it { expect(last_command_started).not_to be_successfully_executed } + it { expect(last_command_started).not_to have_finished_in_time } end end """ @@ -98,16 +98,26 @@ Feature: Usage of configuration config.exit_timeout = 0.5 end """ + And a file named "features/step_definitions/timeout_steps.rb" with: + """ruby + Then 'the command should finish in time' do + expect(last_command_started).to have_finished_in_time + end + + Then 'the command should time out' do + expect(last_command_started).to run_too_long + end + """ And a file named "features/run.feature" with: """ Feature: Run it Scenario: Fast command When I run `aruba-test-cli 0` - Then the exit status should be 0 + Then the command should finish in time Scenario: Slow command When I run `aruba-test-cli 1.0` - Then the exit status should not be 0 + Then the command should time out """ When I run `cucumber` Then the features should all pass @@ -130,21 +140,31 @@ Feature: Usage of configuration aruba.config.exit_timeout = 1.5 end """ + And a file named "features/step_definitions/timeout_steps.rb" with: + """ruby + Then 'the command should finish in time' do + expect(last_command_started).to have_finished_in_time + end + + Then 'the command should time out' do + expect(last_command_started).to run_too_long + end + """ And a file named "features/usage_configuration.feature" with: """ Feature: Run it Scenario: Fast command When I run `aruba-test-cli 0` - Then the exit status should be 0 + Then the command should finish in time @slow-command - Scenario: Slow command known by the developer - When I run `aruba-test-cli 0.5` - Then the exit status should be 0 + Scenario: Slow command finishes when given more time + When I run `aruba-test-cli 1` + Then the command should finish in time - Scenario: Slow command which might be a failure + Scenario: Slow command fails When I run `aruba-test-cli 1` - Then the exit status should not be 0 + Then the command should time out """ When I run `cucumber` Then the features should all pass diff --git a/features/02_configure_aruba/exit_timeout.feature b/features/02_configure_aruba/exit_timeout.feature index a8803dc47..a74543c79 100644 --- a/features/02_configure_aruba/exit_timeout.feature +++ b/features/02_configure_aruba/exit_timeout.feature @@ -4,6 +4,10 @@ Feature: Configure timeout for command execution I want to configure the timeout when executing a command In order to support some longer running commands + Note that on Windows, you must check for timeouts explicitly and cannot rely + on a nonzero exit status: Killing the process from Ruby when the timeout + occurs will set the exit status to 0. + Background: Given I use the fixture "cli-app" And an executable named "bin/aruba-test-cli" with: @@ -11,6 +15,12 @@ Feature: Configure timeout for command execution #!/usr/bin/env ruby sleep ARGV[0].to_f """ + And a file named "features/step_definitions/timeout_steps.rb" with: + """ruby + Then 'the command should finish in time' do + expect(last_command_started).to have_finished_in_time + end + """ Scenario: Default value Given a file named "features/support/aruba_config.rb" with: @@ -37,7 +47,7 @@ Feature: Configure timeout for command execution Feature: Run it Scenario: Fast command When I run `aruba-test-cli 0.5` - Then the exit status should be 0 + Then the command should finish in time """ Then I successfully run `cucumber` @@ -53,7 +63,7 @@ Feature: Configure timeout for command execution Feature: Run it Scenario: Fast command When I run `aruba-test-cli 2.5` - Then the exit status should be 0 + Then the command should finish in time """ Then I run `cucumber` And the exit status should be 1 From 84c4e3581abf9e2c44594071a8dff50447a2d1c5 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 11:37:18 +0100 Subject: [PATCH 08/21] Ensure aruba is loaded first in the cli-app fixture There may be a load order issue when loading aruba and its config in separate Cucumber support files whose name does not start with 'env'. This change makes the 'env.rb' file load aruba directly, so Aruba should definitely be available when configuring it. --- .../activate_announcer_on_command_failure.feature | 4 ++-- features/02_configure_aruba/basics.feature | 4 ++-- features/02_configure_aruba/console_history_file.feature | 4 ++-- features/02_configure_aruba/exit_timeout.feature | 6 +++--- features/02_configure_aruba/fixtures_directories.feature | 4 ++-- features/02_configure_aruba/fixtures_path_prefix.feature | 2 +- features/02_configure_aruba/home_directory.feature | 8 ++++---- features/02_configure_aruba/io_timeout.feature | 4 ++-- features/02_configure_aruba/log_level.feature | 4 ++-- features/02_configure_aruba/physical_block_size.feature | 6 +++--- .../remove_ansi_escape_sequences.feature | 4 ++-- features/02_configure_aruba/root_directory.feature | 2 +- features/02_configure_aruba/startup_wait_time.feature | 4 ++-- features/02_configure_aruba/working_directory.feature | 4 ++-- fixtures/cli-app/features/support/aruba.rb | 3 --- fixtures/cli-app/features/support/env.rb | 2 +- 16 files changed, 31 insertions(+), 34 deletions(-) delete mode 100644 fixtures/cli-app/features/support/aruba.rb diff --git a/features/02_configure_aruba/activate_announcer_on_command_failure.feature b/features/02_configure_aruba/activate_announcer_on_command_failure.feature index 61285e131..0bd344ca5 100644 --- a/features/02_configure_aruba/activate_announcer_on_command_failure.feature +++ b/features/02_configure_aruba/activate_announcer_on_command_failure.feature @@ -8,7 +8,7 @@ Feature: Configure announcer activation on command failure Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.activate_announcer_on_command_failure.inspect}") @@ -21,7 +21,7 @@ Feature: Configure announcer activation on command failure """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.activate_announcer_on_command_failure = [:foo, :bar] diff --git a/features/02_configure_aruba/basics.feature b/features/02_configure_aruba/basics.feature index c40c70280..3e07b1863 100644 --- a/features/02_configure_aruba/basics.feature +++ b/features/02_configure_aruba/basics.feature @@ -92,7 +92,7 @@ Feature: Usage of configuration Then the specs should all pass Scenario: Setting default values for option for Cucumber - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.exit_timeout = 0.5 @@ -128,7 +128,7 @@ Feature: Usage of configuration want to set the default timeout for all commands to the maximum value only to prevent those commands from failing. - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.exit_timeout = 0.5 diff --git a/features/02_configure_aruba/console_history_file.feature b/features/02_configure_aruba/console_history_file.feature index 683f2bbdd..d385ef114 100644 --- a/features/02_configure_aruba/console_history_file.feature +++ b/features/02_configure_aruba/console_history_file.feature @@ -8,7 +8,7 @@ Feature: Configure the aruba console history file Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ Aruba.configure do |config| puts %(The default value is "#{config.console_history_file}") @@ -21,7 +21,7 @@ Feature: Configure the aruba console history file """ Scenario: Set some value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ Aruba.configure do |config| config.console_history_file = '~/.config/aruba/history.txt' diff --git a/features/02_configure_aruba/exit_timeout.feature b/features/02_configure_aruba/exit_timeout.feature index a74543c79..af196227b 100644 --- a/features/02_configure_aruba/exit_timeout.feature +++ b/features/02_configure_aruba/exit_timeout.feature @@ -23,7 +23,7 @@ Feature: Configure timeout for command execution """ Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.exit_timeout}") @@ -36,7 +36,7 @@ Feature: Configure timeout for command execution """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.exit_timeout = 1.0 @@ -52,7 +52,7 @@ Feature: Configure timeout for command execution Then I successfully run `cucumber` Scenario: Fails if takes longer - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.exit_timeout = 0.5 diff --git a/features/02_configure_aruba/fixtures_directories.feature b/features/02_configure_aruba/fixtures_directories.feature index 121d746bd..f05630567 100644 --- a/features/02_configure_aruba/fixtures_directories.feature +++ b/features/02_configure_aruba/fixtures_directories.feature @@ -8,7 +8,7 @@ Feature: Configure directory where to look for fixtures Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aaa.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "%w(#{config.fixtures_directories.join(" ")})") @@ -21,7 +21,7 @@ Feature: Configure directory where to look for fixtures """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aaa.rb" with: """ruby Aruba.configure do |config| config.fixtures_directories = %w(spec/fixtures) diff --git a/features/02_configure_aruba/fixtures_path_prefix.feature b/features/02_configure_aruba/fixtures_path_prefix.feature index b16cc0dac..e2aa6c54c 100644 --- a/features/02_configure_aruba/fixtures_path_prefix.feature +++ b/features/02_configure_aruba/fixtures_path_prefix.feature @@ -8,7 +8,7 @@ Feature: Use fixtures path prefix of aruba Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts "The prefix is \"#{config.fixtures_path_prefix}\"." diff --git a/features/02_configure_aruba/home_directory.feature b/features/02_configure_aruba/home_directory.feature index 5da4555ee..4d57c60e7 100644 --- a/features/02_configure_aruba/home_directory.feature +++ b/features/02_configure_aruba/home_directory.feature @@ -13,7 +13,7 @@ Feature: Configure the home directory to be used with aruba Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.home_directory}") @@ -26,7 +26,7 @@ Feature: Configure the home directory to be used with aruba """ Scenario: Set to current working directory - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| # use current working directory @@ -44,7 +44,7 @@ Feature: Configure the home directory to be used with aruba """ Scenario: Set a path inside aruba's working directory - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| # Use aruba working directory @@ -64,7 +64,7 @@ Feature: Configure the home directory to be used with aruba """ Scenario: Set to some other path (deprecated) - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| # use current working directory diff --git a/features/02_configure_aruba/io_timeout.feature b/features/02_configure_aruba/io_timeout.feature index f71bad70b..b89d79805 100644 --- a/features/02_configure_aruba/io_timeout.feature +++ b/features/02_configure_aruba/io_timeout.feature @@ -8,7 +8,7 @@ Feature: Configure timeout for io of commands Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.io_wait_timeout}") @@ -21,7 +21,7 @@ Feature: Configure timeout for io of commands """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.io_wait_timeout = 2 diff --git a/features/02_configure_aruba/log_level.feature b/features/02_configure_aruba/log_level.feature index 7bb35556e..a7a2436d0 100644 --- a/features/02_configure_aruba/log_level.feature +++ b/features/02_configure_aruba/log_level.feature @@ -8,7 +8,7 @@ Feature: Configure Log level of aruba logger Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.log_level}") @@ -21,7 +21,7 @@ Feature: Configure Log level of aruba logger """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.log_level = :warn diff --git a/features/02_configure_aruba/physical_block_size.feature b/features/02_configure_aruba/physical_block_size.feature index 4d665485c..ccf3d5f88 100644 --- a/features/02_configure_aruba/physical_block_size.feature +++ b/features/02_configure_aruba/physical_block_size.feature @@ -8,7 +8,7 @@ Feature: Configure the physical block size of disk Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.physical_block_size}") @@ -21,7 +21,7 @@ Feature: Configure the physical block size of disk """ Scenario: Set the block size to something else which is a power of two - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| # use current working directory @@ -39,7 +39,7 @@ Feature: Configure the physical block size of disk """ Scenario: The value needs to be a power of two, otherwise it will fail - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.physical_block_size = 3 diff --git a/features/02_configure_aruba/remove_ansi_escape_sequences.feature b/features/02_configure_aruba/remove_ansi_escape_sequences.feature index d8ff1b882..ee665f508 100644 --- a/features/02_configure_aruba/remove_ansi_escape_sequences.feature +++ b/features/02_configure_aruba/remove_ansi_escape_sequences.feature @@ -8,7 +8,7 @@ Feature: Configure if ansi color codes should be stripped off from command outpu Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ Aruba.configure do |config| puts %(The default value is "#{config.remove_ansi_escape_sequences}") @@ -21,7 +21,7 @@ Feature: Configure if ansi color codes should be stripped off from command outpu """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ Aruba.configure do |config| config.remove_ansi_escape_sequences = false diff --git a/features/02_configure_aruba/root_directory.feature b/features/02_configure_aruba/root_directory.feature index 492fe3891..e6b273528 100644 --- a/features/02_configure_aruba/root_directory.feature +++ b/features/02_configure_aruba/root_directory.feature @@ -8,7 +8,7 @@ Feature: Use root directory of aruba Given I use the fixture "cli-app" Scenario: Default configuration - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ Aruba.configure do |config| puts config.root_directory diff --git a/features/02_configure_aruba/startup_wait_time.feature b/features/02_configure_aruba/startup_wait_time.feature index 5a104e86b..fd13e9ca2 100644 --- a/features/02_configure_aruba/startup_wait_time.feature +++ b/features/02_configure_aruba/startup_wait_time.feature @@ -18,7 +18,7 @@ Feature: Set time to wait after spawning command Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.startup_wait_time}") @@ -31,7 +31,7 @@ Feature: Set time to wait after spawning command """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.startup_wait_time = 2 diff --git a/features/02_configure_aruba/working_directory.feature b/features/02_configure_aruba/working_directory.feature index 23edbcdb3..313c10c91 100644 --- a/features/02_configure_aruba/working_directory.feature +++ b/features/02_configure_aruba/working_directory.feature @@ -8,7 +8,7 @@ Feature: Configure working directory of aruba Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ Aruba.configure do |config| puts %(The default value is "#{config.working_directory}") @@ -21,7 +21,7 @@ Feature: Configure working directory of aruba """ Scenario: Modify value - Given a file named "features/support/aruba_config.rb" with: + Given a file named "features/support/aruba.rb" with: """ Aruba.configure do |config| config.working_directory = 'tmp/cucumber' diff --git a/fixtures/cli-app/features/support/aruba.rb b/fixtures/cli-app/features/support/aruba.rb deleted file mode 100644 index 751674fc0..000000000 --- a/fixtures/cli-app/features/support/aruba.rb +++ /dev/null @@ -1,3 +0,0 @@ -# frozen_string_literal: true - -require 'aruba/cucumber' diff --git a/fixtures/cli-app/features/support/env.rb b/fixtures/cli-app/features/support/env.rb index bcc12c29d..751674fc0 100644 --- a/fixtures/cli-app/features/support/env.rb +++ b/fixtures/cli-app/features/support/env.rb @@ -1,3 +1,3 @@ # frozen_string_literal: true -require_relative 'aruba' +require 'aruba/cucumber' From 8ebd228594f2f6e5ff5f55cf7e5f5a6b434be676 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:08:13 +0100 Subject: [PATCH 09/21] Adjust timeout values --- features/02_configure_aruba/basics.feature | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/features/02_configure_aruba/basics.feature b/features/02_configure_aruba/basics.feature index 3e07b1863..10c08c9c9 100644 --- a/features/02_configure_aruba/basics.feature +++ b/features/02_configure_aruba/basics.feature @@ -78,12 +78,12 @@ Feature: Usage of configuration end context 'when slow command and this is known by the developer', :slow_command => true do - before { run_command('aruba-test-cli 1') } + before { run_command('aruba-test-cli 0.6') } it { expect(last_command_started).to have_finished_in_time } end context 'when slow command, but this might be a failure' do - before { run_command('aruba-test-cli 1') } + before { run_command('aruba-test-cli 0.6') } it { expect(last_command_started).not_to have_finished_in_time } end end @@ -159,11 +159,11 @@ Feature: Usage of configuration @slow-command Scenario: Slow command finishes when given more time - When I run `aruba-test-cli 1` + When I run `aruba-test-cli 0.6` Then the command should finish in time Scenario: Slow command fails - When I run `aruba-test-cli 1` + When I run `aruba-test-cli 0.6` Then the command should time out """ When I run `cucumber` From 0694dc9c084351bab367d25a252ffd132db35390 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:24:11 +0100 Subject: [PATCH 10/21] fixup! Ensure aruba is loaded first in the cli-app fixture --- .../cucumber/hooks/define_after_hook_for_commands.feature | 6 +----- .../cucumber/hooks/define_before_hook_for_commands.feature | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/features/03_testing_frameworks/cucumber/hooks/define_after_hook_for_commands.feature b/features/03_testing_frameworks/cucumber/hooks/define_after_hook_for_commands.feature index e7b15b3ba..cd312990f 100644 --- a/features/03_testing_frameworks/cucumber/hooks/define_after_hook_for_commands.feature +++ b/features/03_testing_frameworks/cucumber/hooks/define_after_hook_for_commands.feature @@ -6,8 +6,6 @@ Feature: After command hooks You can hook into Aruba's lifecycle just before it runs a command and after it has run the command: ```ruby - require 'aruba' - Aruba.configure do |config| config.after :command do |cmd| puts "After the run of '#{cmd}'" @@ -19,10 +17,8 @@ Feature: After command hooks Given I use a fixture named "cli-app" Scenario: Run a simple command with an "after(:command)"-hook - Given a file named "features/support/hooks.rb" with: + Given a file named "features/support/aruba.rb" with: """ - require_relative 'aruba' - Aruba.configure do |config| config.after :command do |cmd| puts "after the run of `#{cmd.commandline}`" diff --git a/features/03_testing_frameworks/cucumber/hooks/define_before_hook_for_commands.feature b/features/03_testing_frameworks/cucumber/hooks/define_before_hook_for_commands.feature index 3e6eba456..8b5d187c1 100644 --- a/features/03_testing_frameworks/cucumber/hooks/define_before_hook_for_commands.feature +++ b/features/03_testing_frameworks/cucumber/hooks/define_before_hook_for_commands.feature @@ -8,8 +8,6 @@ Feature: before_cmd hooks You can hook into Aruba's lifecycle just before it runs a command and after it has run the command: ```ruby - require_relative 'aruba' - Aruba.configure do |config| config.before :command do |cmd| puts "About to run '#{cmd}'" @@ -21,10 +19,8 @@ Feature: before_cmd hooks Given I use a fixture named "cli-app" Scenario: Run a simple command with an "after(:command)"-hook - Given a file named "features/support/hooks.rb" with: + Given a file named "features/support/aruba.rb" with: """ - require_relative 'aruba' - Aruba.configure do |config| config.before :command do |cmd| puts "before the run of `#{cmd.commandline}`" From 8b699ed1c30a1bf9c0812213c37536f9d13a51ab Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:26:58 +0100 Subject: [PATCH 11/21] fixup! Check timeouts in a platform-independent way --- features/02_configure_aruba/exit_timeout.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/02_configure_aruba/exit_timeout.feature b/features/02_configure_aruba/exit_timeout.feature index af196227b..3cc5db19f 100644 --- a/features/02_configure_aruba/exit_timeout.feature +++ b/features/02_configure_aruba/exit_timeout.feature @@ -46,7 +46,7 @@ Feature: Configure timeout for command execution """ Feature: Run it Scenario: Fast command - When I run `aruba-test-cli 0.5` + When I run `aruba-test-cli 0.1` Then the command should finish in time """ Then I successfully run `cucumber` From 08e0f2d57045e0aed5d7c2101662e04462d4f2b2 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:26:58 +0100 Subject: [PATCH 12/21] fixup! Ensure aruba is loaded first in the cli-app fixture --- features/02_configure_aruba/fixtures_directories.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/02_configure_aruba/fixtures_directories.feature b/features/02_configure_aruba/fixtures_directories.feature index f05630567..9c7ddc5f1 100644 --- a/features/02_configure_aruba/fixtures_directories.feature +++ b/features/02_configure_aruba/fixtures_directories.feature @@ -8,7 +8,7 @@ Feature: Configure directory where to look for fixtures Given I use the fixture "cli-app" Scenario: Default value - Given a file named "features/support/aaa.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "%w(#{config.fixtures_directories.join(" ")})") From 95b78320ed87b5c72d7db516575007bdca13dfd3 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:26:58 +0100 Subject: [PATCH 13/21] fixup! Ensure aruba is loaded first in the cli-app fixture --- features/02_configure_aruba/fixtures_directories.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/02_configure_aruba/fixtures_directories.feature b/features/02_configure_aruba/fixtures_directories.feature index 9c7ddc5f1..055c76540 100644 --- a/features/02_configure_aruba/fixtures_directories.feature +++ b/features/02_configure_aruba/fixtures_directories.feature @@ -21,7 +21,7 @@ Feature: Configure directory where to look for fixtures """ Scenario: Modify value - Given a file named "features/support/aaa.rb" with: + Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| config.fixtures_directories = %w(spec/fixtures) From f4010f6fc69bcb93c2ba72e071f31c2a42e155d1 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:43:35 +0100 Subject: [PATCH 14/21] TMP: Just run the first failing feature file --- .github/workflows/test.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f071296e9..dcaa83fe1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -76,12 +76,14 @@ jobs: with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - - name: Run specs - run: bundle exec rake spec - - name: Run cukes (1) - run: bundle exec cucumber features/01_getting_started_with_aruba/ - - name: Run cukes (2) - run: bundle exec cucumber features/02_configure_aruba/ + # - name: Run specs + # run: bundle exec rake spec + # - name: Run cukes (1) + # run: bundle exec cucumber features/01_getting_started_with_aruba/ + # - name: Run cukes (2) + # run: bundle exec cucumber features/02_configure_aruba/ + - name: Run cukes - focus! + run: bundle exec cucumber features/02_configure_aruba/basics.feature # - name: Run cukes (3) # run: bundle exec cucumber features/03_testing_frameworks/ # - name: Run cukes (4) From 0f67dd9bfab5a178595808c7c1ccdaa359801d06 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:49:49 +0100 Subject: [PATCH 15/21] TMP: Run only one failing scenario --- features/02_configure_aruba/basics.feature | 3 +++ 1 file changed, 3 insertions(+) diff --git a/features/02_configure_aruba/basics.feature b/features/02_configure_aruba/basics.feature index 10c08c9c9..c6fcda321 100644 --- a/features/02_configure_aruba/basics.feature +++ b/features/02_configure_aruba/basics.feature @@ -19,6 +19,7 @@ Feature: Usage of configuration sleep ARGV[0].to_f """ + @wip Scenario: Setting default values for option for RSpec Given a file named "spec/support/aruba_config.rb" with: """ruby @@ -91,6 +92,7 @@ Feature: Usage of configuration When I run `rspec` Then the specs should all pass + @wip Scenario: Setting default values for option for Cucumber Given a file named "features/support/aruba.rb" with: """ruby @@ -122,6 +124,7 @@ Feature: Usage of configuration When I run `cucumber` Then the features should all pass + @wip Scenario: Setting option during runtime for Cucumber Maybe there are some long running tests, which need longer. You may not From 7a8d617370b6a7d99928030190774b0d68c508a9 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 12:57:26 +0100 Subject: [PATCH 16/21] Remove obsolete .gitignore file from config directory --- config/.gitignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 config/.gitignore diff --git a/config/.gitignore b/config/.gitignore deleted file mode 100644 index 53c4367db..000000000 --- a/config/.gitignore +++ /dev/null @@ -1 +0,0 @@ -aruba-rvm.yml \ No newline at end of file From 799efd41572a03845994cee687786eafba50f266 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 13:03:22 +0100 Subject: [PATCH 17/21] Configure cucumber to skip work-in-progress scenarios by default --- config/cucumber.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 config/cucumber.yml diff --git a/config/cucumber.yml b/config/cucumber.yml new file mode 100644 index 000000000..c89316b81 --- /dev/null +++ b/config/cucumber.yml @@ -0,0 +1 @@ +default: --tags 'not @wip' From b21a5ff0907ffb5de317551f535fe8c729c0bd24 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 13:13:05 +0100 Subject: [PATCH 18/21] TMP: Add a TODO --- spec/support/helpers/reporting.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/support/helpers/reporting.rb b/spec/support/helpers/reporting.rb index 23d57c118..45e68bdf2 100644 --- a/spec/support/helpers/reporting.rb +++ b/spec/support/helpers/reporting.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +# TODO: Isn't this provided by RSpec itself? module SpecHelpers module Reporting # Captures the given stream and returns it: From 280532ec4eee65dae75c3b7e1be908a037686180 Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 13:14:46 +0100 Subject: [PATCH 19/21] Make timeouts larger --- features/02_configure_aruba/basics.feature | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/features/02_configure_aruba/basics.feature b/features/02_configure_aruba/basics.feature index c6fcda321..699b5d727 100644 --- a/features/02_configure_aruba/basics.feature +++ b/features/02_configure_aruba/basics.feature @@ -55,7 +55,7 @@ Feature: Usage of configuration Given a file named "spec/support/aruba_config.rb" with: """ruby Aruba.configure do |config| - config.exit_timeout = 0.5 + config.exit_timeout = 1.0 end """ And a file named "spec/support/hooks.rb" with: @@ -64,7 +64,7 @@ Feature: Usage of configuration config.before :each do |example| next unless example.metadata.key? :slow_command - aruba.config.exit_timeout = 1.5 + aruba.config.exit_timeout = 2.5 end end """ @@ -79,12 +79,12 @@ Feature: Usage of configuration end context 'when slow command and this is known by the developer', :slow_command => true do - before { run_command('aruba-test-cli 0.6') } + before { run_command('aruba-test-cli 1.1') } it { expect(last_command_started).to have_finished_in_time } end context 'when slow command, but this might be a failure' do - before { run_command('aruba-test-cli 0.6') } + before { run_command('aruba-test-cli 1.1') } it { expect(last_command_started).not_to have_finished_in_time } end end From 67c5fd457306bb0e152c8888c52b9998353a203c Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 13:28:23 +0100 Subject: [PATCH 20/21] fixup! TMP: Add a TODO --- spec/support/helpers/reporting.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/support/helpers/reporting.rb b/spec/support/helpers/reporting.rb index 45e68bdf2..3dba8bc37 100644 --- a/spec/support/helpers/reporting.rb +++ b/spec/support/helpers/reporting.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# TODO: Isn't this provided by RSpec itself? +# TODO: Isn't this provided by RSpec itself? module SpecHelpers module Reporting # Captures the given stream and returns it: From 4bec7abffffcb4661b6b235ea54c04982d8753fb Mon Sep 17 00:00:00 2001 From: Matijs van Zuijlen Date: Sun, 21 Dec 2025 13:30:57 +0100 Subject: [PATCH 21/21] Make timeouts larget (part 2) --- features/02_configure_aruba/basics.feature | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/features/02_configure_aruba/basics.feature b/features/02_configure_aruba/basics.feature index 699b5d727..50cab8eb1 100644 --- a/features/02_configure_aruba/basics.feature +++ b/features/02_configure_aruba/basics.feature @@ -19,12 +19,11 @@ Feature: Usage of configuration sleep ARGV[0].to_f """ - @wip Scenario: Setting default values for option for RSpec Given a file named "spec/support/aruba_config.rb" with: """ruby Aruba.configure do |config| - config.exit_timeout = 0.7 + config.exit_timeout = 1.0 end """ And a file named "spec/usage_configuration_spec.rb" with: @@ -92,12 +91,11 @@ Feature: Usage of configuration When I run `rspec` Then the specs should all pass - @wip Scenario: Setting default values for option for Cucumber Given a file named "features/support/aruba.rb" with: """ruby Aruba.configure do |config| - config.exit_timeout = 0.5 + config.exit_timeout = 1.0 end """ And a file named "features/step_definitions/timeout_steps.rb" with: @@ -124,7 +122,6 @@ Feature: Usage of configuration When I run `cucumber` Then the features should all pass - @wip Scenario: Setting option during runtime for Cucumber Maybe there are some long running tests, which need longer. You may not @@ -140,7 +137,7 @@ Feature: Usage of configuration And a file named "features/support/hooks.rb" with: """ruby Before '@slow-command' do - aruba.config.exit_timeout = 1.5 + aruba.config.exit_timeout = 2.5 end """ And a file named "features/step_definitions/timeout_steps.rb" with: @@ -162,11 +159,11 @@ Feature: Usage of configuration @slow-command Scenario: Slow command finishes when given more time - When I run `aruba-test-cli 0.6` + When I run `aruba-test-cli 1.1` Then the command should finish in time Scenario: Slow command fails - When I run `aruba-test-cli 0.6` + When I run `aruba-test-cli 1.1` Then the command should time out """ When I run `cucumber`