aruba-win-fix 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +37 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +188 -0
  6. data/.simplecov +34 -0
  7. data/.travis.yml +47 -0
  8. data/.yardopts +8 -0
  9. data/CONTRIBUTING.md +71 -0
  10. data/Gemfile +83 -0
  11. data/History.md +579 -0
  12. data/LICENSE +20 -0
  13. data/README.md +226 -0
  14. data/Rakefile +49 -0
  15. data/TODO.md +13 -0
  16. data/appveyor.yml +32 -0
  17. data/aruba.gemspec +48 -0
  18. data/bin/aruba +7 -0
  19. data/config/.gitignore +1 -0
  20. data/cucumber.yml +26 -0
  21. data/features/.nav +72 -0
  22. data/features/api/command/find_command.feature +83 -0
  23. data/features/api/command/last_command_started.feature +50 -0
  24. data/features/api/command/last_command_stopped.feature +89 -0
  25. data/features/api/command/run.feature +414 -0
  26. data/features/api/command/run_simple.feature +242 -0
  27. data/features/api/command/send_signal.feature +53 -0
  28. data/features/api/command/stderr.feature +46 -0
  29. data/features/api/command/stdout.feature +46 -0
  30. data/features/api/command/stop.feature +131 -0
  31. data/features/api/command/stop_all_commands.feature +53 -0
  32. data/features/api/command/terminate_all_commands.feature +53 -0
  33. data/features/api/command/which.feature +37 -0
  34. data/features/api/core/expand_path.feature +88 -0
  35. data/features/api/environment/append_environment_variable.feature +128 -0
  36. data/features/api/environment/delete_environment_variable.feature +63 -0
  37. data/features/api/environment/prepend_environment_variable.feature +128 -0
  38. data/features/api/environment/set_environment_variable.feature +376 -0
  39. data/features/api/filesystem/cd.feature +184 -0
  40. data/features/api/filesystem/create_directory.feature +57 -0
  41. data/features/api/filesystem/disk_usage.feature +152 -0
  42. data/features/api/filesystem/does_exist.feature +62 -0
  43. data/features/api/filesystem/fixtures.feature +104 -0
  44. data/features/api/filesystem/is_absolute.feature +48 -0
  45. data/features/api/filesystem/is_directory.feature +53 -0
  46. data/features/api/filesystem/is_file.feature +54 -0
  47. data/features/api/filesystem/is_relative.feature +48 -0
  48. data/features/api/filesystem/move.feature +119 -0
  49. data/features/api/text/extract_text.feature +87 -0
  50. data/features/api/text/replace_variables.feature +45 -0
  51. data/features/api/text/sanitize_text.feature +228 -0
  52. data/features/api/text/unescape_text.feature +127 -0
  53. data/features/cli/console.feature +52 -0
  54. data/features/cli/init.feature +79 -0
  55. data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
  56. data/features/configuration/command_runtime_environment.feature +129 -0
  57. data/features/configuration/console_history_file.feature +38 -0
  58. data/features/configuration/exit_timeout.feature +52 -0
  59. data/features/configuration/fixtures_directories.feature +38 -0
  60. data/features/configuration/fixtures_path_prefix.feature +23 -0
  61. data/features/configuration/home_directory.feature +80 -0
  62. data/features/configuration/io_timeout.feature +30 -0
  63. data/features/configuration/keep_ansi.feature +30 -0
  64. data/features/configuration/log_level.feature +38 -0
  65. data/features/configuration/physical_block_size.feature +53 -0
  66. data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
  67. data/features/configuration/root_directory.feature +30 -0
  68. data/features/configuration/startup_wait_time.feature +48 -0
  69. data/features/configuration/usage.feature +159 -0
  70. data/features/configuration/working_directory.feature +33 -0
  71. data/features/development/build.feature +15 -0
  72. data/features/development/test.feature +24 -0
  73. data/features/getting_started/cleanup.feature +67 -0
  74. data/features/getting_started/install.feature +8 -0
  75. data/features/getting_started/run_commands.feature +177 -0
  76. data/features/getting_started/supported_testing_frameworks.feature +104 -0
  77. data/features/getting_started/writing_good_feature_tests.feature +38 -0
  78. data/features/hooks/after/command.feature +44 -0
  79. data/features/hooks/before/command.feature +71 -0
  80. data/features/matchers/collection/include_an_object.feature +72 -0
  81. data/features/matchers/directory/have_sub_directory.feature +110 -0
  82. data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
  83. data/features/matchers/file/be_existing_executable.feature +88 -0
  84. data/features/matchers/file/be_existing_file.feature +82 -0
  85. data/features/matchers/file/have_file_content.feature +123 -0
  86. data/features/matchers/file/have_file_size.feature +107 -0
  87. data/features/matchers/path/be_an_absolute_path.feature +74 -0
  88. data/features/matchers/path/be_an_existing_path.feature +97 -0
  89. data/features/matchers/path/have_permissions.feature +118 -0
  90. data/features/matchers/timeouts.feature +48 -0
  91. data/features/platforms/jruby.feature +14 -0
  92. data/features/rspec/integration.feature +179 -0
  93. data/features/step_definitions/aruba_dev_steps.rb +56 -0
  94. data/features/step_definitions/hooks.rb +96 -0
  95. data/features/steps/command/debug.feature +92 -0
  96. data/features/steps/command/exit_statuses.feature +136 -0
  97. data/features/steps/command/in_process.feature +485 -0
  98. data/features/steps/command/interactive.feature +90 -0
  99. data/features/steps/command/output.feature +588 -0
  100. data/features/steps/command/run.feature +66 -0
  101. data/features/steps/command/send_signal.feature +104 -0
  102. data/features/steps/command/shell.feature +155 -0
  103. data/features/steps/command/stderr.feature +68 -0
  104. data/features/steps/command/stdout.feature +109 -0
  105. data/features/steps/command/stop.feature +313 -0
  106. data/features/steps/core/announce.feature +283 -0
  107. data/features/steps/environment/append_environment_variable.feature +52 -0
  108. data/features/steps/environment/home_variable.feature +62 -0
  109. data/features/steps/environment/prepend_environment_variable.feature +52 -0
  110. data/features/steps/environment/set_environment_variable.feature +49 -0
  111. data/features/steps/filesystem/append_to_file.feature +45 -0
  112. data/features/steps/filesystem/cd_to_directory.feature +33 -0
  113. data/features/steps/filesystem/check_file_content.feature +61 -0
  114. data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
  115. data/features/steps/filesystem/compare_files.feature +42 -0
  116. data/features/steps/filesystem/copy.feature +45 -0
  117. data/features/steps/filesystem/create_directory.feature +57 -0
  118. data/features/steps/filesystem/create_file.feature +76 -0
  119. data/features/steps/filesystem/existence_of_directory.feature +57 -0
  120. data/features/steps/filesystem/existence_of_file.feature +43 -0
  121. data/features/steps/filesystem/file_content.feature +86 -0
  122. data/features/steps/filesystem/fixtures.feature +64 -0
  123. data/features/steps/filesystem/move.feature +45 -0
  124. data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
  125. data/features/steps/filesystem/non_existence_of_file.feature +80 -0
  126. data/features/steps/filesystem/overwrite_file.feature +72 -0
  127. data/features/steps/filesystem/remove_directory.feature +38 -0
  128. data/features/steps/filesystem/remove_file.feature +38 -0
  129. data/features/steps/filesystem/use_fixture.feature +77 -0
  130. data/features/steps/overview.feature +60 -0
  131. data/features/support/aruba.rb +7 -0
  132. data/features/support/env.rb +33 -0
  133. data/features/support/jruby.rb +5 -0
  134. data/features/support/simplecov_setup.rb +8 -0
  135. data/fixtures/cli-app/.gitignore +9 -0
  136. data/fixtures/cli-app/.rspec +2 -0
  137. data/fixtures/cli-app/README.md +39 -0
  138. data/fixtures/cli-app/Rakefile +1 -0
  139. data/fixtures/cli-app/bin/cli +6 -0
  140. data/fixtures/cli-app/cli-app.gemspec +26 -0
  141. data/fixtures/cli-app/features/support/env.rb +1 -0
  142. data/fixtures/cli-app/lib/cli/app.rb +13 -0
  143. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
  144. data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
  145. data/fixtures/cli-app/script/console +14 -0
  146. data/fixtures/cli-app/spec/spec_helper.rb +9 -0
  147. data/fixtures/cli-app/spec/support/aruba.rb +1 -0
  148. data/fixtures/copy/file.txt +1 -0
  149. data/fixtures/empty-app/.gitignore +9 -0
  150. data/fixtures/empty-app/.rspec +2 -0
  151. data/fixtures/empty-app/README.md +24 -0
  152. data/fixtures/empty-app/Rakefile +1 -0
  153. data/fixtures/empty-app/cli-app.gemspec +26 -0
  154. data/fixtures/empty-app/lib/cli/app.rb +13 -0
  155. data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
  156. data/fixtures/getting-started-app/.gitignore +4 -0
  157. data/fixtures/getting-started-app/Gemfile +4 -0
  158. data/fixtures/getting-started-app/README.md +3 -0
  159. data/fixtures/getting-started-app/features/support/env.rb +1 -0
  160. data/fixtures/spawn_process/stderr.sh +3 -0
  161. data/lib/aruba.rb +1 -0
  162. data/lib/aruba/api.rb +34 -0
  163. data/lib/aruba/api/command.rb +307 -0
  164. data/lib/aruba/api/core.rb +191 -0
  165. data/lib/aruba/api/deprecated.rb +897 -0
  166. data/lib/aruba/api/environment.rb +89 -0
  167. data/lib/aruba/api/filesystem.rb +392 -0
  168. data/lib/aruba/api/rvm.rb +44 -0
  169. data/lib/aruba/api/text.rb +56 -0
  170. data/lib/aruba/aruba_path.rb +133 -0
  171. data/lib/aruba/basic_configuration.rb +240 -0
  172. data/lib/aruba/basic_configuration/option.rb +32 -0
  173. data/lib/aruba/cli.rb +26 -0
  174. data/lib/aruba/colorizer.rb +108 -0
  175. data/lib/aruba/command.rb +74 -0
  176. data/lib/aruba/config.rb +108 -0
  177. data/lib/aruba/config/jruby.rb +17 -0
  178. data/lib/aruba/config_wrapper.rb +58 -0
  179. data/lib/aruba/console.rb +70 -0
  180. data/lib/aruba/console/help.rb +35 -0
  181. data/lib/aruba/contracts/absolute_path.rb +20 -0
  182. data/lib/aruba/contracts/enum.rb +26 -0
  183. data/lib/aruba/contracts/is_power_of_two.rb +22 -0
  184. data/lib/aruba/contracts/relative_path.rb +20 -0
  185. data/lib/aruba/cucumber.rb +13 -0
  186. data/lib/aruba/cucumber/command.rb +422 -0
  187. data/lib/aruba/cucumber/core.rb +5 -0
  188. data/lib/aruba/cucumber/environment.rb +42 -0
  189. data/lib/aruba/cucumber/file.rb +201 -0
  190. data/lib/aruba/cucumber/hooks.rb +160 -0
  191. data/lib/aruba/cucumber/rvm.rb +3 -0
  192. data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
  193. data/lib/aruba/errors.rb +37 -0
  194. data/lib/aruba/event_bus.rb +59 -0
  195. data/lib/aruba/event_bus/name_resolver.rb +168 -0
  196. data/lib/aruba/events.rb +39 -0
  197. data/lib/aruba/extensions/string/strip.rb +25 -0
  198. data/lib/aruba/file_size.rb +63 -0
  199. data/lib/aruba/generators/script_file.rb +46 -0
  200. data/lib/aruba/hooks.rb +56 -0
  201. data/lib/aruba/in_config_wrapper.rb +24 -0
  202. data/lib/aruba/in_process.rb +14 -0
  203. data/lib/aruba/initializer.rb +222 -0
  204. data/lib/aruba/jruby.rb +4 -0
  205. data/lib/aruba/matchers/base/base_matcher.rb +96 -0
  206. data/lib/aruba/matchers/base/object_formatter.rb +114 -0
  207. data/lib/aruba/matchers/collection.rb +1 -0
  208. data/lib/aruba/matchers/collection/all.rb +11 -0
  209. data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
  210. data/lib/aruba/matchers/command.rb +1 -0
  211. data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
  212. data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
  213. data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
  214. data/lib/aruba/matchers/command/have_output.rb +36 -0
  215. data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
  216. data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
  217. data/lib/aruba/matchers/command/have_output_size.rb +28 -0
  218. data/lib/aruba/matchers/directory.rb +1 -0
  219. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
  220. data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
  221. data/lib/aruba/matchers/environment.rb +1 -0
  222. data/lib/aruba/matchers/file.rb +1 -0
  223. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
  224. data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
  225. data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
  226. data/lib/aruba/matchers/file/have_file_content.rb +62 -0
  227. data/lib/aruba/matchers/file/have_file_size.rb +47 -0
  228. data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
  229. data/lib/aruba/matchers/path.rb +1 -0
  230. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
  231. data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
  232. data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
  233. data/lib/aruba/matchers/path/have_permissions.rb +64 -0
  234. data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
  235. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
  236. data/lib/aruba/matchers/string.rb +1 -0
  237. data/lib/aruba/matchers/string/include_output_string.rb +36 -0
  238. data/lib/aruba/matchers/string/match_output_string.rb +37 -0
  239. data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
  240. data/lib/aruba/platform.rb +25 -0
  241. data/lib/aruba/platforms/announcer.rb +232 -0
  242. data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
  243. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
  244. data/lib/aruba/platforms/aruba_logger.rb +81 -0
  245. data/lib/aruba/platforms/command_monitor.rb +229 -0
  246. data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
  247. data/lib/aruba/platforms/determine_file_size.rb +22 -0
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
  249. data/lib/aruba/platforms/filesystem_status.rb +68 -0
  250. data/lib/aruba/platforms/local_environment.rb +29 -0
  251. data/lib/aruba/platforms/simple_table.rb +54 -0
  252. data/lib/aruba/platforms/unix_command_string.rb +27 -0
  253. data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
  254. data/lib/aruba/platforms/unix_platform.rb +276 -0
  255. data/lib/aruba/platforms/unix_which.rb +85 -0
  256. data/lib/aruba/platforms/windows_command_string.rb +31 -0
  257. data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
  258. data/lib/aruba/platforms/windows_platform.rb +42 -0
  259. data/lib/aruba/platforms/windows_which.rb +106 -0
  260. data/lib/aruba/processes/basic_process.rb +143 -0
  261. data/lib/aruba/processes/debug_process.rb +69 -0
  262. data/lib/aruba/processes/in_process.rb +125 -0
  263. data/lib/aruba/processes/spawn_process.rb +278 -0
  264. data/lib/aruba/reporting.rb +126 -0
  265. data/lib/aruba/rspec.rb +107 -0
  266. data/lib/aruba/runtime.rb +96 -0
  267. data/lib/aruba/setup.rb +90 -0
  268. data/lib/aruba/spawn_process.rb +11 -0
  269. data/lib/aruba/version.rb +3 -0
  270. data/script/bootstrap +28 -0
  271. data/script/console +16 -0
  272. data/script/test +3 -0
  273. data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
  274. data/spec/aruba/api/environment/set_env_spec.rb +42 -0
  275. data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
  276. data/spec/aruba/api/runtime_spec.rb +28 -0
  277. data/spec/aruba/api_spec.rb +1209 -0
  278. data/spec/aruba/aruba_path_spec.rb +103 -0
  279. data/spec/aruba/basic_configuration_spec.rb +5 -0
  280. data/spec/aruba/configuration_spec.rb +5 -0
  281. data/spec/aruba/hooks_spec.rb +17 -0
  282. data/spec/aruba/in_config_wrapper_spec.rb +25 -0
  283. data/spec/aruba/jruby_spec.rb +55 -0
  284. data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
  285. data/spec/aruba/matchers/command_spec.rb +174 -0
  286. data/spec/aruba/matchers/directory_spec.rb +57 -0
  287. data/spec/aruba/matchers/file_spec.rb +127 -0
  288. data/spec/aruba/matchers/path_spec.rb +88 -0
  289. data/spec/aruba/platform/simple_table_spec.rb +23 -0
  290. data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
  291. data/spec/aruba/rspec_spec.rb +15 -0
  292. data/spec/aruba/runtime_spec.rb +29 -0
  293. data/spec/aruba/spawn_process_spec.rb +60 -0
  294. data/spec/event_bus/name_resolver_spec.rb +68 -0
  295. data/spec/event_bus_spec.rb +160 -0
  296. data/spec/spec_helper.rb +23 -0
  297. data/spec/support/configs/.keep +0 -0
  298. data/spec/support/configs/aruba.rb +5 -0
  299. data/spec/support/configs/pry.rb +3 -0
  300. data/spec/support/configs/rspec.rb +15 -0
  301. data/spec/support/helpers/.keep +0 -0
  302. data/spec/support/helpers/reporting.rb +44 -0
  303. data/spec/support/matchers/.keep +0 -0
  304. data/spec/support/matchers/option.rb +35 -0
  305. data/spec/support/shared_contexts/.keep +0 -0
  306. data/spec/support/shared_contexts/aruba.rb +48 -0
  307. data/spec/support/shared_examples/.keep +0 -0
  308. data/spec/support/shared_examples/configuration.rb +116 -0
  309. data/spec/support/shared_examples/directory.rb +7 -0
  310. data/spec/support/shared_examples/file.rb +7 -0
  311. data/templates/css/console.css +24 -0
  312. data/templates/css/filesystem.css +42 -0
  313. data/templates/css/pygments-autumn.css +59 -0
  314. data/templates/files.erb +14 -0
  315. data/templates/images/LICENSE +22 -0
  316. data/templates/images/folder.png +0 -0
  317. data/templates/images/page_white.png +0 -0
  318. data/templates/images/page_white_gherkin.png +0 -0
  319. data/templates/images/page_white_ruby.png +0 -0
  320. data/templates/index.erb +20 -0
  321. data/templates/js/filesystem.js +5 -0
  322. data/templates/js/jquery-1.11.3.min.js +5 -0
  323. data/templates/main.erb +34 -0
  324. metadata +629 -0
@@ -0,0 +1,83 @@
1
+ Feature: Find a started command
2
+
3
+ This feature is experimental and may change without further notice.
4
+
5
+ Background:
6
+ Given I use a fixture named "cli-app"
7
+
8
+ Scenario: Existing command
9
+ Given a file named "spec/run_spec.rb" with:
10
+ """ruby
11
+ require 'spec_helper'
12
+
13
+ RSpec.describe 'Run command', :type => :aruba do
14
+ before(:each) { run('echo hello') }
15
+ let(:command) { find_command('echo hello') }
16
+
17
+ before(:each) { stop_all_commands }
18
+
19
+ it { expect(command).to be_successfully_executed }
20
+ it { expect(command.commandline).to eq 'echo hello' }
21
+ end
22
+ """
23
+ When I run `rspec`
24
+ Then the specs should all pass
25
+
26
+ Scenario: Non-Existing command
27
+ Given a file named "spec/run_spec.rb" with:
28
+ """ruby
29
+ require 'spec_helper'
30
+
31
+ RSpec.describe 'Run command', :type => :aruba do
32
+ let(:command) { find_command('echo hello') }
33
+
34
+ it { expect{ command }.to raise_error Aruba::CommandNotFoundError }
35
+ it { expect{ command.commandline }.to raise_error Aruba::CommandNotFoundError }
36
+ end
37
+ """
38
+ When I run `rspec`
39
+ Then the specs should all pass
40
+
41
+ Scenario: Multiple commands
42
+ Given a file named "spec/run_spec.rb" with:
43
+ """ruby
44
+ require 'spec_helper'
45
+
46
+ RSpec.describe 'Run command', :type => :aruba do
47
+ before(:each) { run('echo hello1') }
48
+ before(:each) { run('echo hello2') }
49
+ let(:command) { find_command('echo hello1') }
50
+
51
+ before(:each) { stop_all_commands }
52
+
53
+ it { expect(command).to be_successfully_executed }
54
+ it { expect(command.commandline).to eq 'echo hello1' }
55
+ end
56
+ """
57
+ When I run `rspec`
58
+ Then the specs should all pass
59
+
60
+ Scenario: Multiple commands with same commandline
61
+
62
+ If searches in reverse. So it finds the last command started with the given commandline.
63
+
64
+ Given a file named "spec/run_spec.rb" with:
65
+ """ruby
66
+ require 'spec_helper'
67
+
68
+ RSpec.describe 'Run command', :type => :aruba do
69
+ before(:each) { set_environment_variable 'ENV_VAR', '1' }
70
+ before(:each) { run('bash -c "echo -n $ENV_VAR"') }
71
+ before(:each) { set_environment_variable 'ENV_VAR', '2' }
72
+ before(:each) { run('bash -c "echo -n $ENV_VAR"') }
73
+
74
+ let(:command) { find_command('bash -c "echo -n $ENV_VAR"') }
75
+
76
+ before(:each) { stop_all_commands }
77
+
78
+ it { expect(command).to be_successfully_executed }
79
+ it { expect(command.stdout).to eq '2' }
80
+ end
81
+ """
82
+ When I run `rspec`
83
+ Then the specs should all pass
@@ -0,0 +1,50 @@
1
+ Feature: Return last command started
2
+
3
+ Background:
4
+ Given I use a fixture named "cli-app"
5
+
6
+ Scenario: A command has been started
7
+ Given a file named "spec/run_spec.rb" with:
8
+ """ruby
9
+ require 'spec_helper'
10
+
11
+ RSpec.describe 'Run command', :type => :aruba do
12
+ before(:each) { run('echo hello') }
13
+ before(:each) { stop_all_commands }
14
+
15
+ it { expect(last_command_started).to be_successfully_executed }
16
+ it { expect(last_command_started.commandline).to eq 'echo hello' }
17
+ end
18
+ """
19
+ When I run `rspec`
20
+ Then the specs should all pass
21
+
22
+ Scenario: Multiple commands have been started
23
+ Given a file named "spec/run_spec.rb" with:
24
+ """ruby
25
+ require 'spec_helper'
26
+
27
+ RSpec.describe 'Run command', :type => :aruba do
28
+ before(:each) { run('echo hello') }
29
+ before(:each) { run('echo world') }
30
+
31
+ before(:each) { stop_all_commands }
32
+
33
+ it { expect(last_command_started).to be_successfully_executed }
34
+ it { expect(last_command_started.commandline).to eq 'echo world' }
35
+ end
36
+ """
37
+ When I run `rspec`
38
+ Then the specs should all pass
39
+
40
+ Scenario: No command has been started
41
+ Given a file named "spec/run_spec.rb" with:
42
+ """ruby
43
+ require 'spec_helper'
44
+
45
+ RSpec.describe 'Run command', :type => :aruba do
46
+ it { expect{ last_command_started.commandline }.to raise_error Aruba::NoCommandHasBeenStartedError }
47
+ end
48
+ """
49
+ When I run `rspec`
50
+ Then the specs should all pass
@@ -0,0 +1,89 @@
1
+ Feature: Return last command stopped
2
+
3
+ Background:
4
+ Given I use a fixture named "cli-app"
5
+
6
+ Scenario: A command has been started
7
+ Given a file named "spec/run_spec.rb" with:
8
+ """ruby
9
+ require 'spec_helper'
10
+
11
+ RSpec.describe 'Run command', :type => :aruba do
12
+ before(:each) { run('echo hello') }
13
+ before(:each) { stop_all_commands }
14
+
15
+ it { expect(last_command_stopped).to be_successfully_executed }
16
+ it { expect(last_command_stopped.commandline).to eq 'echo hello' }
17
+ end
18
+ """
19
+ When I run `rspec`
20
+ Then the specs should all pass
21
+
22
+ Scenario: Multiple commands have been started and all are stopped
23
+ Given a file named "spec/run_spec.rb" with:
24
+ """ruby
25
+ require 'spec_helper'
26
+
27
+ RSpec.describe 'Run command', :type => :aruba do
28
+ before(:each) { run('echo hello') }
29
+ before(:each) { run('echo world') }
30
+
31
+ before(:each) { stop_all_commands }
32
+
33
+ it { expect(last_command_stopped).to be_successfully_executed }
34
+ it { expect(last_command_stopped.commandline).to eq 'echo world' }
35
+ end
36
+ """
37
+ When I run `rspec`
38
+ Then the specs should all pass
39
+
40
+ Scenario: Multiple commands have been started and a single one is stopped
41
+ Given a file named "spec/run_spec.rb" with:
42
+ """ruby
43
+ require 'spec_helper'
44
+
45
+ RSpec.describe 'Run command', :type => :aruba do
46
+ before(:each) { run('echo hello') }
47
+ before(:each) { find_command('echo hello').stop }
48
+ before(:each) { run('echo world') }
49
+
50
+ it { expect(last_command_stopped).to be_successfully_executed }
51
+ it { expect(last_command_stopped.commandline).to eq 'echo hello' }
52
+ end
53
+ """
54
+ When I run `rspec`
55
+ Then the specs should all pass
56
+
57
+
58
+ @requires-aruba-version-1
59
+ Scenario: No command has been started
60
+ Given a file named "spec/run_spec.rb" with:
61
+ """ruby
62
+ require 'spec_helper'
63
+
64
+ RSpec.describe 'Run command', :type => :aruba do
65
+ it { expect{ last_command_stopped.commandline }.to raise_error Aruba::NoCommandHasBeenStoppedError }
66
+ end
67
+ """
68
+ When I run `rspec`
69
+ Then the specs should all pass
70
+
71
+ @requires-aruba-version-1
72
+ Scenario: No command has been stopped
73
+ Given an executable named "bin/cli" with:
74
+ """bash
75
+ #!/bin/bash
76
+ while [ true ]; do sleep 1; done
77
+ """
78
+ And a file named "spec/run_spec.rb" with:
79
+ """ruby
80
+ require 'spec_helper'
81
+
82
+ RSpec.describe 'Run command', :type => :aruba do
83
+ before(:each) { run('cli') }
84
+
85
+ it { expect{ last_command_stopped.commandline }.to raise_error Aruba::NoCommandHasBeenStoppedError }
86
+ end
87
+ """
88
+ When I run `rspec`
89
+ Then the specs should all pass
@@ -0,0 +1,414 @@
1
+ Feature: Run command
2
+
3
+ To run a command use the `#run`-method. There are some configuration options
4
+ which are relevant here:
5
+
6
+ - `startup_wait_time`:
7
+
8
+ Given this option `aruba` waits n seconds after it started the command.
9
+ This is most useful when using `#run()` and not really makes sense for
10
+ `#run_simple()`.
11
+
12
+ You can use `#run()` + `startup_wait_time` to start background jobs.
13
+
14
+ - `exit_timeout`:
15
+
16
+ The exit timeout is used, when `aruba` waits for a command to finished.
17
+
18
+ - `io_wait_timeout`:
19
+
20
+ The io wait timeout is used, when you access `stdout` or `stderr` of a
21
+ command.
22
+
23
+ Background:
24
+ Given I use a fixture named "cli-app"
25
+
26
+ Scenario: Existing executable
27
+ Given an executable named "bin/cli" with:
28
+ """bash
29
+ #!/bin/bash
30
+ exit 0
31
+ """
32
+ And a file named "spec/run_spec.rb" with:
33
+ """ruby
34
+ require 'spec_helper'
35
+
36
+ RSpec.describe 'Run command', :type => :aruba do
37
+ before(:each) { run('cli') }
38
+ it { expect(last_command_started).to be_successfully_executed }
39
+ end
40
+ """
41
+ When I run `rspec`
42
+ Then the specs should all pass
43
+
44
+ Scenario: Relative path to executable
45
+ Given an executable named "bin/cli" with:
46
+ """bash
47
+ #!/bin/bash
48
+ exit 0
49
+ """
50
+ And a file named "spec/run_spec.rb" with:
51
+ """ruby
52
+ require 'spec_helper'
53
+
54
+ RSpec.describe 'Run command', :type => :aruba do
55
+ before(:each) { run('bin/cli') }
56
+ it { expect(last_command_started).to be_successfully_executed }
57
+ end
58
+ """
59
+ When I run `rspec`
60
+ Then the specs should all pass
61
+
62
+ Scenario: Non-existing executable
63
+ Given a file named "bin/cli" does not exist
64
+ And a file named "spec/run_spec.rb" with:
65
+ """ruby
66
+ require 'spec_helper'
67
+
68
+ RSpec.describe 'Find path for command', :type => :aruba do
69
+ it { expect { run('cli') }.to raise_error Aruba::LaunchError, /Command "cli" not found in PATH-variable/ }
70
+ end
71
+ """
72
+ When I run `rspec`
73
+ Then the specs should all pass
74
+
75
+ Scenario: Command with long startup phase
76
+
77
+ If you have got a command with a long startup phase or use `ruby` together
78
+ with `bundler`, you should consider using the `startup_wait_time`-option.
79
+ Otherwise methods like `#send_signal` don't work since they require the
80
+ command to be running and have setup it's signal handler.
81
+
82
+ Given an executable named "bin/cli" with:
83
+ """bash
84
+ #!/usr/bin/env bash
85
+
86
+ function initialize_script {
87
+ sleep 2
88
+ }
89
+
90
+ function do_some_work {
91
+ echo "Hello, Aruba is working"
92
+ }
93
+
94
+ function recurring_work {
95
+ echo "Hello, Aruba here"
96
+ }
97
+
98
+ function stop_script {
99
+ exit 0
100
+ }
101
+
102
+ trap recurring_work HUP
103
+ trap stop_script TERM
104
+
105
+ initialize_script
106
+ do_some_work
107
+
108
+ while [ true ]; do sleep 1; done
109
+ """
110
+ And a file named "spec/run_spec.rb" with:
111
+ """ruby
112
+ require 'spec_helper'
113
+
114
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 1, :startup_wait_time => 2 do
115
+ before(:each) { run('cli') }
116
+ before(:each) { last_command_started.send_signal 'HUP' }
117
+
118
+ it { expect(last_command_started).to be_successfully_executed }
119
+ it { expect(last_command_started).to have_output /Hello, Aruba is working/ }
120
+ it { expect(last_command_started).to have_output /Hello, Aruba here/ }
121
+
122
+ end
123
+ """
124
+ When I run `rspec`
125
+ Then the specs should all pass
126
+
127
+ Scenario: Long running command
128
+
129
+ If you have got a "long running" command, you should consider using the
130
+ `exit_timeout`-option.
131
+
132
+ Given an executable named "bin/cli" with:
133
+ """bash
134
+ #!/usr/bin/env bash
135
+
136
+ function do_some_work {
137
+ sleep 2
138
+ echo "Hello, Aruba here"
139
+ }
140
+
141
+ do_some_work
142
+ """
143
+ And a file named "spec/run_spec.rb" with:
144
+ """ruby
145
+ require 'spec_helper'
146
+
147
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 3 do
148
+ before(:each) { run('cli') }
149
+
150
+ it { expect(last_command_started).to be_successfully_executed }
151
+ it { expect(last_command_started).to have_output /Hello, Aruba here/ }
152
+ end
153
+ """
154
+ When I run `rspec`
155
+ Then the specs should all pass
156
+
157
+ Scenario: Mixing commands with long and short startup phase (deprecated)
158
+
159
+ If you commands with a long and short startup phases, you should consider
160
+ using the `startup_wait_time`-option local to the `#run`-call.
161
+
162
+ Given an executable named "bin/cli1" with:
163
+ """bash
164
+ #!/usr/bin/env bash
165
+
166
+ function initialize_script {
167
+ sleep 2
168
+ }
169
+
170
+ function do_some_work {
171
+ echo "Hello, Aruba is working"
172
+ }
173
+
174
+ function recurring_work {
175
+ echo "Hello, Aruba here"
176
+ }
177
+
178
+ function stop_script {
179
+ exit 0
180
+ }
181
+
182
+ trap recurring_work HUP
183
+ trap stop_script TERM
184
+
185
+ initialize_script
186
+ do_some_work
187
+
188
+ while [ true ]; do sleep 0.2; done
189
+ """
190
+ And an executable named "bin/cli2" with:
191
+ """bash
192
+ #!/usr/bin/env bash
193
+
194
+ function initialize_script {
195
+ sleep 0
196
+ }
197
+
198
+ function do_some_work {
199
+ echo "Hello, Aruba is working"
200
+ }
201
+
202
+ function recurring_work {
203
+ echo "Hello, Aruba here"
204
+ }
205
+
206
+ function stop_script {
207
+ exit 0
208
+ }
209
+
210
+ trap recurring_work HUP
211
+ trap stop_script TERM
212
+
213
+ initialize_script
214
+ do_some_work
215
+
216
+ while [ true ]; do sleep 0.2; done
217
+ """
218
+ And a file named "spec/run_spec.rb" with:
219
+ """ruby
220
+ require 'spec_helper'
221
+
222
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 1 do
223
+ before(:each) { run('cli1', 3, 0.1, 'TERM', 2) }
224
+ before(:each) { run('cli2', 3, 0.1, 'TERM', 1) }
225
+ before(:each) { last_command_started.send_signal 'HUP' }
226
+
227
+ it { expect(last_command_started).to be_successfully_executed }
228
+ it { expect(last_command_started).to have_output /Hello, Aruba is working/ }
229
+ it { expect(last_command_started).to have_output /Hello, Aruba here/ }
230
+
231
+ end
232
+ """
233
+ When I run `rspec`
234
+ Then the specs should all pass
235
+
236
+ Scenario: Mixing commands with long and short startup phase
237
+
238
+ If you commands with a long and short startup phases, you should consider
239
+ using the `startup_wait_time`-option local to the `#run`-call.
240
+
241
+ Given an executable named "bin/cli1" with:
242
+ """bash
243
+ #!/usr/bin/env bash
244
+
245
+ function initialize_script {
246
+ sleep 2
247
+ }
248
+
249
+ function do_some_work {
250
+ echo "Hello, Aruba is working"
251
+ }
252
+
253
+ function recurring_work {
254
+ echo "Hello, Aruba here"
255
+ }
256
+
257
+ function stop_script {
258
+ exit 0
259
+ }
260
+
261
+ trap recurring_work HUP
262
+ trap stop_script TERM
263
+
264
+ initialize_script
265
+ do_some_work
266
+
267
+ while [ true ]; do sleep 0.2; done
268
+ """
269
+ And an executable named "bin/cli2" with:
270
+ """bash
271
+ #!/usr/bin/env bash
272
+
273
+ function initialize_script {
274
+ sleep 0
275
+ }
276
+
277
+ function do_some_work {
278
+ echo "Hello, Aruba is working"
279
+ }
280
+
281
+ function recurring_work {
282
+ echo "Hello, Aruba here"
283
+ }
284
+
285
+ function stop_script {
286
+ exit 0
287
+ }
288
+
289
+ trap recurring_work HUP
290
+ trap stop_script TERM
291
+
292
+ initialize_script
293
+ do_some_work
294
+
295
+ while [ true ]; do sleep 0.2; done
296
+ """
297
+ And a file named "spec/run_spec.rb" with:
298
+ """ruby
299
+ require 'spec_helper'
300
+
301
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 1 do
302
+ before(:each) { run('cli1', :startup_wait_time => 2) }
303
+ before(:each) { run('cli2', :startup_wait_time => 1) }
304
+ before(:each) { last_command_started.send_signal 'HUP' }
305
+
306
+ it { expect(last_command_started).to be_successfully_executed }
307
+ it { expect(last_command_started).to have_output /Hello, Aruba is working/ }
308
+ it { expect(last_command_started).to have_output /Hello, Aruba here/ }
309
+
310
+ end
311
+ """
312
+ When I run `rspec`
313
+ Then the specs should all pass
314
+
315
+ Scenario: Mixing long and short running commands (deprecated)
316
+
317
+ If need to mix "long running" and "short running" commands, you should consider using the
318
+ `exit_timeout`-option local to the `#run`-method.
319
+
320
+ Given an executable named "bin/cli1" with:
321
+ """bash
322
+ #!/usr/bin/env bash
323
+
324
+ function do_some_work {
325
+ sleep 2
326
+ echo "Hello, Aruba here"
327
+ }
328
+
329
+ do_some_work
330
+ """
331
+ And an executable named "bin/cli2" with:
332
+ """bash
333
+ #!/usr/bin/env bash
334
+
335
+ function do_some_work {
336
+ echo "Hello, Aruba here"
337
+ }
338
+
339
+ do_some_work
340
+ """
341
+ And a file named "spec/run_spec.rb" with:
342
+ """ruby
343
+ require 'spec_helper'
344
+
345
+ RSpec.describe 'Run command', :type => :aruba do
346
+ before(:each) { run('cli1', 3) }
347
+ before(:each) { run('cli2', 1) }
348
+
349
+ it { expect(last_command_started).to be_successfully_executed }
350
+ it { expect(last_command_started).to have_output /Hello, Aruba here/ }
351
+ end
352
+ """
353
+ When I run `rspec`
354
+ Then the specs should all pass
355
+
356
+ Scenario: Mixing long and short running commands
357
+
358
+ If need to mix "long running" and "short running" commands, you should consider using the
359
+ `exit_timeout`-option local to the `#run`-method.
360
+
361
+ Given an executable named "bin/cli1" with:
362
+ """bash
363
+ #!/usr/bin/env bash
364
+
365
+ function do_some_work {
366
+ sleep 2
367
+ echo "Hello, Aruba here"
368
+ }
369
+
370
+ do_some_work
371
+ """
372
+ And an executable named "bin/cli2" with:
373
+ """bash
374
+ #!/usr/bin/env bash
375
+
376
+ function do_some_work {
377
+ echo "Hello, Aruba here"
378
+ }
379
+
380
+ do_some_work
381
+ """
382
+ And a file named "spec/run_spec.rb" with:
383
+ """ruby
384
+ require 'spec_helper'
385
+
386
+ RSpec.describe 'Run command', :type => :aruba do
387
+ before(:each) { run('cli1', :exit_timeout => 3) }
388
+ before(:each) { run('cli2', :exit_timeout => 1) }
389
+
390
+ it { expect(last_command_started).to be_successfully_executed }
391
+ it { expect(last_command_started).to have_output /Hello, Aruba here/ }
392
+ end
393
+ """
394
+ When I run `rspec`
395
+ Then the specs should all pass
396
+
397
+ Scenario: Starting command twice fails
398
+ Given an executable named "bin/cli" with:
399
+ """bash
400
+ #!/bin/bash
401
+ exit 0
402
+ """
403
+ And a file named "spec/run_spec.rb" with:
404
+ """ruby
405
+ require 'spec_helper'
406
+
407
+ RSpec.describe 'Run command', :type => :aruba do
408
+ before(:each) { run('cli') }
409
+ let!(:found_command) { find_command('cli') }
410
+ it { expect { found_command.start }.to raise_error Aruba::CommandAlreadyStartedError }
411
+ end
412
+ """
413
+ When I run `rspec`
414
+ Then the specs should all pass