merge revision(s) 40059,40061:

* test/ruby/envutil.rb (assert_separately): stop_auto_run of
	  Test::Unit::Runner to prevent auto runner use ARGV.

	* test/ruby/envutil.rb (assert_separately): add $: to separate process.

	* test/ruby/envutil.rb (assert_separately): fail if stderr is not
	  empty and ignore_stderr is false.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2013-06-17 17:54:44 +00:00
parent 520133871f
commit 3a8d308029
4 changed files with 30 additions and 6 deletions

View file

@ -1,3 +1,13 @@
Tue Jun 18 02:49:20 2013 NARUSE, Yui <naruse@ruby-lang.org>
* test/ruby/envutil.rb (assert_separately): stop_auto_run of
Test::Unit::Runner to prevent auto runner use ARGV.
* test/ruby/envutil.rb (assert_separately): add $: to separate process.
* test/ruby/envutil.rb (assert_separately): fail if stderr is not
empty and ignore_stderr is false.
Tue Jun 18 02:21:54 2013 NARUSE, Yui <naruse@ruby-lang.org> Tue Jun 18 02:21:54 2013 NARUSE, Yui <naruse@ruby-lang.org>
* test/ruby/envutil.rb (EnvUtil.with_default_external): add for * test/ruby/envutil.rb (EnvUtil.with_default_external): add for

View file

@ -286,19 +286,33 @@ module Test
ensure ensure
puts [Marshal.dump($!)].pack('m'), "assertions=\#{self._assertions}" puts [Marshal.dump($!)].pack('m'), "assertions=\#{self._assertions}"
end end
class Test::Unit::Runner
@@stop_auto_run = true
end
eom eom
args = args.dup
$:.each{|l| args.unshift "-I#{l}" }
ignore_stderr = opt.delete(:ignore_stderr)
stdout, stderr, status = EnvUtil.invoke_ruby(args, src, true, true, opt) stdout, stderr, status = EnvUtil.invoke_ruby(args, src, true, true, opt)
abort = status.coredump? || (status.signaled? && ABORT_SIGNALS.include?(status.termsig)) abort = status.coredump? || (status.signaled? && ABORT_SIGNALS.include?(status.termsig))
assert(!abort, FailDesc[status, stderr]) assert(!abort, FailDesc[status, stderr])
self._assertions += stdout[/^assertions=(\d+)/, 1].to_i self._assertions += stdout[/^assertions=(\d+)/, 1].to_i
res = Marshal.load(stdout.unpack("m")[0]) res = Marshal.load(stdout.unpack("m")[0])
return unless res if res
res.backtrace.each do |l| res.backtrace.each do |l|
l.sub!(/\A-:(\d+)/){"#{file}:#{line + $1.to_i}"} l.sub!(/\A-:(\d+)/){"#{file}:#{line + $1.to_i}"}
end end
raise res raise res
end end
# really is it succeed?
unless ignore_stderr
# the body of assert_separately must not output anything to detect errror
assert_equal("", stderr, "assert_separately failed with error message")
end
assert_equal(0, status, "assert_separately failed: '#{stderr}'")
end
def assert_warning(pat, message = nil) def assert_warning(pat, message = nil)
stderr = EnvUtil.verbose_warning { yield } stderr = EnvUtil.verbose_warning { yield }
message = ' "' + message + '"' if message message = ' "' + message + '"' if message

View file

@ -423,7 +423,7 @@ class TestRequire < Test::Unit::TestCase
# in C-level. And redirecting stderr to a pipe seems to change # in C-level. And redirecting stderr to a pipe seems to change
# some blocking timings and causes a deadlock, so run in a # some blocking timings and causes a deadlock, so run in a
# separated process for the time being. # separated process for the time being.
assert_separately(["-w", "-", path, bug5754], <<-'end;') assert_separately(["-w", "-", path, bug5754], <<-'end;', ignore_stderr: true)
path, bug5754 = *ARGV path, bug5754 = *ARGV
start = false start = false

View file

@ -1,6 +1,6 @@
#define RUBY_VERSION "2.0.0" #define RUBY_VERSION "2.0.0"
#define RUBY_RELEASE_DATE "2013-06-18" #define RUBY_RELEASE_DATE "2013-06-18"
#define RUBY_PATCHLEVEL 225 #define RUBY_PATCHLEVEL 226
#define RUBY_RELEASE_YEAR 2013 #define RUBY_RELEASE_YEAR 2013
#define RUBY_RELEASE_MONTH 6 #define RUBY_RELEASE_MONTH 6