aruba-turnip 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/.rspec +4 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +21 -0
- data/README.md +55 -0
- data/Rakefile +6 -0
- data/aruba-turnip.gemspec +30 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/aruba/turnip/command.rb +379 -0
- data/lib/aruba/turnip/file.rb +223 -0
- data/lib/aruba/turnip/placeholders.rb +37 -0
- data/lib/aruba/turnip/testing_frameworks.rb +33 -0
- data/lib/aruba/turnip/version.rb +5 -0
- data/lib/aruba/turnip.rb +13 -0
- data/spec/acceptance/fixtures/cli-app/.rspec +4 -0
- data/spec/acceptance/fixtures/cli-app/README.md +39 -0
- data/spec/acceptance/fixtures/cli-app/Rakefile +1 -0
- data/spec/acceptance/fixtures/cli-app/bin/.gitkeep +0 -0
- data/spec/acceptance/fixtures/cli-app/cli-app.gemspec +26 -0
- data/spec/acceptance/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
- data/spec/acceptance/fixtures/cli-app/lib/cli/app/version.rb +5 -0
- data/spec/acceptance/fixtures/cli-app/lib/cli/app.rb +9 -0
- data/spec/acceptance/fixtures/cli-app/spec/acceptance/non-existence.feature +10 -0
- data/spec/acceptance/fixtures/cli-app/spec/acceptance/support/env.rb +0 -0
- data/spec/acceptance/fixtures/cli-app/spec/spec_helper.rb +17 -0
- data/spec/acceptance/fixtures/cli-app/spec/support/aruba.rb +1 -0
- data/spec/acceptance/fixtures/cli-app/tmp/aruba/foo/bar/example.txt +1 -0
- data/spec/acceptance/steps/aruba_dev_steps.rb +56 -0
- data/spec/acceptance/testing_frameworks/turnip/steps/command/exit_statuses.feature +136 -0
- data/spec/acceptance/testing_frameworks/turnip/steps/command/run.feature +68 -0
- data/spec/acceptance/testing_frameworks/turnip/steps/filesystem/cd_to_directory.feature +33 -0
- data/spec/acceptance/testing_frameworks/turnip/steps/filesystem/create_directory.feature +57 -0
- data/spec/aruba/turnip_spec.rb +7 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/turnip_helper.rb +11 -0
- metadata +154 -0
@@ -0,0 +1,223 @@
|
|
1
|
+
step 'I use (a/the) fixture named ":name"' do |name|
|
2
|
+
copy File.join(aruba.config.fixtures_path_prefix, name), name
|
3
|
+
cd name
|
4
|
+
end
|
5
|
+
|
6
|
+
=begin
|
7
|
+
step 'I copy (a/the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"' do |file_or_directory, source, destination|
|
8
|
+
copy source, destination
|
9
|
+
end
|
10
|
+
|
11
|
+
step 'I move (a/the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"' do |file_or_directory, source, destination|
|
12
|
+
move source, destination
|
13
|
+
end
|
14
|
+
|
15
|
+
=end
|
16
|
+
|
17
|
+
step '(a/the) directory (named) ":dir_name"' do |dir_name|
|
18
|
+
create_directory(dir_name)
|
19
|
+
end
|
20
|
+
|
21
|
+
step '(a/the) directory (named) ":dir_name" with mode ":mode"' do |dir_name, dir_mode|
|
22
|
+
create_directory(dir_name)
|
23
|
+
chmod(dir_mode, dir_name)
|
24
|
+
end
|
25
|
+
|
26
|
+
step '(a/the) file (named) ":file_name" with:' do |file_name, file_content|
|
27
|
+
write_file(file_name, file_content)
|
28
|
+
end
|
29
|
+
|
30
|
+
step '(an/the) executable (named) ":file_name" with:' do |file_name, file_content|
|
31
|
+
step %(a file named "#{file_name}" with mode "0755" and with:), file_content
|
32
|
+
end
|
33
|
+
|
34
|
+
=begin
|
35
|
+
step '(a/the) file (named) "([^"]*)" with "([^"]*)"' do |file_name, file_content|
|
36
|
+
write_file(file_name, unescape_text(file_content))
|
37
|
+
end
|
38
|
+
=end
|
39
|
+
|
40
|
+
step '(a/the) file (named) ":file_name" with mode ":file_mode" and with:' do |file_name, file_mode, file_content|
|
41
|
+
write_file(file_name, unescape_text(file_content))
|
42
|
+
chmod(file_mode, file_name)
|
43
|
+
end
|
44
|
+
|
45
|
+
=begin
|
46
|
+
|
47
|
+
step '(a/the) (\d+) byte file (named) "([^"]*)"' do |file_size, file_name|
|
48
|
+
write_fixed_size_file(file_name, file_size.to_i)
|
49
|
+
end
|
50
|
+
|
51
|
+
step '(?:an|the) empty file (named) "([^"]*)"' do |file_name|
|
52
|
+
write_file(file_name, "")
|
53
|
+
end
|
54
|
+
|
55
|
+
step '(?:an|the) empty file (named) "([^"]*)" with mode "([^"]*)"' do |file_name, file_mode|
|
56
|
+
write_file(file_name, "")
|
57
|
+
chmod(file_mode, file_name)
|
58
|
+
end
|
59
|
+
|
60
|
+
step 'I write to "([^"]*)" with:' do |file_name, file_content|
|
61
|
+
write_file(file_name, file_content)
|
62
|
+
end
|
63
|
+
|
64
|
+
step 'I overwrite(?: (a/the) file (named))? "([^"]*)" with:' do |file_name, file_content|
|
65
|
+
overwrite_file(file_name, file_content)
|
66
|
+
end
|
67
|
+
|
68
|
+
=end
|
69
|
+
|
70
|
+
step 'I append to ":file_name" with:' do |file_name, file_content|
|
71
|
+
append_to_file(file_name, file_content)
|
72
|
+
end
|
73
|
+
|
74
|
+
=begin
|
75
|
+
|
76
|
+
step 'I append to "([^"]*)" with "([^"]*)"' do |file_name, file_content|
|
77
|
+
append_to_file(file_name, file_content)
|
78
|
+
end
|
79
|
+
|
80
|
+
step 'I remove (a/the) (?:file|directory) (named) "([^"]*)"( with full force)?' do |name, force_remove|
|
81
|
+
remove(name, :force => force_remove.nil? ? false : true)
|
82
|
+
end
|
83
|
+
|
84
|
+
step '(a/the) (?:file|directory) (named) "([^"]*)" does not exist' do |name|
|
85
|
+
remove(name, :force => true)
|
86
|
+
end
|
87
|
+
|
88
|
+
=end
|
89
|
+
|
90
|
+
step 'I cd to ":dir"' do |dir|
|
91
|
+
cd(dir)
|
92
|
+
end
|
93
|
+
|
94
|
+
=begin
|
95
|
+
|
96
|
+
step 'the following files should (not )?exist:' do |negated, files|
|
97
|
+
files = files.raw.flatten
|
98
|
+
|
99
|
+
if negated
|
100
|
+
expect(files).not_to include an_existing_file
|
101
|
+
else
|
102
|
+
expect(files).to Aruba::Matchers.all be_an_existing_file
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
=end
|
107
|
+
|
108
|
+
placeholder :file_or_directory do
|
109
|
+
match /file/ do
|
110
|
+
"file"
|
111
|
+
end
|
112
|
+
|
113
|
+
match /directory/ do
|
114
|
+
"directory"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
step '(a/the) :file_or_directory (named) ":path" :outcome exist (anymore)' do |directory_or_file, path, expect_match|
|
119
|
+
case directory_or_file
|
120
|
+
when "file"
|
121
|
+
if expect_match
|
122
|
+
expect(path).to be_an_existing_file
|
123
|
+
else
|
124
|
+
expect(path).not_to be_an_existing_file
|
125
|
+
end
|
126
|
+
when "directory"
|
127
|
+
if expect_match
|
128
|
+
expect(path).to be_an_existing_directory
|
129
|
+
else
|
130
|
+
expect(path).not_to be_an_existing_directory
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
=begin
|
136
|
+
|
137
|
+
step '(a/the) file matching %r<(.*?)> should (not )?exist' do |pattern, expect_match|
|
138
|
+
if expect_match
|
139
|
+
expect(all_paths).not_to include a_file_name_matching(pattern)
|
140
|
+
else
|
141
|
+
expect(all_paths).to include match a_file_name_matching(pattern)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
step '(a/the) (\d+) byte file (named) "([^"]*)" should (not )?exist' do |size, file, negated|
|
146
|
+
if negated
|
147
|
+
expect(file).not_to have_file_size(size)
|
148
|
+
else
|
149
|
+
expect(file).to have_file_size(size)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
step 'the following directories should (not )?exist:' do |negated, directories|
|
154
|
+
directories = directories.rows.flatten
|
155
|
+
|
156
|
+
if negated
|
157
|
+
expect(directories).not_to include an_existing_directory
|
158
|
+
else
|
159
|
+
expect(directories).to Aruba::Matchers.all be_an_existing_directory
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
=end
|
164
|
+
|
165
|
+
step '(a/the) file (named) ":file" :outcome contain ":content"' do |file, expect_success, content|
|
166
|
+
if expect_success
|
167
|
+
expect(file).to have_file_content file_content_including(content.chomp)
|
168
|
+
else
|
169
|
+
expect(file).not_to have_file_content file_content_including(content.chomp)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
=begin
|
174
|
+
|
175
|
+
step '(a/the) file (named) "([^"]*)" should (not )?contain:' do |file, negated, content|
|
176
|
+
if negated
|
177
|
+
expect(file).not_to have_file_content file_content_including(content.chomp)
|
178
|
+
else
|
179
|
+
expect(file).to have_file_content file_content_including(content.chomp)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
step '(a/the) file (named) "([^"]*)" should (not )?contain exactly:' do |file, negated, content|
|
184
|
+
if negated
|
185
|
+
expect(file).not_to have_file_content content
|
186
|
+
else
|
187
|
+
expect(file).to have_file_content content
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
step '(a/the) file (named) "([^"]*)" should (not )?match %r<([^\/]*)>' do |file, negated, content|
|
192
|
+
if negated
|
193
|
+
expect(file).not_to have_file_content file_content_matching(content)
|
194
|
+
else
|
195
|
+
expect(file).to have_file_content file_content_matching(content)
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
step '(a/the) file (named) "([^"]*)" should (not )?match \/([^\/]*)\/' do |file, negated, content|
|
200
|
+
if negated
|
201
|
+
expect(file).not_to have_file_content file_content_matching(content)
|
202
|
+
else
|
203
|
+
expect(file).to have_file_content file_content_matching(content)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
step '(a/the) file (named) "([^"]*)" should (not )?be equal to file "([^"]*)"/) do |file, negated, reference_file|
|
208
|
+
if negated
|
209
|
+
expect(file).not_to have_same_file_content_like(reference_file)
|
210
|
+
else
|
211
|
+
expect(file).to have_same_file_content_like(reference_file)
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
=end
|
216
|
+
|
217
|
+
step 'the (file/directory) (named) ":path" :outcome have permissions ":permissions"' do |path, expect_success, permissions|
|
218
|
+
if expect_success
|
219
|
+
expect(path).to have_permissions(permissions)
|
220
|
+
else
|
221
|
+
expect(path).not_to have_permissions(permissions)
|
222
|
+
end
|
223
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
placeholder :channel do
|
2
|
+
match /(output|stderr|stdout)/ do |channel|
|
3
|
+
channel
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
placeholder :command do
|
8
|
+
match /`([^`]+)`/ do |command|
|
9
|
+
command
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
placeholder :with_optional_timeout do
|
14
|
+
match /\sfor up to (\d+) seconds?/ do |seconds|
|
15
|
+
seconds.to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
match // do
|
19
|
+
nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
placeholder :outcome do
|
24
|
+
match /should not/ do
|
25
|
+
false
|
26
|
+
end
|
27
|
+
|
28
|
+
match /should/ do
|
29
|
+
true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
placeholder :is_regex do
|
34
|
+
match /regex/ do
|
35
|
+
true
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Turnip
|
2
|
+
step "the feature/features :outcome (all) pass" do |expect_success|
|
3
|
+
if expect_success
|
4
|
+
step 'the output should not contain "(FAILED"'
|
5
|
+
step 'the output should not contain "No such step:"'
|
6
|
+
step "the exit status should be 0"
|
7
|
+
else
|
8
|
+
step 'the output should contain "(FAILED"'
|
9
|
+
step "the exit status should be 1"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# Turnip
|
14
|
+
step "the feature/features :outcome (all) pass with:" do |expect_success, string|
|
15
|
+
if expect_success
|
16
|
+
step "the features should pass"
|
17
|
+
else
|
18
|
+
step "the features should not pass"
|
19
|
+
end
|
20
|
+
|
21
|
+
step "the output should contain:", string
|
22
|
+
end
|
23
|
+
|
24
|
+
# Turnip
|
25
|
+
step "the feature/features :outcome (all) pass with regex:" do |expect_success, string|
|
26
|
+
if expect_success
|
27
|
+
step "the features should pass"
|
28
|
+
else
|
29
|
+
step "the features should not pass"
|
30
|
+
end
|
31
|
+
|
32
|
+
step "the output should match %r<#{string}>"
|
33
|
+
end
|
data/lib/aruba/turnip.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module Aruba; end
|
2
|
+
|
3
|
+
module Aruba::Turnip
|
4
|
+
end
|
5
|
+
|
6
|
+
require "turnip/rspec"
|
7
|
+
require "aruba/rspec"
|
8
|
+
require "aruba/api"
|
9
|
+
|
10
|
+
require "aruba/turnip/placeholders"
|
11
|
+
require "aruba/turnip/command"
|
12
|
+
require "aruba/turnip/file"
|
13
|
+
require "aruba/turnip/testing_frameworks"
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Simple Cli App
|
2
|
+
|
3
|
+
This is a simple test cli app
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'cli-app'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install cli-app
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
Place files in `lib/cli/app/`. They are loaded automatically. If you need a
|
24
|
+
specific load order, use `require` in your files.
|
25
|
+
|
26
|
+
### CLI
|
27
|
+
|
28
|
+
```
|
29
|
+
cli
|
30
|
+
```
|
31
|
+
|
32
|
+
### Library
|
33
|
+
|
34
|
+
You can use `script/console` to load your library.
|
35
|
+
|
36
|
+
### Fixture
|
37
|
+
|
38
|
+
This fixture includes files for `cucumber`- and `rspec`-integration.
|
39
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'cli/app/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'cli-app'
|
8
|
+
spec.version = Cli::App::VERSION
|
9
|
+
spec.authors = ['Aruba Developers']
|
10
|
+
spec.email = 'cukes@googlegroups.com'
|
11
|
+
|
12
|
+
spec.summary = 'Summary'
|
13
|
+
spec.description = 'Description'
|
14
|
+
spec.homepage = 'http://example.com'
|
15
|
+
|
16
|
+
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
17
|
+
# delete this section to allow pushing this gem to any host.
|
18
|
+
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
|
+
spec.bindir = 'exe'
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ['lib']
|
23
|
+
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.9'
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module SimpleCov
|
2
|
+
module Formatter
|
3
|
+
class HTMLFormatter
|
4
|
+
def format(result)
|
5
|
+
Dir[File.join(File.dirname(__FILE__), "../public/*")].each do |path|
|
6
|
+
FileUtils.cp_r(path, asset_output_path)
|
7
|
+
end
|
8
|
+
|
9
|
+
File.open(File.join(output_path, "index.html"), "wb") do |file|
|
10
|
+
file.puts template("layout").result(binding)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Feature: Working Directory
|
2
|
+
Scenario: Working Directory
|
3
|
+
Given a file named "foo/bar/example.txt" with:
|
4
|
+
"""
|
5
|
+
hello world
|
6
|
+
"""
|
7
|
+
When I cd to "foo/bar"
|
8
|
+
And I run `cat example.txt`
|
9
|
+
Then the output should contain "hello world"
|
10
|
+
And the file "example.txt" should exist
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __dir__)
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../../../../../lib", __dir__)
|
3
|
+
|
4
|
+
require "aruba/turnip"
|
5
|
+
require "cli/app"
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.include Aruba::Api
|
9
|
+
end
|
10
|
+
|
11
|
+
::Dir.glob(::File.expand_path("support/**/*.rb", __dir__)).each do |f|
|
12
|
+
require_relative f
|
13
|
+
end
|
14
|
+
|
15
|
+
::Dir.glob(::File.expand_path("acceptance/support/**/*.rb", __dir__)).each do |f|
|
16
|
+
require_relative f
|
17
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'aruba/rspec'
|
@@ -0,0 +1 @@
|
|
1
|
+
hello world
|
@@ -0,0 +1,56 @@
|
|
1
|
+
When /^I do aruba (.*)$/ do |aruba_step|
|
2
|
+
@aruba_exception = StandardError.new
|
3
|
+
|
4
|
+
begin
|
5
|
+
step(aruba_step)
|
6
|
+
rescue => e
|
7
|
+
@aruba_exception = e
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# Useful for debugging timing problems
|
12
|
+
When /^sleep (\d+)$/ do |time|
|
13
|
+
sleep time.to_i
|
14
|
+
end
|
15
|
+
|
16
|
+
When /^I set env variable "(\w+)" to "([^"]*)"$/ do |var, value|
|
17
|
+
ENV[var] = value
|
18
|
+
end
|
19
|
+
|
20
|
+
Then /^aruba should fail with "([^"]*)"$/ do |error_message|
|
21
|
+
expect(@aruba_exception.message).to include sanitize_text(error_message)
|
22
|
+
end
|
23
|
+
|
24
|
+
Then /^the following step should fail with Spec::Expectations::ExpectationNotMetError:$/ do |multiline_step|
|
25
|
+
expect{steps multiline_step.to_s}.to raise_error(RSpec::Expectations::ExpectationNotMetError)
|
26
|
+
end
|
27
|
+
|
28
|
+
Given(/^the default executable$/) do
|
29
|
+
step 'an executable named "bin/aruba-test-cli" with:', <<-EOS
|
30
|
+
#!/usr/bin/env ruby
|
31
|
+
|
32
|
+
$LOAD_PATH << File.expand_path('../../lib', __FILE__)
|
33
|
+
require 'cli/app'
|
34
|
+
|
35
|
+
exit 0
|
36
|
+
EOS
|
37
|
+
end
|
38
|
+
|
39
|
+
Given(/^the default feature-test$/) do
|
40
|
+
step(
|
41
|
+
'a file named "features/default.feature" with:',
|
42
|
+
<<-EOS.strip_heredoc
|
43
|
+
Feature: Default Feature
|
44
|
+
|
45
|
+
This is the default feature
|
46
|
+
|
47
|
+
Scenario: Run command
|
48
|
+
Given I successfully run `cli`
|
49
|
+
EOS
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
Then(/^aruba should be installed on the local system$/) do
|
54
|
+
run('gem list aruba')
|
55
|
+
expect(last_command_started).to have_output(/aruba/)
|
56
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
Feature: Check exit status of commands
|
2
|
+
|
3
|
+
Use the `the exit status should be \d`-step to check the exit status of the
|
4
|
+
last command which was executed.
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I use a fixture named "cli-app"
|
8
|
+
|
9
|
+
Scenario: Test for exit status of 0
|
10
|
+
Given an executable named "bin/aruba-test-cli" with:
|
11
|
+
"""
|
12
|
+
#!/bin/bash
|
13
|
+
exit 0
|
14
|
+
"""
|
15
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
16
|
+
"""
|
17
|
+
Feature: Exit status
|
18
|
+
Scenario: Run command
|
19
|
+
When I run `aruba-test-cli`
|
20
|
+
Then the exit status should be 0
|
21
|
+
"""
|
22
|
+
When I run `rspec`
|
23
|
+
Then the features should all pass
|
24
|
+
|
25
|
+
Scenario: Test for exit status 1
|
26
|
+
Given an executable named "bin/aruba-test-cli" with:
|
27
|
+
"""
|
28
|
+
#!/bin/bash
|
29
|
+
exit 1
|
30
|
+
"""
|
31
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
32
|
+
"""
|
33
|
+
Feature: Failing program
|
34
|
+
Scenario: Run command
|
35
|
+
When I run `aruba-test-cli`
|
36
|
+
Then the exit status should be 1
|
37
|
+
"""
|
38
|
+
When I run `rspec`
|
39
|
+
Then the features should all pass
|
40
|
+
|
41
|
+
Scenario: Test for non-zero exit status
|
42
|
+
Given an executable named "bin/aruba-test-cli" with:
|
43
|
+
"""
|
44
|
+
#!/bin/bash
|
45
|
+
exit 1
|
46
|
+
"""
|
47
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
48
|
+
"""
|
49
|
+
Feature: Failing program
|
50
|
+
Scenario: Run command
|
51
|
+
When I run `aruba-test-cli`
|
52
|
+
Then the exit status should not be 0
|
53
|
+
"""
|
54
|
+
When I run `rspec`
|
55
|
+
Then the features should all pass
|
56
|
+
|
57
|
+
Scenario: Successfully run something
|
58
|
+
Given an executable named "bin/aruba-test-cli" with:
|
59
|
+
"""
|
60
|
+
#!/bin/bash
|
61
|
+
exit 0
|
62
|
+
"""
|
63
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
64
|
+
"""
|
65
|
+
Feature: Failing program
|
66
|
+
Scenario: Run command
|
67
|
+
When I successfully run `aruba-test-cli`
|
68
|
+
"""
|
69
|
+
When I run `rspec`
|
70
|
+
Then the features should all pass
|
71
|
+
|
72
|
+
Scenario: Fail to run something successfully
|
73
|
+
Given an executable named "bin/aruba-test-cli" with:
|
74
|
+
"""
|
75
|
+
#!/bin/bash
|
76
|
+
exit 1
|
77
|
+
"""
|
78
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
79
|
+
"""
|
80
|
+
Feature: Failing program
|
81
|
+
Scenario: Run command
|
82
|
+
When I successfully run `aruba-test-cli`
|
83
|
+
"""
|
84
|
+
When I run `rspec`
|
85
|
+
Then the features should not all pass
|
86
|
+
|
87
|
+
Scenario: Overwrite the default exit timeout via step
|
88
|
+
Given an executable named "bin/aruba-test-cli" with:
|
89
|
+
"""
|
90
|
+
#!/bin/bash
|
91
|
+
sleep 1
|
92
|
+
"""
|
93
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
94
|
+
"""
|
95
|
+
Feature: Failing program
|
96
|
+
Scenario: Run command
|
97
|
+
Given the default aruba exit timeout is 2 seconds
|
98
|
+
When I successfully run `aruba-test-cli`
|
99
|
+
"""
|
100
|
+
When I run `rspec`
|
101
|
+
Then the features should all pass
|
102
|
+
|
103
|
+
Scenario: Successfully run something longer then the default time
|
104
|
+
Given an executable named "bin/aruba-test-cli" with:
|
105
|
+
"""
|
106
|
+
#!/bin/bash
|
107
|
+
sleep 1
|
108
|
+
"""
|
109
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
110
|
+
"""
|
111
|
+
Feature: Failing program
|
112
|
+
Scenario: Run command
|
113
|
+
Given the default aruba exit timeout is 0 seconds
|
114
|
+
When I successfully run `aruba-test-cli` for up to 2 seconds
|
115
|
+
"""
|
116
|
+
When I run `rspec`
|
117
|
+
Then the features should all pass
|
118
|
+
|
119
|
+
Scenario: Unsuccessfully run something that takes too long
|
120
|
+
Given an executable named "bin/aruba-test-cli" with:
|
121
|
+
"""
|
122
|
+
#!/bin/bash
|
123
|
+
sleep 2
|
124
|
+
"""
|
125
|
+
And a file named "spec/acceptance/exit_status.feature" with:
|
126
|
+
"""
|
127
|
+
Feature: Failing program
|
128
|
+
Scenario: Run command
|
129
|
+
Given the default aruba exit timeout is 0 seconds
|
130
|
+
When I successfully run `aruba-test-cli` for up to 1 seconds
|
131
|
+
"""
|
132
|
+
When I run `rspec`
|
133
|
+
Then the features should not all pass with:
|
134
|
+
"""
|
135
|
+
expected "aruba-test-cli" to have finished in time
|
136
|
+
"""
|