aruba 0.14.9 → 1.0.0

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 (309) hide show
  1. checksums.yaml +4 -4
  2. data/.cucumberproignore +3 -0
  3. data/.github/ISSUE_TEMPLATE.md +48 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +41 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +1 -1
  7. data/.rubocop.yml +20 -179
  8. data/.rubocop_todo.yml +262 -0
  9. data/.simplecov +7 -5
  10. data/.travis.yml +54 -46
  11. data/.yardopts +3 -0
  12. data/CHANGELOG.md +613 -246
  13. data/CONTRIBUTING.md +247 -45
  14. data/Dockerfile +67 -0
  15. data/Gemfile +5 -96
  16. data/LICENSE +1 -1
  17. data/README.md +57 -180
  18. data/Rakefile +63 -32
  19. data/appveyor.yml +8 -11
  20. data/aruba.gemspec +47 -41
  21. data/bin/console +7 -0
  22. data/bin/test +9 -0
  23. data/cucumber.yml +4 -24
  24. data/doc/dependency_decisions.yml +42 -2
  25. data/docker-compose.yml +26 -0
  26. data/{bin → exe}/aruba +1 -1
  27. data/fixtures/cli-app/Rakefile +1 -1
  28. data/fixtures/cli-app/bin/aruba-test-cli +6 -0
  29. data/fixtures/cli-app/cli-app.gemspec +1 -2
  30. data/fixtures/cli-app/features/support/aruba.rb +1 -0
  31. data/fixtures/cli-app/features/support/env.rb +1 -1
  32. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
  33. data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
  34. data/fixtures/cli-app/lib/cli/app.rb +1 -5
  35. data/fixtures/cli-app/spec/spec_helper.rb +4 -6
  36. data/fixtures/empty-app/Rakefile +1 -1
  37. data/fixtures/empty-app/cli-app.gemspec +1 -2
  38. data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
  39. data/fixtures/empty-app/lib/cli/app.rb +0 -6
  40. data/fixtures/getting-started-app/Gemfile +1 -1
  41. data/lib/aruba/api/commands.rb +109 -143
  42. data/lib/aruba/api/core.rb +57 -43
  43. data/lib/aruba/api/environment.rb +16 -7
  44. data/lib/aruba/api/filesystem.rb +42 -29
  45. data/lib/aruba/api/text.rb +3 -9
  46. data/lib/aruba/api.rb +6 -11
  47. data/lib/aruba/aruba_path.rb +27 -89
  48. data/lib/aruba/basic_configuration.rb +4 -24
  49. data/lib/aruba/cli.rb +1 -1
  50. data/lib/aruba/colorizer.rb +10 -99
  51. data/lib/aruba/command.rb +2 -0
  52. data/lib/aruba/config/jruby.rb +15 -5
  53. data/lib/aruba/config_wrapper.rb +1 -1
  54. data/lib/aruba/configuration.rb +92 -0
  55. data/lib/aruba/console/help.rb +1 -7
  56. data/lib/aruba/console.rb +5 -5
  57. data/lib/aruba/contracts/absolute_path.rb +2 -2
  58. data/lib/aruba/contracts/relative_path.rb +2 -2
  59. data/lib/aruba/cucumber/command.rb +171 -160
  60. data/lib/aruba/cucumber/environment.rb +1 -1
  61. data/lib/aruba/cucumber/file.rb +21 -35
  62. data/lib/aruba/cucumber/hooks.rb +17 -56
  63. data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
  64. data/lib/aruba/cucumber.rb +0 -5
  65. data/lib/aruba/event_bus/name_resolver.rb +5 -16
  66. data/lib/aruba/hooks.rb +1 -1
  67. data/lib/aruba/in_config_wrapper.rb +5 -1
  68. data/lib/aruba/initializer.rb +36 -42
  69. data/lib/aruba/matchers/base/base_matcher.rb +2 -2
  70. data/lib/aruba/matchers/base/message_indenter.rb +19 -0
  71. data/lib/aruba/matchers/base/object_formatter.rb +2 -9
  72. data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
  73. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  74. data/lib/aruba/matchers/command/have_exit_status.rb +14 -4
  75. data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -5
  76. data/lib/aruba/matchers/command/have_output.rb +10 -5
  77. data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -2
  78. data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -2
  79. data/lib/aruba/matchers/command/have_output_size.rb +2 -2
  80. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +5 -7
  81. data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
  82. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
  83. data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
  84. data/lib/aruba/matchers/file/be_an_existing_file.rb +5 -7
  85. data/lib/aruba/matchers/file/have_file_content.rb +4 -4
  86. data/lib/aruba/matchers/file/have_file_size.rb +6 -8
  87. data/lib/aruba/matchers/file/have_same_file_content.rb +5 -8
  88. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
  89. data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
  90. data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
  91. data/lib/aruba/matchers/path/have_permissions.rb +6 -8
  92. data/lib/aruba/matchers/string/include_output_string.rb +8 -10
  93. data/lib/aruba/matchers/string/match_output_string.rb +9 -11
  94. data/lib/aruba/matchers/string/output_string_eq.rb +7 -9
  95. data/lib/aruba/platform.rb +0 -8
  96. data/lib/aruba/platforms/announcer.rb +42 -79
  97. data/lib/aruba/platforms/aruba_file_creator.rb +2 -6
  98. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
  99. data/lib/aruba/platforms/aruba_logger.rb +23 -7
  100. data/lib/aruba/platforms/command_monitor.rb +12 -107
  101. data/lib/aruba/platforms/determine_disk_usage.rb +56 -14
  102. data/lib/aruba/platforms/filesystem_status.rb +10 -14
  103. data/lib/aruba/platforms/local_environment.rb +2 -2
  104. data/lib/aruba/platforms/simple_table.rb +3 -11
  105. data/lib/aruba/platforms/unix_command_string.rb +7 -11
  106. data/lib/aruba/platforms/unix_environment_variables.rb +18 -27
  107. data/lib/aruba/platforms/unix_platform.rb +20 -51
  108. data/lib/aruba/platforms/unix_which.rb +2 -1
  109. data/lib/aruba/platforms/windows_command_string.rb +15 -10
  110. data/lib/aruba/platforms/windows_environment_variables.rb +43 -44
  111. data/lib/aruba/platforms/windows_platform.rb +4 -0
  112. data/lib/aruba/platforms/windows_which.rb +4 -3
  113. data/lib/aruba/processes/basic_process.rb +28 -30
  114. data/lib/aruba/processes/debug_process.rb +12 -3
  115. data/lib/aruba/processes/in_process.rb +17 -8
  116. data/lib/aruba/processes/spawn_process.rb +57 -46
  117. data/lib/aruba/rspec.rb +14 -36
  118. data/lib/aruba/runtime.rb +3 -6
  119. data/lib/aruba/setup.rb +6 -6
  120. data/lib/aruba/tasks/docker_helpers.rb +154 -0
  121. data/lib/aruba/version.rb +1 -1
  122. metadata +191 -244
  123. data/features/.nav +0 -72
  124. data/features/api/command/find_command.feature +0 -83
  125. data/features/api/command/last_command_started.feature +0 -50
  126. data/features/api/command/last_command_stopped.feature +0 -89
  127. data/features/api/command/run.feature +0 -414
  128. data/features/api/command/run_simple.feature +0 -242
  129. data/features/api/command/send_signal.feature +0 -53
  130. data/features/api/command/stderr.feature +0 -46
  131. data/features/api/command/stdout.feature +0 -46
  132. data/features/api/command/stop.feature +0 -131
  133. data/features/api/command/stop_all_commands.feature +0 -53
  134. data/features/api/command/terminate_all_commands.feature +0 -53
  135. data/features/api/command/which.feature +0 -37
  136. data/features/api/core/expand_path.feature +0 -88
  137. data/features/api/environment/append_environment_variable.feature +0 -128
  138. data/features/api/environment/delete_environment_variable.feature +0 -63
  139. data/features/api/environment/prepend_environment_variable.feature +0 -128
  140. data/features/api/environment/set_environment_variable.feature +0 -376
  141. data/features/api/filesystem/cd.feature +0 -184
  142. data/features/api/filesystem/create_directory.feature +0 -57
  143. data/features/api/filesystem/disk_usage.feature +0 -152
  144. data/features/api/filesystem/does_exist.feature +0 -62
  145. data/features/api/filesystem/fixtures.feature +0 -104
  146. data/features/api/filesystem/is_absolute.feature +0 -48
  147. data/features/api/filesystem/is_directory.feature +0 -53
  148. data/features/api/filesystem/is_file.feature +0 -54
  149. data/features/api/filesystem/is_relative.feature +0 -48
  150. data/features/api/filesystem/move.feature +0 -119
  151. data/features/api/text/extract_text.feature +0 -87
  152. data/features/api/text/replace_variables.feature +0 -45
  153. data/features/api/text/sanitize_text.feature +0 -228
  154. data/features/api/text/unescape_text.feature +0 -127
  155. data/features/cli/console.feature +0 -52
  156. data/features/cli/init.feature +0 -79
  157. data/features/configuration/activate_announcer_on_command_failure.feature +0 -38
  158. data/features/configuration/command_runtime_environment.feature +0 -129
  159. data/features/configuration/console_history_file.feature +0 -38
  160. data/features/configuration/exit_timeout.feature +0 -52
  161. data/features/configuration/fixtures_directories.feature +0 -38
  162. data/features/configuration/fixtures_path_prefix.feature +0 -23
  163. data/features/configuration/home_directory.feature +0 -80
  164. data/features/configuration/io_timeout.feature +0 -30
  165. data/features/configuration/keep_ansi.feature +0 -30
  166. data/features/configuration/log_level.feature +0 -38
  167. data/features/configuration/physical_block_size.feature +0 -53
  168. data/features/configuration/remove_ansi_escape_sequences.feature +0 -38
  169. data/features/configuration/root_directory.feature +0 -30
  170. data/features/configuration/startup_wait_time.feature +0 -48
  171. data/features/configuration/usage.feature +0 -159
  172. data/features/configuration/working_directory.feature +0 -33
  173. data/features/development/build.feature +0 -15
  174. data/features/getting_started/cleanup.feature +0 -58
  175. data/features/getting_started/run_commands.feature +0 -187
  176. data/features/getting_started/supported_testing_frameworks.feature +0 -104
  177. data/features/getting_started/writing_good_feature_tests.feature +0 -38
  178. data/features/hooks/after/command.feature +0 -46
  179. data/features/hooks/before/command.feature +0 -75
  180. data/features/matchers/collection/include_an_object.feature +0 -72
  181. data/features/matchers/directory/have_sub_directory.feature +0 -110
  182. data/features/matchers/file/be_a_command_found_in_path.feature +0 -115
  183. data/features/matchers/file/be_existing_executable.feature +0 -88
  184. data/features/matchers/file/be_existing_file.feature +0 -82
  185. data/features/matchers/file/have_file_content.feature +0 -123
  186. data/features/matchers/file/have_file_size.feature +0 -107
  187. data/features/matchers/path/be_an_absolute_path.feature +0 -74
  188. data/features/matchers/path/be_an_existing_path.feature +0 -97
  189. data/features/matchers/path/have_permissions.feature +0 -118
  190. data/features/matchers/timeouts.feature +0 -48
  191. data/features/platforms/jruby.feature +0 -14
  192. data/features/rspec/integration.feature +0 -179
  193. data/features/step_definitions/aruba_dev_steps.rb +0 -56
  194. data/features/step_definitions/hooks.rb +0 -156
  195. data/features/steps/command/debug.feature +0 -92
  196. data/features/steps/command/exit_statuses.feature +0 -136
  197. data/features/steps/command/in_process.feature +0 -485
  198. data/features/steps/command/interactive.feature +0 -90
  199. data/features/steps/command/output.feature +0 -567
  200. data/features/steps/command/run.feature +0 -66
  201. data/features/steps/command/send_signal.feature +0 -104
  202. data/features/steps/command/shell.feature +0 -155
  203. data/features/steps/command/stderr.feature +0 -68
  204. data/features/steps/command/stdout.feature +0 -109
  205. data/features/steps/command/stop.feature +0 -313
  206. data/features/steps/core/announce.feature +0 -283
  207. data/features/steps/environment/append_environment_variable.feature +0 -52
  208. data/features/steps/environment/disable_bunder.feature +0 -18
  209. data/features/steps/environment/home_variable.feature +0 -62
  210. data/features/steps/environment/prepend_environment_variable.feature +0 -52
  211. data/features/steps/environment/set_environment_variable.feature +0 -49
  212. data/features/steps/filesystem/append_to_file.feature +0 -45
  213. data/features/steps/filesystem/cd_to_directory.feature +0 -33
  214. data/features/steps/filesystem/check_file_content.feature +0 -61
  215. data/features/steps/filesystem/check_permissions_of_file.feature +0 -39
  216. data/features/steps/filesystem/compare_files.feature +0 -42
  217. data/features/steps/filesystem/copy.feature +0 -45
  218. data/features/steps/filesystem/create_directory.feature +0 -57
  219. data/features/steps/filesystem/create_file.feature +0 -76
  220. data/features/steps/filesystem/existence_of_directory.feature +0 -57
  221. data/features/steps/filesystem/existence_of_file.feature +0 -43
  222. data/features/steps/filesystem/file_content.feature +0 -86
  223. data/features/steps/filesystem/fixtures.feature +0 -64
  224. data/features/steps/filesystem/move.feature +0 -45
  225. data/features/steps/filesystem/non_existence_of_directory.feature +0 -69
  226. data/features/steps/filesystem/non_existence_of_file.feature +0 -80
  227. data/features/steps/filesystem/overwrite_file.feature +0 -72
  228. data/features/steps/filesystem/remove_directory.feature +0 -38
  229. data/features/steps/filesystem/remove_file.feature +0 -38
  230. data/features/steps/filesystem/use_fixture.feature +0 -77
  231. data/features/steps/overview.feature +0 -25
  232. data/features/support/aruba.rb +0 -7
  233. data/features/support/env.rb +0 -33
  234. data/features/support/jruby.rb +0 -5
  235. data/features/support/simplecov_setup.rb +0 -8
  236. data/fixtures/cli-app/bin/cli +0 -6
  237. data/fixtures/spawn_process/stderr.sh +0 -3
  238. data/lib/aruba/api/deprecated.rb +0 -1234
  239. data/lib/aruba/config.rb +0 -107
  240. data/lib/aruba/cucumber/core.rb +0 -5
  241. data/lib/aruba/cucumber/rvm.rb +0 -3
  242. data/lib/aruba/in_process.rb +0 -14
  243. data/lib/aruba/jruby.rb +0 -4
  244. data/lib/aruba/matchers/deprecated/file.rb +0 -17
  245. data/lib/aruba/matchers/deprecated.rb +0 -1
  246. data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
  247. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
  249. data/lib/aruba/reporting.rb +0 -126
  250. data/lib/aruba/spawn_process.rb +0 -11
  251. data/script/bootstrap +0 -28
  252. data/script/console +0 -16
  253. data/script/test +0 -3
  254. data/spec/aruba/api/bundler_spec.rb +0 -15
  255. data/spec/aruba/api/deprecated_spec.rb +0 -308
  256. data/spec/aruba/api/environment/restore_env_spec.rb +0 -86
  257. data/spec/aruba/api/environment/set_env_spec.rb +0 -46
  258. data/spec/aruba/api/filesystem/file_size_spec.rb +0 -28
  259. data/spec/aruba/api/runtime_spec.rb +0 -28
  260. data/spec/aruba/api_spec.rb +0 -981
  261. data/spec/aruba/aruba_path_spec.rb +0 -103
  262. data/spec/aruba/basic_configuration_spec.rb +0 -5
  263. data/spec/aruba/configuration_spec.rb +0 -5
  264. data/spec/aruba/hooks_spec.rb +0 -17
  265. data/spec/aruba/in_config_wrapper_spec.rb +0 -25
  266. data/spec/aruba/jruby_spec.rb +0 -55
  267. data/spec/aruba/matchers/command/have_output_size_spec.rb +0 -25
  268. data/spec/aruba/matchers/command_spec.rb +0 -174
  269. data/spec/aruba/matchers/deprecated_spec.rb +0 -120
  270. data/spec/aruba/matchers/directory_spec.rb +0 -57
  271. data/spec/aruba/matchers/file_spec.rb +0 -208
  272. data/spec/aruba/matchers/path_spec.rb +0 -58
  273. data/spec/aruba/platform/simple_table_spec.rb +0 -23
  274. data/spec/aruba/platform/windows_environment_variables_spec.rb +0 -500
  275. data/spec/aruba/platforms/unix_command_string_spec.rb +0 -17
  276. data/spec/aruba/platforms/windows_command_string_spec.rb +0 -22
  277. data/spec/aruba/rspec_spec.rb +0 -15
  278. data/spec/aruba/runtime_spec.rb +0 -29
  279. data/spec/aruba/spawn_process_spec.rb +0 -96
  280. data/spec/event_bus/name_resolver_spec.rb +0 -68
  281. data/spec/event_bus_spec.rb +0 -158
  282. data/spec/spec_helper.rb +0 -20
  283. data/spec/support/configs/.keep +0 -0
  284. data/spec/support/configs/aruba.rb +0 -5
  285. data/spec/support/configs/pry.rb +0 -3
  286. data/spec/support/configs/rspec.rb +0 -15
  287. data/spec/support/helpers/.keep +0 -0
  288. data/spec/support/helpers/reporting.rb +0 -44
  289. data/spec/support/matchers/.keep +0 -0
  290. data/spec/support/matchers/option.rb +0 -35
  291. data/spec/support/shared_contexts/.keep +0 -0
  292. data/spec/support/shared_contexts/aruba.rb +0 -49
  293. data/spec/support/shared_examples/.keep +0 -0
  294. data/spec/support/shared_examples/configuration.rb +0 -116
  295. data/spec/support/shared_examples/directory.rb +0 -7
  296. data/spec/support/shared_examples/file.rb +0 -7
  297. data/templates/css/console.css +0 -24
  298. data/templates/css/filesystem.css +0 -42
  299. data/templates/css/pygments-autumn.css +0 -59
  300. data/templates/files.erb +0 -14
  301. data/templates/images/LICENSE +0 -22
  302. data/templates/images/folder.png +0 -0
  303. data/templates/images/page_white.png +0 -0
  304. data/templates/images/page_white_gherkin.png +0 -0
  305. data/templates/images/page_white_ruby.png +0 -0
  306. data/templates/index.erb +0 -20
  307. data/templates/js/filesystem.js +0 -5
  308. data/templates/js/jquery-1.11.3.min.js +0 -5
  309. data/templates/main.erb +0 -34
@@ -1,567 +0,0 @@
1
- Feature: All output of commands which were executed
2
-
3
- In order to specify expected output
4
- As a developer using Cucumber
5
- I want to use the "the output should contain" step
6
-
7
- Background:
8
- Given I use a fixture named "cli-app"
9
-
10
- Scenario: Detect subset of one-line output
11
- Given an executable named "bin/cli" with:
12
- """bash
13
- #!/usr/bin/env bash
14
-
15
- echo 'hello world'
16
- """
17
- And a file named "features/output.feature" with:
18
- """cucumber
19
- Feature: Run command
20
- Scenario: Run command
21
- When I run `cli`
22
- Then the output should contain "hello world"
23
- """
24
- When I run `cucumber`
25
- Then the features should all pass
26
-
27
- Scenario: Detect absence of one-line output
28
- Given an executable named "bin/cli" with:
29
- """bash
30
- #!/usr/bin/env bash
31
-
32
- echo 'hello world'
33
- """
34
- And a file named "features/output.feature" with:
35
- """cucumber
36
- Feature: Run command
37
- Scenario: Run command
38
- When I run `cli`
39
- Then the output should not contain "good-bye"
40
- """
41
- When I run `cucumber`
42
- Then the features should all pass
43
-
44
- Scenario: Detect subset of multiline output
45
- Given an executable named "bin/cli" with:
46
- """bash
47
- #!/usr/bin/env bash
48
-
49
- echo -e "hello\nworld"
50
- """
51
- And a file named "features/output.feature" with:
52
- """cucumber
53
- Feature: Run command
54
- Scenario: Run command
55
- When I run `cli`
56
- Then the output should contain:
57
- \"\"\"
58
- hello
59
- \"\"\"
60
- """
61
- When I run `cucumber`
62
- Then the features should all pass
63
-
64
- Scenario: Detect absence of subset of multiline output
65
- Given an executable named "bin/cli" with:
66
- """bash
67
- #!/usr/bin/env bash
68
-
69
- echo -e "hello\nworld"
70
- """
71
- And a file named "features/output.feature" with:
72
- """cucumber
73
- Feature: Run command
74
- Scenario: Run command
75
- When I run `cli`
76
- Then the output should not contain:
77
- \"\"\"
78
- good-bye
79
- \"\"\"
80
- """
81
- When I run `cucumber`
82
- Then the features should all pass
83
-
84
- Scenario: Detect exact one-line output
85
- Given a file named "features/output.feature" with:
86
- """cucumber
87
- Feature: Run command
88
- Scenario: Run command
89
- When I run `echo 'hello world'`
90
- Then the output should contain exactly:
91
- \"\"\"
92
- hello world
93
- \"\"\"
94
- """
95
- When I run `cucumber`
96
- Then the features should all pass
97
-
98
- Scenario: Detect exact one-line output with ANSI output
99
- Given an executable named "bin/cli" with:
100
- """bash
101
- #!/usr/bin/env bash
102
-
103
- echo -e "\e[36mhello world\e[0m"
104
- """
105
- And a file named "features/output.feature" with:
106
- """cucumber
107
- Feature: Run command
108
- @keep-ansi-escape-sequences
109
- Scenario: Run command
110
- When I run `cli`
111
- Then the output should contain exactly:
112
- \"\"\"
113
- \e[36mhello world\e[0m
114
- \"\"\"
115
- """
116
- When I run `cucumber`
117
- Then the features should all pass
118
-
119
- Scenario: Detect exact one-line output with ANSI output stripped by default
120
- Given the default aruba exit timeout is 12 seconds
121
- Given an executable named "bin/cli" with:
122
- """bash
123
- #!/usr/bin/env bash
124
-
125
- echo -e "\e[36mhello world\e[0m"
126
- """
127
- And a file named "features/output.feature" with:
128
- """cucumber
129
- Feature: Run command
130
- Scenario: Run command
131
- When I run `cli`
132
- Then the output should contain exactly:
133
- \"\"\"
134
- hello world
135
- \"\"\"
136
- """
137
- When I run `cucumber`
138
- Then the features should all pass
139
-
140
- Scenario: Detect exact multiline output
141
- Given an executable named "bin/cli" with:
142
- """bash
143
- #!/usr/bin/env bash
144
-
145
- echo -ne "hello\nworld"
146
- """
147
- And a file named "features/output.feature" with:
148
- """cucumber
149
- Feature: Run command
150
- Scenario: Run command
151
- When I run `cli`
152
- Then the output should contain exactly:
153
- \"\"\"
154
- hello
155
- world
156
- \"\"\"
157
- """
158
- When I run `cucumber`
159
- Then the features should all pass
160
-
161
- Scenario: Detect subset of one-line output
162
- Given an executable named "bin/cli" with:
163
- """bash
164
- #!/usr/bin/env bash
165
-
166
- echo 'hello world'
167
- """
168
- And a file named "features/output.feature" with:
169
- """cucumber
170
- Feature: Run command
171
- Scenario: Run command
172
- When I run `cli`
173
- Then the output should contain "hello world"
174
- """
175
- When I run `cucumber`
176
- Then the features should all pass
177
-
178
- Scenario: Detect subset of one-line output with regex
179
- Given an executable named "bin/cli" with:
180
- """bash
181
- #!/usr/bin/env bash
182
-
183
- echo 'hello, ruby'
184
- """
185
- And a file named "features/output.feature" with:
186
- """cucumber
187
- Feature: Run command
188
- Scenario: Run command
189
- When I run `cli`
190
- Then the output should match /^hello(, world)?/
191
- """
192
- When I run `cucumber`
193
- Then the features should all pass
194
-
195
- Scenario: Detect subset of multiline output with regex
196
- Given an executable named "bin/cli" with:
197
- """bash
198
- #!/usr/bin/env bash
199
-
200
- echo -e "hello\nworld\nextra line1\nextra line2\nimportant line"
201
- """
202
- And a file named "features/output.feature" with:
203
- """cucumber
204
- Feature: Run command
205
- Scenario: Run command
206
- When I run `cli`
207
- Then the output should match:
208
- \"\"\"
209
- he..o
210
- wor.d
211
- .*
212
- important line
213
- \"\"\"
214
- """
215
- When I run `cucumber`
216
- Then the features should all pass
217
-
218
- Scenario: Negative matching of one-line output with regex
219
- Given an executable named "bin/cli" with:
220
- """bash
221
- #!/usr/bin/env bash
222
-
223
- echo "hello, ruby"
224
- """
225
- And a file named "features/output.feature" with:
226
- """cucumber
227
- Feature: Run command
228
- Scenario: Run command
229
- When I run `cli`
230
- Then the output should not match /ruby is a better perl$/
231
- """
232
- When I run `cucumber`
233
- Then the features should all pass
234
-
235
- Scenario: Negative matching of multiline output with regex
236
- Given an executable named "bin/cli" with:
237
- """bash
238
- #!/usr/bin/env bash
239
-
240
- echo -e "hello\nworld\nextra line1\nextra line2\nimportant line"
241
- """
242
- And a file named "features/output.feature" with:
243
- """cucumber
244
- Feature: Run command
245
- Scenario: Run command
246
- When I run `cli`
247
- Then the output should not match:
248
- \"\"\"
249
- ruby
250
- is
251
- a
252
- .*
253
- perl
254
- \"\"\"
255
- """
256
- When I run `cucumber`
257
- Then the features should all pass
258
-
259
- Scenario: Match passing exit status and partial output
260
- Given an executable named "bin/cli" with:
261
- """bash
262
- #!/usr/bin/env bash
263
-
264
- echo "hello world"
265
- exit 0
266
- """
267
- And a file named "features/output.feature" with:
268
- """cucumber
269
- Feature: Run command
270
- Scenario: Run command
271
- When I run `cli`
272
- Then it should pass with:
273
- \"\"\"
274
- hello
275
- \"\"\"
276
- """
277
- When I run `cucumber`
278
- Then the features should all pass
279
-
280
- Scenario: Match passing exit status and exact output
281
- Given an executable named "bin/cli" with:
282
- """bash
283
- #!/usr/bin/env bash
284
-
285
- echo -ne "hello\nworld"
286
- exit 0
287
- """
288
- And a file named "features/output.feature" with:
289
- """cucumber
290
- Feature: Run command
291
- Scenario: Run command
292
- When I run `cli`
293
- Then it should pass with exactly:
294
- \"\"\"
295
- hello
296
- world
297
- \"\"\"
298
- """
299
- When I run `cucumber`
300
- Then the features should all pass
301
-
302
- Scenario: Match failing exit status and partial output
303
- Given an executable named "bin/cli" with:
304
- """bash
305
- #!/usr/bin/env bash
306
-
307
- echo -e "hello\nworld"
308
- exit 1
309
- """
310
- And a file named "features/output.feature" with:
311
- """cucumber
312
- Feature: Run command
313
- Scenario: Run command
314
- When I run `cli`
315
- Then it should fail with:
316
- \"\"\"
317
- hello
318
- \"\"\"
319
- """
320
- When I run `cucumber`
321
- Then the features should all pass
322
-
323
-
324
- Scenario: Match failing exit status and exact output
325
- Given an executable named "bin/cli" with:
326
- """bash
327
- #!/usr/bin/env bash
328
-
329
- echo -e "hello\nworld"
330
- exit 1
331
- """
332
- And a file named "features/output.feature" with:
333
- """cucumber
334
- Feature: Run command
335
- Scenario: Run command
336
- When I run `cli`
337
- Then it should fail with:
338
- \"\"\"
339
- hello
340
- world
341
- \"\"\"
342
- """
343
- When I run `cucumber`
344
- Then the features should all pass
345
-
346
- Scenario: Match failing exit status and output with regex
347
- Given an executable named "bin/cli" with:
348
- """bash
349
- #!/usr/bin/env bash
350
-
351
- echo -e "hello\nworld"
352
- exit 1
353
- """
354
- And a file named "features/output.feature" with:
355
- """cucumber
356
- Feature: Run command
357
- Scenario: Run command
358
- When I run `cli`
359
- Then it should fail with regex:
360
- \"\"\"
361
- hello\s*world
362
- \"\"\"
363
- """
364
- When I run `cucumber`
365
- Then the features should all pass
366
-
367
- @requires-aruba-version-1
368
- Scenario: Detect output from all processes
369
- Given an executable named "bin/cli1" with:
370
- """bash
371
- #!/usr/bin/env bash
372
-
373
- echo 'This is cli1'
374
- """
375
- And an executable named "bin/cli2" with:
376
- """bash
377
- #!/usr/bin/env bash
378
-
379
- echo 'This is cli2'
380
- """
381
- And a file named "features/output.feature" with:
382
- """cucumber
383
- Feature: Run command
384
- Scenario: Run command
385
- When I run `cli1`
386
- When I run `cli2`
387
- Then the stdout should contain exactly:
388
- \"\"\"
389
- This is cli1
390
- \"\"\"
391
- And the stdout should contain exactly:
392
- \"\"\"
393
- This is cli2
394
- \"\"\"
395
- """
396
- When I run `cucumber`
397
- Then the features should all pass
398
-
399
- Scenario: Detect output from all processes (deprecated)
400
- Given an executable named "bin/cli1" with:
401
- """bash
402
- #!/usr/bin/env bash
403
-
404
- echo 'This is cli1'
405
- """
406
- And an executable named "bin/cli2" with:
407
- """bash
408
- #!/usr/bin/env bash
409
-
410
- echo 'This is cli2'
411
- """
412
- And a file named "features/output.feature" with:
413
- """cucumber
414
- Feature: Run command
415
- Scenario: Run command
416
- When I run `cli1`
417
- When I run `cli2`
418
- Then the stdout should contain exactly:
419
- \"\"\"
420
- This is cli1
421
- This is cli2
422
- \"\"\"
423
- """
424
- When I run `cucumber`
425
- Then the features should all pass
426
-
427
- Scenario: Handle little output
428
- Given an executable named "bin/cli" with:
429
- """bash
430
- #!/usr/bin/env bash
431
-
432
- for ((c=0; c<256; c = c+1)); do
433
- echo -n "a"
434
- done
435
- """
436
- And a file named "features/flushing.feature" with:
437
- """cucumber
438
- Feature: Flushing output
439
- Scenario: Run command
440
- When I run `cli`
441
- Then the output should contain "a"
442
- And the output should be 256 bytes long
443
- And the exit status should be 0
444
- """
445
- When I run `cucumber`
446
- Then the features should all pass
447
-
448
- Scenario: Handle tons of output
449
-
450
- In order to test processes that output a lot of data
451
- As a developer using Aruba
452
- I want to make sure that large amounts of output aren't buffered
453
-
454
- Given the default aruba exit timeout is 10 seconds
455
- And an executable named "bin/cli" with:
456
- """bash
457
- #!/usr/bin/env bash
458
-
459
- for ((c=0; c<65536; c = c+1)); do
460
- echo -n "a"
461
- done
462
- """
463
- And a file named "features/flushing.feature" with:
464
- """cucumber
465
- Feature: Flushing output
466
- Scenario: Run command
467
- When I run `cli`
468
- Then the output should contain "a"
469
- And the output should be 65536 bytes long
470
- And the exit status should be 0
471
- """
472
- When I run `cucumber`
473
- Then the features should all pass
474
-
475
- Scenario: Handle tons of interactive output
476
- Given the default aruba exit timeout is 10 seconds
477
- And an executable named "bin/cli" with:
478
- """bash
479
- #!/usr/bin/env bash
480
-
481
- read size; for ((c=0; c<$size; c = c+1)); do
482
- echo -n "a"
483
- done
484
- """
485
- And a file named "features/flushing.feature" with:
486
- """cucumber
487
- Feature: Flushing output
488
- Scenario: Run command
489
- When I run `cli` interactively
490
- And I type "65536"
491
- Then the output should contain "a"
492
- And the output should be 65536 bytes long
493
- And the exit status should be 0
494
- """
495
- When I run `cucumber`
496
- Then the features should all pass
497
-
498
- @requires-aruba-version-1
499
- Scenario: Detect output from all processes normal and interactive ones
500
- Given an executable named "bin/cli1" with:
501
- """
502
- #!/usr/bin/env bash
503
- echo 'This is cli1'
504
- """
505
- And an executable named "bin/cli2" with:
506
- """
507
- #!/usr/bin/env ruby
508
-
509
- while input = gets do
510
- break if "" == input
511
- puts input
512
- end
513
- """
514
- And a file named "features/output.feature" with:
515
- """
516
- Feature: Run command
517
- Scenario: Run command
518
- When I run `cli1`
519
- When I run `cli2` interactively
520
- And I type "This is cli2"
521
- And I type ""
522
- Then the stdout should contain exactly:
523
- \"\"\"
524
- This is cli1
525
- \"\"\"
526
- And the stdout should contain exactly:
527
- \"\"\"
528
- This is cli2
529
- \"\"\"
530
- """
531
- When I run `cucumber`
532
- Then the features should all pass
533
-
534
- Scenario: Detect output from named source
535
- Given a file named "features/output.feature" with:
536
- """
537
- Feature: Run command
538
- Scenario: Run command
539
- When I run `printf 'simple'`
540
- And I run `cat` interactively
541
- And I type "interactive"
542
- And I type ""
543
- Then the output from "printf 'simple'" should contain "simple"
544
- And the output from "printf 'simple'" should contain exactly "simple"
545
- And the output from "printf 'simple'" should contain exactly:
546
- \"\"\"
547
- simple
548
- \"\"\"
549
- And the output from "cat" should not contain "simple"
550
- """
551
- When I run `cucumber`
552
- Then the features should all pass
553
-
554
- Scenario: Detect second output from named source with custom name
555
- Given a file named "features/output.feature" with:
556
- """
557
- Feature: Run command
558
- Scenario: Run command
559
- When I set the environment variable "ARUBA_TEST_VAR" to "first"
560
- And I run `bash -c 'printf $ARUBA_TEST_VAR'`
561
- Then the output from "bash -c 'printf $ARUBA_TEST_VAR'" should contain "first"
562
- When I set the environment variable "ARUBA_TEST_VAR" to "second"
563
- And I run `bash -c 'printf $ARUBA_TEST_VAR'`
564
- Then the output from "bash -c 'printf $ARUBA_TEST_VAR'" should contain "second"
565
- """
566
- When I run `cucumber`
567
- Then the features should all pass
@@ -1,66 +0,0 @@
1
- Feature: Run commands
2
-
3
- There are several steps to run commands with `aruba`.
4
-
5
- Background:
6
- Given I use a fixture named "cli-app"
7
-
8
- Scenario: Run command found in path
9
- Given an executable named "bin/cli" with:
10
- """
11
- #!/bin/bash
12
- exit 0
13
- """
14
- And a file named "features/run.feature" with:
15
- """
16
- Feature: Run it
17
- Scenario: Run command
18
- When I run `cli`
19
- """
20
- When I run `cucumber`
21
- Then the features should all pass
22
-
23
- Scenario: Activate desired announcers when running command fails
24
- Given an executable named "bin/cli" with:
25
- """
26
- #!/bin/bash
27
- echo "Hello, I'm STDOUT"
28
- exit 1
29
- """
30
- And a file named "features/run.feature" with:
31
- """
32
- Feature: Run it
33
- Scenario: Run command
34
- When I successfully run `cli`
35
- """
36
- And I append to "features/support/env.rb" with:
37
- """
38
- Before do
39
- aruba.config.activate_announcer_on_command_failure = [:stdout]
40
- end
41
- """
42
- When I run `cucumber`
43
- Then the features should not pass
44
- And the output should contain:
45
- """
46
- <<-STDOUT
47
- Hello, I'm STDOUT
48
-
49
- STDOUT
50
- """
51
-
52
- Scenario: Run command found in "bin"-directory which is found in the current directory
53
- Given a file named "features/run.feature" with:
54
- """
55
- Feature: Run it
56
- Scenario: Run command
57
- Given an executable named "bin/local_cli" with:
58
- \"\"\"
59
- #!/bin/bash
60
- exit 0
61
- \"\"\"
62
- And I look for executables in "bin" within the current directory
63
- When I successfully run `local_cli`
64
- """
65
- When I run `cucumber`
66
- Then the features should all pass