summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/mspec/lib/mspec/helpers/ruby_exe.rb10
-rw-r--r--spec/mspec/spec/helpers/ruby_exe_spec.rb2
2 files changed, 7 insertions, 5 deletions
diff --git a/spec/mspec/lib/mspec/helpers/ruby_exe.rb b/spec/mspec/lib/mspec/helpers/ruby_exe.rb
index c62c19f3aa..4948ec09f1 100644
--- a/spec/mspec/lib/mspec/helpers/ruby_exe.rb
+++ b/spec/mspec/lib/mspec/helpers/ruby_exe.rb
@@ -135,16 +135,18 @@ def ruby_exe(code = :not_given, opts = {})
code = tmpfile
end
- expected_exit_status = opts.fetch(:exit_status, 0)
+ expected_status = opts.fetch(:exit_status, 0)
begin
platform_is_not :opal do
command = ruby_cmd(code, opts)
output = `#{command}`
- last_status = Process.last_status
- if last_status.exitstatus != expected_exit_status
- raise "Expected exit status is #{expected_exit_status.inspect} but actual is #{last_status.exitstatus.inspect} for command ruby_exe(#{command.inspect})"
+ exit_status = Process.last_status.exitstatus
+ if exit_status != expected_status
+ formatted_output = output.lines.map { |line| " #{line}" }.join
+ raise SpecExpectationNotMetError,
+ "Expected exit status is #{expected_status.inspect} but actual is #{exit_status.inspect} for command ruby_exe(#{command.inspect})\nOutput:\n#{formatted_output}"
end
output
diff --git a/spec/mspec/spec/helpers/ruby_exe_spec.rb b/spec/mspec/spec/helpers/ruby_exe_spec.rb
index 8f14f63a32..79ce55ca75 100644
--- a/spec/mspec/spec/helpers/ruby_exe_spec.rb
+++ b/spec/mspec/spec/helpers/ruby_exe_spec.rb
@@ -145,7 +145,7 @@ RSpec.describe Object, "#ruby_exe" do
stub_const 'RUBY_EXE', 'ruby_spec_exe -w -Q'
@script = RubyExeSpecs.new
- allow(@script).to receive(:`)
+ allow(@script).to receive(:`).and_return('OUTPUT')
status_successful = double(Process::Status, exitstatus: 0)
allow(Process).to receive(:last_status).and_return(status_successful)