aruba 0.9.0.pre → 0.9.0.pre2

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.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -3
  3. data/History.md +61 -19
  4. data/README.md +10 -6
  5. data/TODO.md +6 -1
  6. data/cucumber.yml +10 -6
  7. data/features/.nav +72 -0
  8. data/features/announce.feature +203 -0
  9. data/features/api/command/extract_text.feature +10 -0
  10. data/features/api/command/run.feature +6 -6
  11. data/features/api/command/stop_all_commands.feature +53 -0
  12. data/features/api/command/terminate_all_commands.feature +53 -0
  13. data/features/api/command/unescape_text.feature +12 -0
  14. data/features/api/command/which.feature +3 -3
  15. data/features/api/core/expand_path.feature +4 -4
  16. data/features/api/environment/append_environment_variable.feature +18 -8
  17. data/features/api/environment/prepend_environment_variable.feature +18 -8
  18. data/features/api/environment/set_environment_variable.feature +33 -16
  19. data/features/api/filesystem/cd.feature +23 -13
  20. data/features/api/filesystem/create_directory.feature +2 -2
  21. data/features/api/filesystem/disk_usage.feature +7 -6
  22. data/features/api/filesystem/does_exist.feature +2 -2
  23. data/features/api/filesystem/is_absolute.feature +2 -2
  24. data/features/api/filesystem/is_directory.feature +2 -2
  25. data/features/api/filesystem/is_file.feature +2 -2
  26. data/features/api/filesystem/is_relative.feature +2 -2
  27. data/features/api/filesystem/move.feature +119 -0
  28. data/features/cli/console.feature +3 -3
  29. data/features/commands/debug_command.feature +93 -0
  30. data/features/commands/environment_variables.feature +64 -0
  31. data/features/commands/flushing.feature +74 -0
  32. data/features/commands/interactive.feature +90 -0
  33. data/features/commands/output/all_output.feature +445 -0
  34. data/features/commands/output/stdout.feature +66 -0
  35. data/features/configuration/exit_timeout.feature +5 -5
  36. data/features/configuration/fixtures_directories.feature +3 -3
  37. data/features/configuration/fixtures_path_prefix.feature +1 -1
  38. data/features/configuration/home_directory.feature +4 -4
  39. data/features/configuration/io_timeout.feature +2 -2
  40. data/features/configuration/keep_ansi.feature +2 -2
  41. data/features/configuration/log_level.feature +3 -3
  42. data/features/configuration/physical_block_size.feature +3 -3
  43. data/features/configuration/usage.feature +159 -0
  44. data/features/core/cleanup_aruba_directory.feature +52 -0
  45. data/features/development/build.feature +16 -0
  46. data/features/development/test.feature +24 -0
  47. data/features/file_system_commands.feature +12 -12
  48. data/features/getting_started/supported_programming_languages.feature +89 -0
  49. data/features/hooks/after/command.feature +1 -1
  50. data/features/hooks/before/command.feature +2 -2
  51. data/features/matchers/collection/include_an_object.feature +72 -0
  52. data/features/matchers/timeouts.feature +2 -2
  53. data/features/output.feature +60 -181
  54. data/features/step_definitions/aruba_dev_steps.rb +17 -10
  55. data/features/step_definitions/hooks.rb +11 -0
  56. data/features/steps/commands/exit_statuses.feature +3 -3
  57. data/features/steps/commands/run.feature +0 -15
  58. data/features/steps/filesystem/copy.feature +45 -0
  59. data/features/steps/filesystem/create_directory.feature +47 -0
  60. data/features/steps/filesystem/create_file.feature +53 -0
  61. data/features/steps/filesystem/file_content.feature +1 -1
  62. data/features/steps/filesystem/move.feature +45 -0
  63. data/features/steps/filesystem/overwrite_file.feature +72 -0
  64. data/features/steps/filesystem/use_fixture.feature +77 -0
  65. data/features/usage/install.feature +8 -0
  66. data/{features/fixtures → fixtures}/cli-app/.gitignore +0 -0
  67. data/{features/fixtures → fixtures}/cli-app/.rspec +0 -0
  68. data/{features/fixtures → fixtures}/cli-app/README.md +0 -0
  69. data/{features/fixtures → fixtures}/cli-app/Rakefile +0 -0
  70. data/{features/fixtures → fixtures}/cli-app/bin/cli +0 -0
  71. data/{features/fixtures → fixtures}/cli-app/cli-app.gemspec +0 -0
  72. data/{features/fixtures → fixtures}/cli-app/features/support/env.rb +0 -0
  73. data/{features/fixtures → fixtures}/cli-app/lib/cli/app.rb +0 -0
  74. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
  75. data/{features/fixtures → fixtures}/cli-app/lib/cli/app/version.rb +0 -0
  76. data/{features/fixtures/empty-app → fixtures/cli-app}/script/console +3 -3
  77. data/{features/fixtures → fixtures}/cli-app/spec/spec_helper.rb +0 -0
  78. data/{features/fixtures → fixtures}/cli-app/spec/support/aruba.rb +0 -0
  79. data/{features/fixtures → fixtures}/copy/file.txt +0 -0
  80. data/{features/fixtures → fixtures}/empty-app/.gitignore +0 -0
  81. data/{features/fixtures → fixtures}/empty-app/.rspec +0 -0
  82. data/{features/fixtures → fixtures}/empty-app/README.md +0 -0
  83. data/{features/fixtures → fixtures}/empty-app/Rakefile +0 -0
  84. data/{features/fixtures → fixtures}/empty-app/bin/cli +0 -0
  85. data/{features/fixtures → fixtures}/empty-app/cli-app.gemspec +0 -0
  86. data/{features/fixtures → fixtures}/empty-app/lib/cli/app.rb +0 -0
  87. data/{features/fixtures → fixtures}/empty-app/lib/cli/app/version.rb +0 -0
  88. data/{features/fixtures/cli-app → fixtures/empty-app}/script/console +3 -3
  89. data/{features/fixtures → fixtures}/empty-app/spec/spec_helper.rb +0 -0
  90. data/{features/fixtures → fixtures}/fixtures-app/test.txt +0 -0
  91. data/fixtures/getting-started-app/.gitignore +4 -0
  92. data/fixtures/getting-started-app/Gemfile +4 -0
  93. data/fixtures/getting-started-app/README.md +3 -0
  94. data/fixtures/getting-started-app/features/support/env.rb +1 -0
  95. data/{features/fixtures → fixtures}/spawn_process/stderr.sh +0 -0
  96. data/lib/aruba/announcer.rb +6 -2
  97. data/lib/aruba/api.rb +0 -16
  98. data/lib/aruba/api/command.rb +64 -266
  99. data/lib/aruba/api/core.rb +24 -26
  100. data/lib/aruba/api/deprecated.rb +370 -12
  101. data/lib/aruba/api/filesystem.rb +64 -15
  102. data/lib/aruba/aruba_path.rb +4 -0
  103. data/lib/aruba/config.rb +1 -1
  104. data/lib/aruba/cucumber.rb +5 -449
  105. data/lib/aruba/cucumber/command.rb +378 -0
  106. data/lib/aruba/cucumber/core.rb +29 -0
  107. data/lib/aruba/cucumber/environment.rb +30 -0
  108. data/lib/aruba/cucumber/file.rb +210 -0
  109. data/lib/aruba/cucumber/hooks.rb +11 -14
  110. data/lib/aruba/cucumber/rvm.rb +3 -0
  111. data/lib/aruba/matchers/base/base_matcher.rb +94 -0
  112. data/lib/aruba/matchers/collection.rb +1 -0
  113. data/lib/aruba/matchers/collection/all_objects.rb +2 -0
  114. data/lib/aruba/matchers/collection/include_an_object.rb +120 -0
  115. data/lib/aruba/matchers/command/be_successfully_executed.rb +3 -3
  116. data/lib/aruba/matchers/command/have_exit_status.rb +2 -11
  117. data/lib/aruba/matchers/command/have_finished_in_time.rb +5 -5
  118. data/lib/aruba/matchers/command/have_output.rb +46 -0
  119. data/lib/aruba/matchers/command/have_output_on_stderr.rb +42 -0
  120. data/lib/aruba/matchers/command/have_output_on_stdout.rb +42 -0
  121. data/lib/aruba/matchers/command/have_output_size.rb +28 -0
  122. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +1 -1
  123. data/lib/aruba/matchers/file/be_an_existing_file.rb +1 -1
  124. data/lib/aruba/matchers/file/have_file_content.rb +1 -1
  125. data/lib/aruba/matchers/file/have_file_size.rb +2 -2
  126. data/lib/aruba/matchers/file/have_same_file_content.rb +1 -1
  127. data/lib/aruba/matchers/path/have_permissions.rb +1 -1
  128. data/lib/aruba/platforms/aruba_file_creator.rb +2 -3
  129. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -3
  130. data/lib/aruba/platforms/determine_disk_usage.rb +23 -0
  131. data/lib/aruba/platforms/determine_file_size.rb +13 -0
  132. data/lib/aruba/platforms/disk_usage_calculator.rb +11 -0
  133. data/lib/aruba/platforms/local_environment.rb +15 -0
  134. data/lib/aruba/platforms/unix_environment_variables.rb +1 -1
  135. data/lib/aruba/platforms/unix_platform.rb +35 -14
  136. data/lib/aruba/process_monitor.rb +53 -7
  137. data/lib/aruba/processes/basic_process.rb +25 -5
  138. data/lib/aruba/processes/debug_process.rb +27 -25
  139. data/lib/aruba/processes/in_process.rb +7 -22
  140. data/lib/aruba/processes/spawn_process.rb +74 -31
  141. data/lib/aruba/rspec.rb +1 -6
  142. data/lib/aruba/version.rb +1 -1
  143. data/script/console +0 -1
  144. data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
  145. data/spec/aruba/api/environment/set_env_spec.rb +42 -0
  146. data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
  147. data/spec/aruba/api_spec.rb +10 -7
  148. data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
  149. data/spec/aruba/matchers/command_spec.rb +135 -4
  150. data/spec/aruba/spawn_process_spec.rb +1 -1
  151. metadata +107 -65
  152. data/.nav +0 -12
  153. data/features/debug.feature +0 -15
  154. data/features/fixtures/cli-app/spec/cli/app_spec.rb +0 -7
  155. data/features/flushing.feature +0 -26
  156. data/features/interactive.feature +0 -66
  157. data/features/no_clobber.feature +0 -25
  158. data/lib/aruba/disk_usage_calculator.rb +0 -7
@@ -4,18 +4,18 @@ Feature: file system commands
4
4
  As a developer using Cucumber
5
5
  I want to create temporary files
6
6
 
7
- Scenario: create a dir
8
- Given a directory named "foo/bar"
9
- When I run `file foo/bar`
10
- Then the stdout should contain "foo/bar: directory"
11
-
12
- Scenario: create a file
13
- Given a file named "foo/bar/example.txt" with:
14
- """
15
- hello world
16
- """
17
- When I run `cat foo/bar/example.txt`
18
- Then the output should contain exactly "hello world"
7
+ # Scenario: create a dir
8
+ # Given a directory named "foo/bar"
9
+ # When I run `file foo/bar`
10
+ # Then the stdout should contain "foo/bar: directory"
11
+
12
+ # Scenario: create a file
13
+ # Given a file named "foo/bar/example.txt" with:
14
+ # """
15
+ # hello world
16
+ # """
17
+ # When I run `cat foo/bar/example.txt`
18
+ # Then the output should contain exactly "hello world"
19
19
 
20
20
  Scenario: a file does not exist
21
21
  Given a file named "example.txt" does not exist
@@ -0,0 +1,89 @@
1
+ Feature: Supported programming languages
2
+
3
+ As long as you've got the neccessary programs, libraries, runtime
4
+ environments, interpreters installed, it doesn't matter in which programming
5
+ language your commandline application is implemented.
6
+
7
+ Below you find some examples of the "Hello, Aruba!"-application implemented
8
+ with different programming languages. This is NOT an exclusive list. Every
9
+ commandline application should run with `aruba`.
10
+
11
+ Background:
12
+ Given I use a fixture named "getting-started-app"
13
+ And a file named "features/hello_aruba.feature" with:
14
+ """
15
+ Feature: Getting Started With Aruba
16
+ Scenario: First Run of Command
17
+ Given I successfully run `cli`
18
+ Then the output should contain:
19
+ \"\"\"
20
+ Hello, Aruba!
21
+ \"\"\"
22
+ """
23
+
24
+ Scenario: Bash Program
25
+ Given an executable named "bin/cli" with:
26
+ """bash
27
+ #!/usr/bin/env bash
28
+
29
+ echo "Hello, Aruba!"
30
+ """
31
+ When I successfully run `cucumber`
32
+ Then the features should all pass
33
+
34
+ Scenario: Ruby Program
35
+ Given an executable named "bin/cli" with:
36
+ """ruby
37
+ #!/usr/bin/env ruby
38
+
39
+ puts "Hello, Aruba!"
40
+ """
41
+ When I successfully run `cucumber`
42
+ Then the features should all pass
43
+
44
+ Scenario: Python Program
45
+ Given an executable named "bin/cli" with:
46
+ """python
47
+ #!/usr/bin/env python
48
+
49
+ print("Hello, Aruba!")
50
+ """
51
+ When I successfully run `cucumber`
52
+ Then the features should all pass
53
+
54
+ Scenario: Perl Program
55
+ Given an executable named "bin/cli" with:
56
+ """perl
57
+ #!/usr/bin/env perl
58
+
59
+ print "Hello, Aruba!\n";
60
+ """
61
+ When I successfully run `cucumber`
62
+ Then the features should all pass
63
+
64
+ Scenario: Java Program
65
+
66
+ It's even possible to compile and run Java programs with Aruba.
67
+
68
+ Given a file named "features/hello_aruba.feature" with:
69
+ """cucumber
70
+ Feature: Getting Started With Aruba
71
+ Scenario: First Run of Command
72
+ Given a file named "tmp/HelloArubaApp.java" with:
73
+ \"\"\"
74
+ class HelloArubaApp {
75
+ public static void main(String[] args) {
76
+ System.out.println("Hello, Aruba!");
77
+ }
78
+ }
79
+ \"\"\"
80
+ And I successfully run `javac tmp/HelloArubaApp.java`
81
+ And I cd to "tmp/"
82
+ And I successfully run `java HelloArubaApp`
83
+ Then the output should contain:
84
+ \"\"\"
85
+ Hello, Aruba!
86
+ \"\"\"
87
+ """
88
+ When I successfully run `cucumber`
89
+ Then the features should all pass
@@ -22,7 +22,7 @@ Feature: After command hooks
22
22
  RSpec.describe 'Hooks', :type => :aruba do
23
23
  before(:each) { run_simple 'echo running' }
24
24
 
25
- it { expect(last_command.stdout.chomp).to eq 'running' }
25
+ it { expect(last_command_started.stdout.chomp).to eq 'running' }
26
26
  end
27
27
  """
28
28
  When I run `rspec`
@@ -24,7 +24,7 @@ Feature: before_cmd hooks
24
24
  RSpec.describe 'Hooks', :type => :aruba do
25
25
  before(:each) { run_simple 'echo running' }
26
26
 
27
- it { expect(last_command.stdout.chomp).to eq 'running' }
27
+ it { expect(last_command_started.stdout.chomp).to eq 'running' }
28
28
  end
29
29
  """
30
30
  When I run `rspec`
@@ -50,7 +50,7 @@ Feature: before_cmd hooks
50
50
  RSpec.describe 'Hooks', :type => :aruba do
51
51
  before(:each) { run_simple 'echo running' }
52
52
 
53
- it { expect(last_command.stdout.chomp).to eq 'running' }
53
+ it { expect(last_command_started.stdout.chomp).to eq 'running' }
54
54
  end
55
55
  """
56
56
  When I run `rspec`
@@ -0,0 +1,72 @@
1
+ Feature: `include_an_object` Matcher
2
+
3
+ Use the `include_an_object` matcher to specify that a collection's objects include_an_object pass an expected matcher.
4
+ This works on include_an_object enumerable object.
5
+
6
+ ```ruby
7
+ expect([1, 4, 5]).to include_an_object( be_odd )
8
+ expect([1, 3, 'a']).to include_an_object( be_an(Integer) )
9
+ expect([1, 3, 11]).to include_an_object( be < 10 )
10
+ ```
11
+
12
+ The matcher also supports compound matchers:
13
+
14
+ ```ruby
15
+ expect([1, 'a', 11]).to include_an_object( be_odd.and be < 10 )
16
+ ```
17
+
18
+ Background:
19
+ Given I use a fixture named "cli-app"
20
+
21
+ Scenario: Array usage
22
+ Given a file named "spec/array_include_an_object_matcher_spec.rb" with:
23
+ """ruby
24
+ require 'spec_helper'
25
+
26
+ RSpec.describe [1, 4, 'a', 11] do
27
+ it { is_expected.to include_an_object( be_odd ) }
28
+ it { is_expected.to include_an_object( be_an(Integer) ) }
29
+ it { is_expected.to include_an_object( be < 10 ) }
30
+ it { is_expected.not_to include_an_object( eq 'b' ) }
31
+ end
32
+
33
+ RSpec.describe [14, 'a'] do
34
+ it { is_expected.to include_an_object( be_odd ) }
35
+ it { is_expected.to include_an_object( be_an(Symbol) ) }
36
+ it { is_expected.to include_an_object( be < 10 ) }
37
+ it { is_expected.not_to include_an_object( eq 'a' ) }
38
+ end
39
+ """
40
+ When I run `rspec`
41
+ Then the output should contain all of these lines:
42
+ | 8 examples, 4 failures |
43
+ | expected [14, "a"] to include an object be odd |
44
+ | expected [14, "a"] to include an object be a kind of Symbol |
45
+ | expected [14, "a"] to include an object be < 10 |
46
+ | expected [14, "a"] not to include an object eq "a" |
47
+
48
+ Scenario: Compound Matcher Usage
49
+ Given a file named "spec/compound_include_an_object_matcher_spec.rb" with:
50
+ """ruby
51
+ require 'spec_helper'
52
+
53
+ RSpec.describe [1, 'anything', 'something'] do
54
+ it { is_expected.to include_an_object( be_a(String).and include("thing") ) }
55
+ it { is_expected.to include_an_object( be_a(String).and end_with("g") ) }
56
+ it { is_expected.to include_an_object( start_with("s").or include("y") ) }
57
+ it { is_expected.not_to include_an_object( start_with("b").or include("b") ) }
58
+ end
59
+
60
+ RSpec.describe ['anything', 'something'] do
61
+ it { is_expected.to include_an_object( be_a(Integer).and include("thing") ) }
62
+ it { is_expected.to include_an_object( be_a(Integer).and end_with("z") ) }
63
+ it { is_expected.to include_an_object( start_with("z").or include("1") ) }
64
+ it { is_expected.not_to include_an_object( start_with("a").or include("some") ) }
65
+ end
66
+ """
67
+ When I run `rspec`
68
+ Then the output should contain all of these lines:
69
+ | 8 examples, 4 failures |
70
+ | expected ["anything", "something"] to include an object be a kind of Integer and include "thing" |
71
+ | expected ["anything", "something"] to include an object be a kind of Integer and end with "z" |
72
+ | expected ["anything", "something"] to include an object start with "z" or include "1" |
@@ -20,7 +20,7 @@ Feature: Check if a timeout occured during command execution
20
20
 
21
21
  before(:each) { run('cli') }
22
22
 
23
- it { expect(last_command).to run_too_long }
23
+ it { expect(last_command_started).to run_too_long }
24
24
  end
25
25
  """
26
26
  When I run `rspec`
@@ -41,7 +41,7 @@ Feature: Check if a timeout occured during command execution
41
41
 
42
42
  before(:each) { run('cli') }
43
43
 
44
- it { expect(last_command).to have_finished_in_time }
44
+ it { expect(last_command_started).to have_finished_in_time }
45
45
  end
46
46
  """
47
47
  When I run `rspec`
@@ -1,184 +1,47 @@
1
- Feature: Output
1
+ Feature: All output of commands which were executed
2
2
 
3
3
  In order to specify expected output
4
4
  As a developer using Cucumber
5
5
  I want to use the "the output should contain" step
6
6
 
7
- @posix
8
- Scenario: Detect subset of one-line output
9
- When I run `printf 'hello world'`
10
- Then the output should contain "hello world"
7
+ Background:
8
+ Given I use a fixture named "cli-app"
9
+
10
+ Scenario: Detect output from all processes normal and interactive ones
11
+ Given an executable named "bin/cli1" with:
12
+ """
13
+ #!/usr/bin/env bash
14
+ echo 'This is cli1'
15
+ """
16
+ And an executable named "bin/cli2" with:
17
+ """
18
+ #!/usr/bin/env ruby
19
+
20
+ while input = gets do
21
+ break if "" == input
22
+ puts input
23
+ end
24
+ """
25
+ And a file named "features/output.feature" with:
26
+ """
27
+ Feature: Run command
28
+ Scenario: Run command
29
+ When I run `cli1`
30
+ When I run `cli2` interactively
31
+ And I type "This is cli2"
32
+ And I type ""
33
+ Then the stdout should contain exactly:
34
+ \"\"\"
35
+ This is cli1
36
+ \"\"\"
37
+ And the stdout should contain exactly:
38
+ \"\"\"
39
+ This is cli2
40
+ \"\"\"
41
+ """
42
+ When I run `cucumber`
43
+ Then the features should all pass
11
44
 
12
- Scenario: Detect absence of one-line output
13
- When I run `printf "hello world"`
14
- Then the output should not contain "good-bye"
15
-
16
- Scenario: Detect subset of multiline output
17
- When I run `printf "hello\nworld"`
18
- Then the output should contain:
19
- """
20
- hello
21
- """
22
-
23
- Scenario: Detect absence of multiline output
24
- When I run `printf "hello\nworld"`
25
- Then the output should not contain:
26
- """
27
- good-bye
28
- """
29
-
30
- @posix
31
- Scenario: Detect exact one-line output
32
- When I run `printf "hello world"`
33
- Then the output should contain exactly:
34
- """
35
- hello world
36
- """
37
-
38
- @ansi
39
- @posix
40
- Scenario: Detect exact one-line output with ANSI output
41
- When I run `printf "\e[36mhello world\e[0m"`
42
- Then the output should contain exactly:
43
- """
44
- \e[36mhello world\e[0m
45
- """
46
-
47
- @posix
48
- Scenario: Detect exact one-line output with ANSI output stripped by default
49
- When I run `printf "\e[36mhello world\e[0m"`
50
- Then the output should contain exactly:
51
- """
52
- hello world
53
- """
54
-
55
- @posix
56
- Scenario: Detect exact multiline output
57
- When I run `printf "hello\nworld"`
58
- Then the output should contain exactly:
59
- """
60
- hello
61
- world
62
- """
63
-
64
- @announce
65
- Scenario: Detect subset of one-line output with regex
66
- When I run `printf "hello, ruby"`
67
- Then the output should contain "ruby"
68
- And the output should match /^hello(, world)?/
69
-
70
- @announce
71
- @posix
72
- Scenario: Detect subset of multiline output with regex
73
- When I run `printf "hello\nworld\nextra line1\nextra line2\nimportant line"`
74
- Then the output should match:
75
- """
76
- he..o
77
- wor.d
78
- .*
79
- important line
80
- """
81
-
82
- @announce
83
- Scenario: Negative matching of one-line output with regex
84
- When I run `printf "hello, ruby"`
85
- Then the output should contain "ruby"
86
- And the output should not match /ruby is a better perl$/
87
-
88
- @announce
89
- @posix
90
- Scenario: Negative matching of multiline output with regex
91
- When I run `printf "hello\nworld\nextra line1\nextra line2\nimportant line"`
92
- Then the output should not match:
93
- """
94
- ruby
95
- is
96
- a
97
- .*
98
- perl
99
- """
100
-
101
- @announce
102
- @posix
103
- Scenario: Match passing exit status and partial output
104
- When I run `printf "hello\nworld"`
105
- Then it should pass with:
106
- """
107
- hello
108
- """
109
-
110
- @posix
111
- Scenario: Match passing exit status and exact output
112
- When I run `printf "hello\nworld"`
113
- Then it should pass with exactly:
114
- """
115
- hello
116
- world
117
- """
118
-
119
- @announce-stdout
120
- Scenario: Match failing exit status and partial output
121
- When I run `bash -c '(printf "hello\nworld";exit 99)'`
122
- Then it should fail with:
123
- """
124
- hello
125
- """
126
-
127
- @posix
128
- Scenario: Match failing exit status and exact output
129
- When I run `bash -c '(printf "hello\nworld";exit 99)'`
130
- Then it should fail with exactly:
131
- """
132
- hello
133
- world
134
- """
135
-
136
- @announce-stdout
137
- @posix
138
- Scenario: Match failing exit status and output with regex
139
- When I run `bash -c '(printf "hello\nworld";exit 99)'`
140
- Then it should fail with regex:
141
- """
142
- hello\s*world
143
- """
144
-
145
- @announce-cmd
146
- @posix
147
- Scenario: Match output in stdout
148
- When I run `printf "hello\nworld"`
149
- Then the stdout should contain "hello"
150
- Then the stderr should not contain "hello"
151
-
152
- @announce
153
- Scenario: Match output on several lines
154
- When I run `printf 'GET /'`
155
- Then the stdout should contain:
156
- """
157
- GET /
158
- """
159
-
160
- @posix
161
- Scenario: Match output on several lines using quotes
162
- When I run `printf 'GET "/"'`
163
- Then the stdout should contain:
164
- """
165
- GET "/"
166
- """
167
-
168
- @posix
169
- Scenario: Detect output from all processes
170
- When I run `printf "hello world!\n"`
171
- And I run `cat` interactively
172
- And I type "hola"
173
- And I type ""
174
- Then the output should contain exactly:
175
- """
176
- hello world!
177
- hola
178
-
179
- """
180
-
181
- @posix
182
45
  Scenario: Detect stdout from all processes
183
46
  When I run `printf "hello world!\n"`
184
47
  And I run `cat` interactively
@@ -187,22 +50,38 @@ Feature: Output
187
50
  Then the stdout should contain:
188
51
  """
189
52
  hello world!
53
+ """
54
+ And the stdout should contain:
55
+ """
190
56
  hola
191
-
192
57
  """
193
58
  And the stderr should not contain anything
194
59
 
195
- @posix
196
60
  Scenario: Detect stderr from all processes
197
61
  When I run `bash -c 'printf "hello world!\n" >&2'`
198
62
  And I run `bash -c 'cat >&2 '` interactively
199
63
  And I type "hola"
200
64
  And I type ""
201
65
  Then the stderr should contain:
202
- """
203
- hello world!
204
- hola
205
- """
66
+ """
67
+ hello world!
68
+ """
69
+ And the stderr should contain:
70
+ """
71
+ hola
72
+ """
73
+ And the stdout should not contain anything
74
+
75
+ Scenario: Detect stderr from all processes (deprecated)
76
+ When I run `bash -c 'printf "hello world!\n" >&2'`
77
+ And I run `bash -c 'cat >&2 '` interactively
78
+ And I type "hola"
79
+ And I type ""
80
+ Then the stderr should contain:
81
+ """
82
+ hello world!
83
+ hola
84
+ """
206
85
  And the stdout should not contain anything
207
86
 
208
87
  Scenario: Detect output from named source