aruba 0.11.0.pre → 0.11.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/History.md +21 -1
- data/aruba.gemspec +1 -0
- data/features/api/command/find_command.feature +83 -0
- data/features/api/command/last_command_started.feature +50 -0
- data/features/api/command/last_command_stopped.feature +89 -0
- data/features/api/command/run.feature +259 -0
- data/features/api/command/stop.feature +53 -1
- data/features/api/text/replace_variables.feature +1 -1
- data/features/getting_started/run_commands.feature +177 -0
- data/features/matchers/file/be_existing_executable.feature +87 -0
- data/features/{integration/rspec/getting_started.feature → rspec/integration.feature} +31 -0
- data/fixtures/getting-started-app/Gemfile +1 -1
- data/lib/aruba.rb +0 -19
- data/lib/aruba/api.rb +2 -0
- data/lib/aruba/api/command.rb +103 -44
- data/lib/aruba/api/core.rb +13 -8
- data/lib/aruba/api/deprecated.rb +26 -4
- data/lib/aruba/api/environment.rb +21 -13
- data/lib/aruba/api/filesystem.rb +13 -0
- data/lib/aruba/api/rvm.rb +5 -0
- data/lib/aruba/api/text.rb +7 -1
- data/lib/aruba/aruba_path.rb +6 -0
- data/lib/aruba/basic_configuration.rb +35 -3
- data/lib/aruba/basic_configuration/option.rb +7 -0
- data/lib/aruba/cli.rb +4 -0
- data/lib/aruba/command.rb +47 -1
- data/lib/aruba/config.rb +15 -2
- data/lib/aruba/config_wrapper.rb +49 -8
- data/lib/aruba/console.rb +4 -1
- data/lib/aruba/console/help.rb +2 -0
- data/lib/aruba/contracts/absolute_path.rb +7 -0
- data/lib/aruba/contracts/enum.rb +5 -0
- data/lib/aruba/contracts/is_power_of_two.rb +9 -2
- data/lib/aruba/contracts/relative_path.rb +7 -0
- data/lib/aruba/cucumber/command.rb +6 -9
- data/lib/aruba/cucumber/file.rb +1 -1
- data/lib/aruba/cucumber/hooks.rb +36 -29
- data/lib/aruba/errors.rb +16 -1
- data/lib/aruba/events.rb +39 -0
- data/lib/aruba/extensions/string/strip.rb +1 -0
- data/lib/aruba/file_size.rb +11 -0
- data/lib/aruba/hooks.rb +2 -0
- data/lib/aruba/in_config_wrapper.rb +24 -0
- data/lib/aruba/in_process.rb +2 -0
- data/lib/aruba/initializer.rb +37 -0
- data/lib/aruba/matchers/base/base_matcher.rb +2 -0
- data/lib/aruba/matchers/base/object_formatter.rb +4 -0
- data/lib/aruba/matchers/collection/all.rb +2 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +2 -0
- data/lib/aruba/matchers/command/have_exit_status.rb +1 -1
- data/lib/aruba/matchers/command/have_finished_in_time.rb +1 -10
- data/lib/aruba/matchers/command/have_output.rb +1 -10
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +1 -10
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +1 -10
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
- data/lib/aruba/platform.rb +4 -0
- data/lib/aruba/platforms/announcer.rb +225 -0
- data/lib/aruba/platforms/aruba_file_creator.rb +4 -0
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +4 -0
- data/lib/aruba/{aruba_logger.rb → platforms/aruba_logger.rb} +4 -0
- data/lib/aruba/platforms/command_monitor.rb +229 -0
- data/lib/aruba/platforms/determine_disk_usage.rb +5 -0
- data/lib/aruba/platforms/determine_file_size.rb +9 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +9 -0
- data/lib/aruba/platforms/local_environment.rb +12 -0
- data/lib/aruba/platforms/simple_table.rb +11 -0
- data/lib/aruba/platforms/unix_command_string.rb +3 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +3 -0
- data/lib/aruba/platforms/unix_platform.rb +20 -2
- data/lib/aruba/platforms/unix_which.rb +6 -2
- data/lib/aruba/platforms/windows_command_string.rb +7 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +2 -0
- data/lib/aruba/platforms/windows_platform.rb +3 -0
- data/lib/aruba/platforms/windows_which.rb +6 -2
- data/lib/aruba/processes/basic_process.rb +20 -5
- data/lib/aruba/processes/debug_process.rb +3 -1
- data/lib/aruba/processes/in_process.rb +18 -2
- data/lib/aruba/processes/spawn_process.rb +14 -13
- data/lib/aruba/rspec.rb +34 -23
- data/lib/aruba/runtime.rb +65 -6
- data/lib/aruba/setup.rb +87 -0
- data/lib/aruba/version.rb +1 -1
- data/spec/aruba/api_spec.rb +13 -36
- data/spec/aruba/{config_wrapper_spec.rb → in_config_wrapper_spec.rb} +1 -1
- data/spec/aruba/spawn_process_spec.rb +9 -14
- data/spec/support/configs/pry.rb +3 -0
- data/spec/support/shared_contexts/aruba.rb +1 -0
- metadata +40 -14
- data/features/getting_started/supported_programming_languages.feature +0 -89
- data/lib/aruba/announcer.rb +0 -219
- data/lib/aruba/matchers/rspec.rb +0 -0
- data/lib/aruba/process_monitor.rb +0 -201
- data/lib/aruba/processes/null_process.rb +0 -26
@@ -1,89 +0,0 @@
|
|
1
|
-
Feature: Supported programming languages
|
2
|
-
|
3
|
-
As long as you've got the neccessary programs, libraries, runtime
|
4
|
-
environments, interpreters installed, it doesn't matter in which programming
|
5
|
-
language your commandline application is implemented.
|
6
|
-
|
7
|
-
Below you find some examples of the "Hello, Aruba!"-application implemented
|
8
|
-
with different programming languages. This is NOT an exclusive list. Every
|
9
|
-
commandline application should run with `aruba`.
|
10
|
-
|
11
|
-
Background:
|
12
|
-
Given I use a fixture named "getting-started-app"
|
13
|
-
And a file named "features/hello_aruba.feature" with:
|
14
|
-
"""
|
15
|
-
Feature: Getting Started With Aruba
|
16
|
-
Scenario: First Run of Command
|
17
|
-
Given I successfully run `cli`
|
18
|
-
Then the output should contain:
|
19
|
-
\"\"\"
|
20
|
-
Hello, Aruba!
|
21
|
-
\"\"\"
|
22
|
-
"""
|
23
|
-
|
24
|
-
Scenario: Bash Program
|
25
|
-
Given an executable named "bin/cli" with:
|
26
|
-
"""bash
|
27
|
-
#!/usr/bin/env bash
|
28
|
-
|
29
|
-
echo "Hello, Aruba!"
|
30
|
-
"""
|
31
|
-
When I successfully run `cucumber`
|
32
|
-
Then the features should all pass
|
33
|
-
|
34
|
-
Scenario: Ruby Program
|
35
|
-
Given an executable named "bin/cli" with:
|
36
|
-
"""ruby
|
37
|
-
#!/usr/bin/env ruby
|
38
|
-
|
39
|
-
puts "Hello, Aruba!"
|
40
|
-
"""
|
41
|
-
When I successfully run `cucumber`
|
42
|
-
Then the features should all pass
|
43
|
-
|
44
|
-
Scenario: Python Program
|
45
|
-
Given an executable named "bin/cli" with:
|
46
|
-
"""python
|
47
|
-
#!/usr/bin/env python
|
48
|
-
|
49
|
-
print("Hello, Aruba!")
|
50
|
-
"""
|
51
|
-
When I successfully run `cucumber`
|
52
|
-
Then the features should all pass
|
53
|
-
|
54
|
-
Scenario: Perl Program
|
55
|
-
Given an executable named "bin/cli" with:
|
56
|
-
"""perl
|
57
|
-
#!/usr/bin/env perl
|
58
|
-
|
59
|
-
print "Hello, Aruba!\n";
|
60
|
-
"""
|
61
|
-
When I successfully run `cucumber`
|
62
|
-
Then the features should all pass
|
63
|
-
|
64
|
-
Scenario: Java Program
|
65
|
-
|
66
|
-
It's even possible to compile and run Java programs with Aruba.
|
67
|
-
|
68
|
-
Given a file named "features/hello_aruba.feature" with:
|
69
|
-
"""cucumber
|
70
|
-
Feature: Getting Started With Aruba
|
71
|
-
Scenario: First Run of Command
|
72
|
-
Given a file named "tmp/HelloArubaApp.java" with:
|
73
|
-
\"\"\"
|
74
|
-
class HelloArubaApp {
|
75
|
-
public static void main(String[] args) {
|
76
|
-
System.out.println("Hello, Aruba!");
|
77
|
-
}
|
78
|
-
}
|
79
|
-
\"\"\"
|
80
|
-
And I successfully run `javac tmp/HelloArubaApp.java`
|
81
|
-
And I cd to "tmp/"
|
82
|
-
And I successfully run `java HelloArubaApp`
|
83
|
-
Then the output should contain:
|
84
|
-
\"\"\"
|
85
|
-
Hello, Aruba!
|
86
|
-
\"\"\"
|
87
|
-
"""
|
88
|
-
When I successfully run `cucumber`
|
89
|
-
Then the features should all pass
|
data/lib/aruba/announcer.rb
DELETED
@@ -1,219 +0,0 @@
|
|
1
|
-
require 'shellwords'
|
2
|
-
|
3
|
-
module Aruba
|
4
|
-
# Announcer
|
5
|
-
#
|
6
|
-
# @example Activate your you own channel in cucumber
|
7
|
-
#
|
8
|
-
# Before('@announce-my-channel') do
|
9
|
-
# announcer.activate :my_channel
|
10
|
-
# end
|
11
|
-
#
|
12
|
-
# @example Activate your you own channel in rspec > 3
|
13
|
-
#
|
14
|
-
# before do
|
15
|
-
# current_example = context.example
|
16
|
-
# announcer.activate :my_channel if current_example.metadata[:announce_my_channel]
|
17
|
-
# end
|
18
|
-
#
|
19
|
-
# Aruba.announcer.announce(:my_channel, 'my message')
|
20
|
-
#
|
21
|
-
class Announcer
|
22
|
-
# Dev null
|
23
|
-
class NullAnnouncer
|
24
|
-
def announce(*)
|
25
|
-
nil
|
26
|
-
end
|
27
|
-
|
28
|
-
def mode?(*)
|
29
|
-
true
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# Announcer using Kernel.puts
|
34
|
-
class KernelPutsAnnouncer
|
35
|
-
def announce(message)
|
36
|
-
Kernel.puts message
|
37
|
-
end
|
38
|
-
|
39
|
-
def mode?(m)
|
40
|
-
:kernel_puts == m
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# Announcer using Main#puts
|
45
|
-
class PutsAnnouncer
|
46
|
-
def announce(message)
|
47
|
-
Kernel.puts message
|
48
|
-
end
|
49
|
-
|
50
|
-
def mode?(m)
|
51
|
-
:puts == m
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
private
|
56
|
-
|
57
|
-
attr_reader :announcers, :default_announcer, :announcer, :channels, :output_formats
|
58
|
-
|
59
|
-
public
|
60
|
-
|
61
|
-
def initialize(_, options)
|
62
|
-
@announcers = []
|
63
|
-
@announcers << PutsAnnouncer.new
|
64
|
-
@announcers << KernelPutsAnnouncer.new
|
65
|
-
@announcers << NullAnnouncer.new
|
66
|
-
|
67
|
-
@default_announcer = @announcers.last
|
68
|
-
@announcer = @announcers.first
|
69
|
-
@channels = {}
|
70
|
-
@output_formats = {}
|
71
|
-
|
72
|
-
@options = options
|
73
|
-
|
74
|
-
after_init
|
75
|
-
end
|
76
|
-
|
77
|
-
private
|
78
|
-
|
79
|
-
# rubocop:disable Metrics/MethodLength
|
80
|
-
def after_init
|
81
|
-
output_format :directory, '$ cd %s'
|
82
|
-
output_format :command, '$ %s'
|
83
|
-
output_format :environment, proc { |n, v| format('$ export %s=%s', n, Shellwords.escape(v)) }
|
84
|
-
output_format :modified_environment, proc { |n, v| format('$ export %s=%s', n, Shellwords.escape(v)) }
|
85
|
-
output_format :full_environment, proc { |h| Aruba.platform.simple_table(h) }
|
86
|
-
output_format :timeout, '# %s-timeout: %s seconds'
|
87
|
-
output_format :wait_time, '# %s: %s seconds'
|
88
|
-
output_format :stop_signal, proc { |p, s| format('Command will be stopped with `kill -%s %s`', s, p) }
|
89
|
-
output_format :stderr, "<<-STDERR\n%s\nSTDERR"
|
90
|
-
output_format :stdout, "<<-STDOUT\n%s\nSTDOUT"
|
91
|
-
|
92
|
-
# rubocop:disable Metrics/LineLength
|
93
|
-
if @options[:stdout]
|
94
|
-
warn('The use of "@announce_stdout-instance" variable and "options[:stdout] = true" for Announcer.new is deprecated. Please use "announcer.activate(:stdout)" instead.')
|
95
|
-
activate :stdout
|
96
|
-
end
|
97
|
-
if @options[:stderr]
|
98
|
-
warn('The use of "@announce_stderr-instance" variable and "options[:stderr] = true" for Announcer.new is deprecated. Please use "announcer.activate(:stderr)" instead.')
|
99
|
-
activate :stderr
|
100
|
-
end
|
101
|
-
if @options[:dir]
|
102
|
-
warn('The use of "@announce_dir-instance" variable and "options[:dir] = true" for Announcer.new is deprecated. Please use "announcer.activate(:directory)" instead.')
|
103
|
-
activate :directory
|
104
|
-
end
|
105
|
-
if @options[:cmd]
|
106
|
-
warn('The use of "@announce_cmd-instance" variable and "options[:cmd] = true" for Announcer.new is deprecated. Please use "announcer.activate(:command)" instead.')
|
107
|
-
activate :command
|
108
|
-
end
|
109
|
-
if @options[:env]
|
110
|
-
warn('The use of "@announce_env-instance" variable and "options[:env] = true" for Announcer.new is deprecated. Please use "announcer.activate(:modified_environment)" instead.')
|
111
|
-
activate :modified_enviroment
|
112
|
-
end
|
113
|
-
# rubocop:enable Metrics/LineLength
|
114
|
-
end
|
115
|
-
# rubocop:enable Metrics/MethodLength
|
116
|
-
|
117
|
-
def output_format(channel, string = '%s', &block)
|
118
|
-
if block_given?
|
119
|
-
output_formats[channel.to_sym] = block
|
120
|
-
elsif string.is_a?(Proc)
|
121
|
-
output_formats[channel.to_sym] = string
|
122
|
-
else
|
123
|
-
output_formats[channel.to_sym] = proc { |*args| format(string, *args) }
|
124
|
-
end
|
125
|
-
|
126
|
-
self
|
127
|
-
end
|
128
|
-
|
129
|
-
public
|
130
|
-
|
131
|
-
# Reset announcer
|
132
|
-
def reset
|
133
|
-
@default_announcer = @announcers.last
|
134
|
-
@announcer = @announcers.first
|
135
|
-
end
|
136
|
-
|
137
|
-
# Change mode of announcer
|
138
|
-
#
|
139
|
-
# @param [Symbol] m
|
140
|
-
# The mode to set
|
141
|
-
def mode=(m)
|
142
|
-
@announcer = @announcers.find { |a| f.mode? m.to_sym }
|
143
|
-
|
144
|
-
self
|
145
|
-
end
|
146
|
-
|
147
|
-
# Check if channel is activated
|
148
|
-
#
|
149
|
-
# @param [Symbol] channel
|
150
|
-
# The name of the channel to check
|
151
|
-
def activated?(channel)
|
152
|
-
channels[channel.to_sym] == true
|
153
|
-
end
|
154
|
-
|
155
|
-
# Activate a channel
|
156
|
-
#
|
157
|
-
# @param [Symbol] channel
|
158
|
-
# The name of the channel to activate
|
159
|
-
def activate(channel)
|
160
|
-
channels[channel.to_sym] = true
|
161
|
-
|
162
|
-
self
|
163
|
-
end
|
164
|
-
|
165
|
-
# Announce information to channel
|
166
|
-
#
|
167
|
-
# @param [Symbol] channel
|
168
|
-
# The name of the channel to check
|
169
|
-
#
|
170
|
-
# @param [Array] args
|
171
|
-
# Arguments
|
172
|
-
def announce(channel, *args)
|
173
|
-
channel = channel.to_sym
|
174
|
-
|
175
|
-
the_output_format = if output_formats.key? channel
|
176
|
-
output_formats[channel]
|
177
|
-
else
|
178
|
-
proc { |v| format('%s', v) }
|
179
|
-
end
|
180
|
-
|
181
|
-
message = the_output_format.call(*args)
|
182
|
-
|
183
|
-
announcer.announce(message) if channels[channel]
|
184
|
-
|
185
|
-
default_announcer.announce message
|
186
|
-
end
|
187
|
-
|
188
|
-
# @deprecated
|
189
|
-
def stdout(content)
|
190
|
-
warn('The announcer now has a new api to activate channels. Please use this one: announce(:stdout, message)')
|
191
|
-
announce :stdout, content
|
192
|
-
end
|
193
|
-
|
194
|
-
# @deprecated
|
195
|
-
def stderr(content)
|
196
|
-
warn('The announcer now has a new api to activate channels. Please use this one: announce(:stderr, message)')
|
197
|
-
announce :stderr, content
|
198
|
-
end
|
199
|
-
|
200
|
-
# @deprecated
|
201
|
-
def dir(dir)
|
202
|
-
warn('The announcer now has a new api to activate channels. Please use this one announce(:directory, message)')
|
203
|
-
announce :directory, dir
|
204
|
-
end
|
205
|
-
|
206
|
-
# @deprecated
|
207
|
-
def cmd(cmd)
|
208
|
-
warn('The announcer now has a new api to activate channels. Please use this one announce(:command, message)')
|
209
|
-
announce :command, cmd
|
210
|
-
end
|
211
|
-
|
212
|
-
# @deprecated
|
213
|
-
def env(key, value)
|
214
|
-
warn('The announcer now has a new api to activate channels. Please use this one: announce(:modified_environment, key, value)')
|
215
|
-
|
216
|
-
announce :modified_environment, key, value
|
217
|
-
end
|
218
|
-
end
|
219
|
-
end
|
data/lib/aruba/matchers/rspec.rb
DELETED
File without changes
|
@@ -1,201 +0,0 @@
|
|
1
|
-
require 'aruba/processes/null_process'
|
2
|
-
|
3
|
-
module Aruba
|
4
|
-
class ProcessMonitor
|
5
|
-
private
|
6
|
-
|
7
|
-
attr_reader :processes, :announcer
|
8
|
-
|
9
|
-
public
|
10
|
-
|
11
|
-
def initialize(announcer)
|
12
|
-
@processes = []
|
13
|
-
@announcer = announcer
|
14
|
-
end
|
15
|
-
|
16
|
-
def last_exit_status
|
17
|
-
Aruba.platform.deprecated('The use of "#last_exit_status" is deprecated. Use "last_command_(started|stopped).exit_status" instead')
|
18
|
-
|
19
|
-
return @last_exit_status if @last_exit_status
|
20
|
-
all_commands.each { |c| stop_process(c) }
|
21
|
-
@last_exit_status
|
22
|
-
end
|
23
|
-
|
24
|
-
def last_command_stopped
|
25
|
-
return @last_command_stopped if @last_command_stopped
|
26
|
-
return Command.new('false',
|
27
|
-
:mode => :null,
|
28
|
-
:exit_timeout => 0,
|
29
|
-
:io_wait_timeout => 0,
|
30
|
-
:working_directory => '/tmp',
|
31
|
-
:environment => {},
|
32
|
-
:main_class => nil,
|
33
|
-
:stop_signal => nil,
|
34
|
-
:startup_wait_time => nil
|
35
|
-
) if all_commands.empty?
|
36
|
-
|
37
|
-
all_commands.each { |c| stop_process(c) }
|
38
|
-
|
39
|
-
@last_command_stopped
|
40
|
-
end
|
41
|
-
|
42
|
-
def last_command_started
|
43
|
-
return Command.new('false',
|
44
|
-
:mode => :null,
|
45
|
-
:exit_timeout => 0,
|
46
|
-
:io_wait_timeout => 0,
|
47
|
-
:working_directory => '/tmp',
|
48
|
-
:environment => {},
|
49
|
-
:main_class => nil,
|
50
|
-
:stop_signal => nil,
|
51
|
-
:startup_wait_time => nil
|
52
|
-
) unless processes.last.is_a? Array
|
53
|
-
|
54
|
-
processes.last[1]
|
55
|
-
end
|
56
|
-
|
57
|
-
def stop_process(process)
|
58
|
-
@last_command_stopped = process
|
59
|
-
@last_exit_status = process.stop(announcer)
|
60
|
-
end
|
61
|
-
|
62
|
-
def terminate_process!(process)
|
63
|
-
@last_command_stopped = process
|
64
|
-
@last_exit_status = process.terminate
|
65
|
-
end
|
66
|
-
|
67
|
-
def stop_processes!
|
68
|
-
Aruba.platform.deprecated('The use of "#stop_processes!" is deprecated. Use "#stop_all_commands" instead')
|
69
|
-
|
70
|
-
stop_all_commands
|
71
|
-
end
|
72
|
-
|
73
|
-
def stop_all_commands
|
74
|
-
all_commands.each { |c| c.stop(announcer) }
|
75
|
-
end
|
76
|
-
|
77
|
-
# Terminate all running processes
|
78
|
-
def terminate_processes
|
79
|
-
Aruba.platform.deprecated('The use of "#terminate_processes" is deprecated. Use "#all_commands.each(&:terminate)" instead')
|
80
|
-
|
81
|
-
processes.each do |_, process|
|
82
|
-
terminate_process(process)
|
83
|
-
stop_process(process)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def register_process(name, process)
|
88
|
-
processes << [name, process]
|
89
|
-
|
90
|
-
[name, process]
|
91
|
-
end
|
92
|
-
|
93
|
-
def get_process(wanted)
|
94
|
-
matching_processes = processes.reverse.find{ |name, _| name == wanted }
|
95
|
-
raise ArgumentError.new("No process named '#{wanted}' has been started") unless matching_processes
|
96
|
-
matching_processes.last
|
97
|
-
end
|
98
|
-
|
99
|
-
def only_processes
|
100
|
-
Aruba.platform.deprecated('The use of "#only_processes" is deprecated. Use "#all_commands" instead')
|
101
|
-
|
102
|
-
processes.collect{ |_, process| process }
|
103
|
-
end
|
104
|
-
|
105
|
-
# Fetch output (stdout, stderr) from command
|
106
|
-
#
|
107
|
-
# @param [String] cmd
|
108
|
-
# The command
|
109
|
-
def output_from(cmd)
|
110
|
-
cmd = Aruba.platform.detect_ruby(cmd)
|
111
|
-
get_process(cmd).output
|
112
|
-
end
|
113
|
-
|
114
|
-
# Fetch stdout from command
|
115
|
-
#
|
116
|
-
# @param [String] cmd
|
117
|
-
# The command
|
118
|
-
def stdout_from(cmd)
|
119
|
-
cmd = Aruba.platform.detect_ruby(cmd)
|
120
|
-
get_process(cmd).stdout
|
121
|
-
end
|
122
|
-
|
123
|
-
# Fetch stderr from command
|
124
|
-
#
|
125
|
-
# @param [String] cmd
|
126
|
-
# The command
|
127
|
-
def stderr_from(cmd)
|
128
|
-
cmd = Aruba.platform.detect_ruby(cmd)
|
129
|
-
get_process(cmd).stderr
|
130
|
-
end
|
131
|
-
|
132
|
-
# Get stdout of all processes
|
133
|
-
#
|
134
|
-
# @return [String]
|
135
|
-
# The stdout of all process which have run before
|
136
|
-
def all_stdout
|
137
|
-
# rubocop:disable Metrics/LineLength
|
138
|
-
Aruba.platform.deprecated('The use of "#all_stdout" is deprecated. Use `all_commands.map { |c| c.stdout }.join("\n") instead. If you need to check for some output use "expect(all_commands).to have_output_on_stdout /output/" instead')
|
139
|
-
# rubocop:enable Metrics/LineLength
|
140
|
-
|
141
|
-
stop_all_commands
|
142
|
-
|
143
|
-
if RUBY_VERSION < '1.9'
|
144
|
-
out = ''
|
145
|
-
only_processes.each { |ps| out << ps.stdout }
|
146
|
-
|
147
|
-
out
|
148
|
-
else
|
149
|
-
only_processes.each_with_object("") { |ps, o| o << ps.stdout }
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
# Get stderr of all processes
|
154
|
-
#
|
155
|
-
# @return [String]
|
156
|
-
# The stderr of all process which have run before
|
157
|
-
def all_stderr
|
158
|
-
# rubocop:disable Metrics/LineLength
|
159
|
-
Aruba.platform.deprecated('The use of "#all_stderr" is deprecated. Use `all_commands.map { |c| c.stderr }.join("\n") instead. If you need to check for some output use "expect(all_commands).to have_output_on_stderr /output/" instead')
|
160
|
-
# rubocop:enable Metrics/LineLength
|
161
|
-
|
162
|
-
stop_all_commands
|
163
|
-
|
164
|
-
if RUBY_VERSION < '1.9'
|
165
|
-
out = ''
|
166
|
-
only_processes.each { |ps| out << ps.stderr }
|
167
|
-
|
168
|
-
out
|
169
|
-
else
|
170
|
-
only_processes.each_with_object("") { |ps, o| o << ps.stderr }
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
# Get stderr and stdout of all processes
|
175
|
-
#
|
176
|
-
# @return [String]
|
177
|
-
# The stderr and stdout of all process which have run before
|
178
|
-
def all_output
|
179
|
-
# rubocop:disable Metrics/LineLength
|
180
|
-
Aruba.platform.deprecated('The use of "#all_output" is deprecated. Use `all_commands.map { |c| c.output }.join("\n") instead. If you need to check for some output use "expect(all_commands).to have_output /output/" instead')
|
181
|
-
# rubocop:enable Metrics/LineLength
|
182
|
-
|
183
|
-
all_stdout << all_stderr
|
184
|
-
end
|
185
|
-
|
186
|
-
# Return all commands
|
187
|
-
#
|
188
|
-
# @return [Array]
|
189
|
-
# A list of all commands
|
190
|
-
def all_commands
|
191
|
-
processes.collect { |_, process| process }
|
192
|
-
end
|
193
|
-
|
194
|
-
# Clear list of processes
|
195
|
-
def clear
|
196
|
-
processes.clear
|
197
|
-
|
198
|
-
self
|
199
|
-
end
|
200
|
-
end
|
201
|
-
end
|