diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-29 14:35:09 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-29 14:35:09 +0000 |
commit | d55cd34ba8680310fb07c2f5c1c6a27b4902865d (patch) | |
tree | abc35065c29846042d84e71b6bf500df5cd76d68 /spec/mspec/lib | |
parent | 0a11abfc7ec92fcf4eb9e973c68588f079fdb60d (diff) |
Update to ruby/mspec@021a119
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/mspec/lib')
44 files changed, 162 insertions, 125 deletions
diff --git a/spec/mspec/lib/mspec/commands/mspec.rb b/spec/mspec/lib/mspec/commands/mspec.rb index d3edb4d51e..cb1c0fbacb 100755 --- a/spec/mspec/lib/mspec/commands/mspec.rb +++ b/spec/mspec/lib/mspec/commands/mspec.rb @@ -114,6 +114,7 @@ class MSpecMain < MSpecScript puts children.map { |child| child.gets }.uniq formatter.start + last_files = {} until @files.empty? IO.select(children)[0].each { |io| @@ -127,22 +128,33 @@ class MSpecMain < MSpecScript while chunk = (io.read_nonblock(4096) rescue nil) reply += chunk end - raise reply + reply.chomp!('.') + msg = "A child mspec-run process printed unexpected output on STDOUT" + if last_file = last_files[io] + msg += " while running #{last_file}" + end + abort "\n#{msg}: #{reply.inspect}" + end + + unless @files.empty? + file = @files.shift + last_files[io] = file + io.puts file end - io.puts @files.shift unless @files.empty? } end - ok = true + success = true children.each { |child| child.puts "QUIT" - Process.wait(child.pid) - ok &&= $?.success? + _pid, status = Process.wait2(child.pid) + success &&= status.success? + child.close } formatter.aggregate_results(output_files) formatter.finish - ok + success end def run @@ -152,7 +164,7 @@ class MSpecMain < MSpecScript argv.concat config[:flags] argv.concat config[:loadpath] argv.concat config[:requires] - argv << "#{MSPEC_HOME}/bin/mspec-#{ config[:command] || "run" }" + argv << "#{MSPEC_HOME}/bin/mspec-#{config[:command] || 'run'}" argv.concat config[:options] if config[:multi] diff --git a/spec/mspec/lib/mspec/helpers/ruby_exe.rb b/spec/mspec/lib/mspec/helpers/ruby_exe.rb index 7c3d6a36cf..f74ed014ce 100644 --- a/spec/mspec/lib/mspec/helpers/ruby_exe.rb +++ b/spec/mspec/lib/mspec/helpers/ruby_exe.rb @@ -38,6 +38,14 @@ require 'mspec/helpers/tmp' # If +nil+ is passed for the first argument, the command line # will be built only from the options hash. # +# If no arguments are passed to ruby_exe, it returns an Array +# containing the interpreter executable and the flags: +# +# spawn(*ruby_exe, "-e", "puts :hello") +# +# This avoids spawning an extra shell, and ensure the pid returned by spawn +# corresponds to the ruby process and not the shell. +# # The RUBY_EXE constant is setup by mspec automatically # and is used by ruby_exe and ruby_cmd. The mspec runner script # will set ENV['RUBY_EXE'] to the name of the executable used @@ -121,11 +129,15 @@ def resolve_ruby_exe raise Exception, "Unable to find a suitable ruby executable." end -def ruby_exe(code, opts = {}) +def ruby_exe(code = :not_given, opts = {}) if opts[:dir] raise "ruby_exe(..., dir: dir) is no longer supported, use Dir.chdir" end + if code == :not_given + return RUBY_EXE.split(' ') + end + env = opts[:env] || {} saved_env = {} env.each do |key, value| diff --git a/spec/mspec/lib/mspec/matchers/base.rb b/spec/mspec/lib/mspec/matchers/base.rb index 30fb1f93dc..86b2fb4cec 100644 --- a/spec/mspec/lib/mspec/matchers/base.rb +++ b/spec/mspec/lib/mspec/matchers/base.rb @@ -1,3 +1,15 @@ +module MSpecMatchers +end + +class MSpecEnv + include MSpecMatchers +end + +# Expactations are sometimes used in a module body +class Module + include MSpecMatchers +end + class SpecPositiveOperatorMatcher def initialize(actual) @actual = actual diff --git a/spec/mspec/lib/mspec/matchers/be_an_instance_of.rb b/spec/mspec/lib/mspec/matchers/be_an_instance_of.rb index 6e31afcddd..fdf3736ac2 100644 --- a/spec/mspec/lib/mspec/matchers/be_an_instance_of.rb +++ b/spec/mspec/lib/mspec/matchers/be_an_instance_of.rb @@ -19,8 +19,8 @@ class BeAnInstanceOfMatcher end end -class Object - def be_an_instance_of(expected) +module MSpecMatchers + private def be_an_instance_of(expected) BeAnInstanceOfMatcher.new(expected) end end diff --git a/spec/mspec/lib/mspec/matchers/be_ancestor_of.rb b/spec/mspec/lib/mspec/matchers/be_ancestor_of.rb index 792c64089a..05f72099e4 100644 --- a/spec/mspec/lib/mspec/matchers/be_ancestor_of.rb +++ b/spec/mspec/lib/mspec/matchers/be_ancestor_of.rb @@ -17,8 +17,8 @@ class BeAncestorOfMatcher end end -class Object - def be_ancestor_of(expected) +module MSpecMatchers + private def be_ancestor_of(expected) BeAncestorOfMatcher.new(expected) end end diff --git a/spec/mspec/lib/mspec/matchers/be_close.rb b/spec/mspec/lib/mspec/matchers/be_close.rb index 5d79654099..2cf0fba41f 100644 --- a/spec/mspec/lib/mspec/matchers/be_close.rb +++ b/spec/mspec/lib/mspec/matchers/be_close.rb @@ -20,8 +20,8 @@ class BeCloseMatcher end end -class Object - def be_close(expected, tolerance) +module MSpecMatchers + private def be_close(expected, tolerance) BeCloseMatcher.new(expected, tolerance) end end diff --git a/spec/mspec/lib/mspec/matchers/be_computed_by.rb b/spec/mspec/lib/mspec/matchers/be_computed_by.rb index c927eb7697..2e31bc93af 100644 --- a/spec/mspec/lib/mspec/matchers/be_computed_by.rb +++ b/spec/mspec/lib/mspec/matchers/be_computed_by.rb @@ -30,8 +30,8 @@ class BeComputedByMatcher end end -class Object - def be_computed_by(sym, *args) +module MSpecMatchers + private def be_computed_by(sym, *args) BeComputedByMatcher.new(sym, *args) end end diff --git a/spec/mspec/lib/mspec/matchers/be_empty.rb b/spec/mspec/lib/mspec/matchers/be_empty.rb index 8a401b63fd..5abd5c9485 100644 --- a/spec/mspec/lib/mspec/matchers/be_empty.rb +++ b/spec/mspec/lib/mspec/matchers/be_empty.rb @@ -13,8 +13,8 @@ class BeEmptyMatcher end end -class Object - def be_empty +module MSpecMatchers + private def be_empty BeEmptyMatcher.new end end diff --git a/spec/mspec/lib/mspec/matchers/be_false.rb b/spec/mspec/lib/mspec/matchers/be_false.rb index 33e371dad0..9e9a2608e1 100644 --- a/spec/mspec/lib/mspec/matchers/be_false.rb +++ b/spec/mspec/lib/mspec/matchers/be_false.rb @@ -13,8 +13,8 @@ class BeFalseMatcher end end -class Object - def be_false +module MSpecMatchers + private def be_false BeFalseMatcher.new end end diff --git a/spec/mspec/lib/mspec/matchers/be_kind_of.rb b/spec/mspec/lib/mspec/matchers/be_kind_of.rb index a734f6159c..a69906f210 100644 --- a/spec/mspec/lib/mspec/matchers/be_kind_of.rb +++ b/spec/mspec/lib/mspec/matchers/be_kind_of.rb @@ -17,8 +17,8 @@ class BeKindOfMatcher end end -class Object - def be_kind_of(expected) +module MSpecMatchers + private def be_kind_of(expected) BeKindOfMatcher.new(expected) end end diff --git a/spec/mspec/lib/mspec/matchers/be_nan.rb b/spec/mspec/lib/mspec/matchers/be_nan.rb index aa19391211..b279d8f1cf 100644 --- a/spec/mspec/lib/mspec/matchers/be_nan.rb +++ b/spec/mspec/lib/mspec/matchers/be_nan.rb @@ -13,8 +13,8 @@ class BeNaNMatcher end end -class Object - def be_nan +module MSpecMatchers + private def be_nan BeNaNMatcher.new end end diff --git a/spec/mspec/lib/mspec/matchers/be_nil.rb b/spec/mspec/lib/mspec/matchers/be_nil.rb index c107ae109c..049b1e3a53 100644 --- a/spec/mspec/lib/mspec/matchers/be_nil.rb +++ b/spec/mspec/lib/mspec/matchers/be_nil.rb @@ -13,8 +13,8 @@ class BeNilMatcher end end -class Object - def be_nil +module MSpecMatchers + private def be_nil BeNilMatcher.new end end diff --git a/spec/mspec/lib/mspec/matchers/be_true.rb b/spec/mspec/lib/mspec/matchers/be_true.rb index be107f45be..52f5013752 100644 --- a/spec/mspec/lib/mspec/matchers/be_true.rb +++ b/spec/mspec/lib/mspec/matchers/be_true.rb @@ -13,8 +13,8 @@ class BeTrueMatcher end end -class Object - def be_true +module MSpecMatchers + private def be_true BeTrueMatcher.new end end diff --git a/spec/mspec/lib/mspec/matchers/be_true_or_false.rb b/spec/mspec/lib/mspec/matchers/be_true_or_false.rb index b2262779ed..4294b08d1b 100644 --- a/spec/mspec/lib/mspec/matchers/be_true_or_false.rb +++ b/spec/mspec/lib/mspec/matchers/be_true_or_false.rb @@ -13,8 +13,8 @@ class BeTrueOrFalseMatcher end end -class Object - def be_true_or_false +module MSpecMatchers + private def be_true_or_false BeTrueOrFalseMatcher.new end end diff --git a/spec/mspec/lib/mspec/matchers/block_caller.rb b/spec/mspec/lib/mspec/matchers/block_caller.rb index 5451950712..017bce3cb7 100644 --- a/spec/mspec/lib/mspec/matchers/block_caller.rb +++ b/spec/mspec/lib/mspec/matchers/block_caller.rb @@ -28,8 +28,8 @@ class BlockingMatcher end end -class Object - def block_caller(timeout = 0.1) +module MSpecMatchers + private def block_caller(timeout = 0.1) BlockingMatcher.new end end diff --git a/spec/mspec/lib/mspec/matchers/complain.rb b/spec/mspec/lib/mspec/matchers/complain.rb index 1313215156..71b6a77680 100644 --- a/spec/mspec/lib/mspec/matchers/complain.rb +++ b/spec/mspec/lib/mspec/matchers/complain.rb @@ -49,8 +49,8 @@ class ComplainMatcher end end -class Object - def complain(complaint=nil) +module MSpecMatchers + private def complain(complaint=nil) ComplainMatcher.new(complaint) end end diff --git a/spec/mspec/lib/mspec/matchers/eql.rb b/spec/mspec/lib/mspec/matchers/eql.rb index 82117d862c..a855789550 100644 --- a/spec/mspec/lib/mspec/matchers/eql.rb +++ b/spec/mspec/lib/mspec/matchers/eql.rb @@ -19,8 +19,8 @@ class EqlMatcher end end -class Object - def eql(expected) +module MSpecMatchers + private def eql(expected) EqlMatcher.new(expected) end end diff --git a/spec/mspec/lib/mspec/matchers/equal.rb b/spec/mspec/lib/mspec/matchers/equal.rb index ee6431fd4f..5dc77d27ea 100644 --- a/spec/mspec/lib/mspec/matchers/equal.rb +++ b/spec/mspec/lib/mspec/matchers/equal.rb @@ -19,8 +19,8 @@ class EqualMatcher end end -class Object - def equal(expected) +module MSpecMatchers + private def equal(expected) EqualMatcher.new(expected) end end diff --git a/spec/mspec/lib/mspec/matchers/equal_element.rb b/spec/mspec/lib/mspec/matchers/equal_element.rb index 428bbfc8b6..1e9dfbcca1 100644 --- a/spec/mspec/lib/mspec/matchers/equal_element.rb +++ b/spec/mspec/lib/mspec/matchers/equal_element.rb @@ -71,8 +71,8 @@ class EqualElementMatcher end end -class Object - def equal_element(*args) +module MSpecMatchers + private def equal_element(*args) EqualElementMatcher.new(*args) end end diff --git a/spec/mspec/lib/mspec/matchers/have_class_variable.rb b/spec/mspec/lib/mspec/matchers/have_class_variable.rb index 2d1903e1a8..dd43ced621 100644 --- a/spec/mspec/lib/mspec/matchers/have_class_variable.rb +++ b/spec/mspec/lib/mspec/matchers/have_class_variable.rb @@ -5,8 +5,8 @@ class HaveClassVariableMatcher < VariableMatcher self.description = 'class variable' end -class Object - def have_class_variable(variable) +module MSpecMatchers + private def have_class_variable(variable) HaveClassVariableMatcher.new(variable) end end diff --git a/spec/mspec/lib/mspec/matchers/have_constant.rb b/spec/mspec/lib/mspec/matchers/have_constant.rb index df95219e53..6ec7c75b85 100644 --- a/spec/mspec/lib/mspec/matchers/have_constant.rb +++ b/spec/mspec/lib/mspec/matchers/have_constant.rb @@ -5,8 +5,8 @@ class HaveConstantMatcher < VariableMatcher self.description = 'constant' end -class Object - def have_constant(variable) +module MSpecMatchers + private def have_constant(variable) HaveConstantMatcher.new(variable) end end diff --git a/spec/mspec/lib/mspec/matchers/have_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_instance_method.rb index 00dcbd39eb..636aaf3e47 100644 --- a/spec/mspec/lib/mspec/matchers/have_instance_method.rb +++ b/spec/mspec/lib/mspec/matchers/have_instance_method.rb @@ -17,8 +17,8 @@ class HaveInstanceMethodMatcher < MethodMatcher end end -class Object - def have_instance_method(method, include_super=true) +module MSpecMatchers + private def have_instance_method(method, include_super=true) HaveInstanceMethodMatcher.new method, include_super end end diff --git a/spec/mspec/lib/mspec/matchers/have_instance_variable.rb b/spec/mspec/lib/mspec/matchers/have_instance_variable.rb index f83c803a26..de51b3209d 100644 --- a/spec/mspec/lib/mspec/matchers/have_instance_variable.rb +++ b/spec/mspec/lib/mspec/matchers/have_instance_variable.rb @@ -5,8 +5,8 @@ class HaveInstanceVariableMatcher < VariableMatcher self.description = 'instance variable' end -class Object - def have_instance_variable(variable) +module MSpecMatchers + private def have_instance_variable(variable) HaveInstanceVariableMatcher.new(variable) end end diff --git a/spec/mspec/lib/mspec/matchers/have_method.rb b/spec/mspec/lib/mspec/matchers/have_method.rb index 2fc3e66f69..35dae03af0 100644 --- a/spec/mspec/lib/mspec/matchers/have_method.rb +++ b/spec/mspec/lib/mspec/matchers/have_method.rb @@ -17,8 +17,8 @@ class HaveMethodMatcher < MethodMatcher end end -class Object - def have_method(method, include_super=true) +module MSpecMatchers + private def have_method(method, include_super=true) HaveMethodMatcher.new method, include_super end end diff --git a/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb index 87d9767a69..4eb7133055 100644 --- a/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb +++ b/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb @@ -17,8 +17,8 @@ class HavePrivateInstanceMethodMatcher < MethodMatcher end end -class Object - def have_private_instance_method(method, include_super=true) +module MSpecMatchers + private def have_private_instance_method(method, include_super=true) HavePrivateInstanceMethodMatcher.new method, include_super end end diff --git a/spec/mspec/lib/mspec/matchers/have_private_method.rb b/spec/mspec/lib/mspec/matchers/have_private_method.rb index d99d4ccb7f..3433d982cc 100644 --- a/spec/mspec/lib/mspec/matchers/have_private_method.rb +++ b/spec/mspec/lib/mspec/matchers/have_private_method.rb @@ -17,8 +17,8 @@ class HavePrivateMethodMatcher < MethodMatcher end end -class Object - def have_private_method(method, include_super=true) +module MSpecMatchers + private def have_private_method(method, include_super=true) HavePrivateMethodMatcher.new method, include_super end end diff --git a/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb index 92f38e9acb..641d4d0dc2 100644 --- a/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb +++ b/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb @@ -17,8 +17,8 @@ class HaveProtectedInstanceMethodMatcher < MethodMatcher end end -class Object - def have_protected_instance_method(method, include_super=true) +module MSpecMatchers + private def have_protected_instance_method(method, include_super=true) HaveProtectedInstanceMethodMatcher.new method, include_super end end diff --git a/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb b/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb index 035547d28f..501c0a418e 100644 --- a/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb +++ b/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb @@ -17,8 +17,8 @@ class HavePublicInstanceMethodMatcher < MethodMatcher end end -class Object - def have_public_instance_method(method, include_super=true) +module MSpecMatchers + private def have_public_instance_method(method, include_super=true) HavePublicInstanceMethodMatcher.new method, include_super end end diff --git a/spec/mspec/lib/mspec/matchers/have_singleton_method.rb b/spec/mspec/lib/mspec/matchers/have_singleton_method.rb index 5f3acb84e2..95d78709ff 100644 --- a/spec/mspec/lib/mspec/matchers/have_singleton_method.rb +++ b/spec/mspec/lib/mspec/matchers/have_singleton_method.rb @@ -17,8 +17,8 @@ class HaveSingletonMethodMatcher < MethodMatcher end end -class Object - def have_singleton_method(method, include_super=true) +module MSpecMatchers + private def have_singleton_method(method, include_super=true) HaveSingletonMethodMatcher.new method, include_super end end diff --git a/spec/mspec/lib/mspec/matchers/include.rb b/spec/mspec/lib/mspec/matchers/include.rb index b4e54158d1..0b7eaf3ce2 100644 --- a/spec/mspec/lib/mspec/matchers/include.rb +++ b/spec/mspec/lib/mspec/matchers/include.rb @@ -24,9 +24,8 @@ class IncludeMatcher end # Cannot override #include at the toplevel in MRI -module MSpec - def include(*expected) +module MSpecMatchers + private def include(*expected) IncludeMatcher.new(*expected) end - module_function :include end diff --git a/spec/mspec/lib/mspec/matchers/infinity.rb b/spec/mspec/lib/mspec/matchers/infinity.rb index 0949fd47eb..8bfa6dbd10 100644 --- a/spec/mspec/lib/mspec/matchers/infinity.rb +++ b/spec/mspec/lib/mspec/matchers/infinity.rb @@ -17,12 +17,12 @@ class InfinityMatcher end end -class Object - def be_positive_infinity +module MSpecMatchers + private def be_positive_infinity InfinityMatcher.new(1) end - def be_negative_infinity + private def be_negative_infinity InfinityMatcher.new(-1) end end diff --git a/spec/mspec/lib/mspec/matchers/match_yaml.rb b/spec/mspec/lib/mspec/matchers/match_yaml.rb index 542dece2b4..920d85a14f 100644 --- a/spec/mspec/lib/mspec/matchers/match_yaml.rb +++ b/spec/mspec/lib/mspec/matchers/match_yaml.rb @@ -39,9 +39,8 @@ class MatchYAMLMatcher end end -class Object - def match_yaml(expected) +module MSpecMatchers + private def match_yaml(expected) MatchYAMLMatcher.new(expected) end end - diff --git a/spec/mspec/lib/mspec/matchers/output.rb b/spec/mspec/lib/mspec/matchers/output.rb index 551e7506cf..b89b6ca0f6 100644 --- a/spec/mspec/lib/mspec/matchers/output.rb +++ b/spec/mspec/lib/mspec/matchers/output.rb @@ -60,8 +60,8 @@ class OutputMatcher end end -class Object - def output(stdout=nil, stderr=nil) +module MSpecMatchers + private def output(stdout=nil, stderr=nil) OutputMatcher.new(stdout, stderr) end end diff --git a/spec/mspec/lib/mspec/matchers/output_to_fd.rb b/spec/mspec/lib/mspec/matchers/output_to_fd.rb index 5daaf5545c..f4d7b4ea1f 100644 --- a/spec/mspec/lib/mspec/matchers/output_to_fd.rb +++ b/spec/mspec/lib/mspec/matchers/output_to_fd.rb @@ -64,8 +64,8 @@ class OutputToFDMatcher end end -class Object - def output_to_fd(what, where = STDOUT) +module MSpecMatchers + private def output_to_fd(what, where = STDOUT) OutputToFDMatcher.new what, where end end diff --git a/spec/mspec/lib/mspec/matchers/raise_error.rb b/spec/mspec/lib/mspec/matchers/raise_error.rb index a5d6e01ec9..d128ca03ea 100644 --- a/spec/mspec/lib/mspec/matchers/raise_error.rb +++ b/spec/mspec/lib/mspec/matchers/raise_error.rb @@ -72,8 +72,8 @@ class RaiseErrorMatcher end end -class Object - def raise_error(exception=Exception, message=nil, &block) +module MSpecMatchers + private def raise_error(exception=Exception, message=nil, &block) RaiseErrorMatcher.new(exception, message, &block) end end diff --git a/spec/mspec/lib/mspec/matchers/respond_to.rb b/spec/mspec/lib/mspec/matchers/respond_to.rb index 2aa3ab14d1..6b35ae2d3c 100644 --- a/spec/mspec/lib/mspec/matchers/respond_to.rb +++ b/spec/mspec/lib/mspec/matchers/respond_to.rb @@ -17,8 +17,8 @@ class RespondToMatcher end end -class Object - def respond_to(expected) +module MSpecMatchers + private def respond_to(expected) RespondToMatcher.new(expected) end end diff --git a/spec/mspec/lib/mspec/matchers/signed_zero.rb b/spec/mspec/lib/mspec/matchers/signed_zero.rb index 3fd1472fc8..2ff90f4994 100644 --- a/spec/mspec/lib/mspec/matchers/signed_zero.rb +++ b/spec/mspec/lib/mspec/matchers/signed_zero.rb @@ -17,12 +17,12 @@ class SignedZeroMatcher end end -class Object - def be_positive_zero +module MSpecMatchers + private def be_positive_zero SignedZeroMatcher.new(1) end - def be_negative_zero + private def be_negative_zero SignedZeroMatcher.new(-1) end end diff --git a/spec/mspec/lib/mspec/mocks/mock.rb b/spec/mspec/lib/mspec/mocks/mock.rb index 1557f2008e..9fc72b5631 100644 --- a/spec/mspec/lib/mspec/mocks/mock.rb +++ b/spec/mspec/lib/mspec/mocks/mock.rb @@ -1,9 +1,5 @@ require 'mspec/expectations/expectations' -class Object - alias_method :__mspec_object_id__, :object_id -end - module Mock def self.reset @mocks = @stubs = @objects = nil @@ -22,7 +18,7 @@ module Mock end def self.replaced_name(obj, sym) - :"__mspec_#{obj.__mspec_object_id__}_#{sym}__" + :"__mspec_#{obj.__id__}_#{sym}__" end def self.replaced_key(obj, sym) diff --git a/spec/mspec/lib/mspec/mocks/object.rb b/spec/mspec/lib/mspec/mocks/object.rb index f4652a4671..19a50ac4e1 100644 --- a/spec/mspec/lib/mspec/mocks/object.rb +++ b/spec/mspec/lib/mspec/mocks/object.rb @@ -1,10 +1,6 @@ require 'mspec/mocks/proxy' class Object - def stub!(sym) - Mock.install_method self, sym, :stub - end - def should_receive(sym) Mock.install_method self, sym end @@ -14,15 +10,19 @@ class Object proxy.exactly(0).times end - def mock(name, options={}) - MockObject.new name, options + def stub!(sym) + Mock.install_method self, sym, :stub end +end - def mock_int(val) - MockIntObject.new(val) - end +def mock(name, options={}) + MockObject.new name, options +end - def mock_numeric(name, options={}) - NumericMockObject.new name, options - end +def mock_int(val) + MockIntObject.new(val) +end + +def mock_numeric(name, options={}) + NumericMockObject.new name, options end diff --git a/spec/mspec/lib/mspec/runner/evaluate.rb b/spec/mspec/lib/mspec/runner/evaluate.rb index fded84421f..ecf7460a90 100644 --- a/spec/mspec/lib/mspec/runner/evaluate.rb +++ b/spec/mspec/lib/mspec/runner/evaluate.rb @@ -1,4 +1,6 @@ class SpecEvaluate + include MSpecMatchers + def self.desc=(desc) @desc = desc end @@ -47,8 +49,6 @@ class SpecEvaluate end end -class Object - def evaluate(str, desc=nil, &block) - SpecEvaluate.new(str, desc).define(&block) - end +def evaluate(str, desc=nil, &block) + SpecEvaluate.new(str, desc).define(&block) end diff --git a/spec/mspec/lib/mspec/runner/mspec.rb b/spec/mspec/lib/mspec/runner/mspec.rb index 0ff0de36ca..8f9c7a602f 100644 --- a/spec/mspec/lib/mspec/runner/mspec.rb +++ b/spec/mspec/lib/mspec/runner/mspec.rb @@ -2,6 +2,10 @@ require 'mspec/runner/context' require 'mspec/runner/exception' require 'mspec/runner/tag' +class MSpecEnv + include MSpec +end + module MSpec @exit = nil @@ -53,11 +57,19 @@ module MSpec if ENV["MSPEC_MULTI"] STDOUT.print "." STDOUT.flush - while (file = STDIN.gets.chomp) != "QUIT" + while file = STDIN.gets and file = file.chomp + return if file == "QUIT" yield file - STDOUT.print "." - STDOUT.flush + begin + STDOUT.print "." + STDOUT.flush + rescue Errno::EPIPE + # The parent died + exit 1 + end end + # The parent closed the connection without QUIT + abort "the parent did not send QUIT" else return unless files = retrieve(:files) shuffle files if randomize? @@ -76,8 +88,7 @@ module MSpec end def self.setup_env - @env = Object.new - @env.extend MSpec + @env = MSpecEnv.new end def self.actions(action, *args) diff --git a/spec/mspec/lib/mspec/runner/object.rb b/spec/mspec/lib/mspec/runner/object.rb index 018e356149..2ea8197165 100644 --- a/spec/mspec/lib/mspec/runner/object.rb +++ b/spec/mspec/lib/mspec/runner/object.rb @@ -1,28 +1,26 @@ class Object - def before(at=:each, &block) + private def before(at=:each, &block) MSpec.current.before at, &block end - def after(at=:each, &block) + private def after(at=:each, &block) MSpec.current.after at, &block end - def describe(mod, msg=nil, options=nil, &block) + private def describe(mod, msg=nil, options=nil, &block) MSpec.describe mod, msg, &block end - def it(msg, &block) + private def it(msg, &block) MSpec.current.it msg, &block end - def it_should_behave_like(desc) + private def it_should_behave_like(desc) MSpec.current.it_should_behave_like desc end - # For ReadRuby compatiability - def doc(*a) - end - alias_method :context, :describe + private :context alias_method :specify, :it + private :specify end diff --git a/spec/mspec/lib/mspec/runner/shared.rb b/spec/mspec/lib/mspec/runner/shared.rb index 336e35f6ac..b606de473b 100644 --- a/spec/mspec/lib/mspec/runner/shared.rb +++ b/spec/mspec/lib/mspec/runner/shared.rb @@ -1,12 +1,10 @@ require 'mspec/runner/mspec' -class Object - def it_behaves_like(desc, meth, obj=nil) - send :before, :all do - @method = meth - @object = obj - end - - send :it_should_behave_like, desc.to_s +def it_behaves_like(desc, meth, obj=nil) + send :before, :all do + @method = meth + @object = obj end + + send :it_should_behave_like, desc.to_s end diff --git a/spec/mspec/lib/mspec/utils/options.rb b/spec/mspec/lib/mspec/utils/options.rb index f6e5304062..9f8dd01dbf 100644 --- a/spec/mspec/lib/mspec/utils/options.rb +++ b/spec/mspec/lib/mspec/utils/options.rb @@ -396,7 +396,7 @@ class MSpecOptions end def obj.load file = MSpec.retrieve :file - print "\n#{file.ljust(@width)}" + STDERR.print "\n#{file.ljust(@width)}" end MSpec.register :start, obj MSpec.register :load, obj @@ -407,7 +407,7 @@ class MSpecOptions obj = Object.new obj.instance_variable_set :@marker, o def obj.load - print @marker + STDERR.print @marker end MSpec.register :load, obj end |