зеркало из https://github.com/github/ruby.git
Move assert_ruby_status and assert_throw to CoreAssertions for default gems.
This commit is contained in:
Родитель
954223ebd4
Коммит
d569d721f9
|
@ -216,35 +216,6 @@ module Test
|
|||
ret
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# assert_throw( tag, failure_message = nil, &block )
|
||||
#
|
||||
#Fails unless the given block throws +tag+, returns the caught
|
||||
#value otherwise.
|
||||
#
|
||||
#An optional failure message may be provided as the final argument.
|
||||
#
|
||||
# tag = Object.new
|
||||
# assert_throw(tag, "#{tag} was not thrown!") do
|
||||
# throw tag
|
||||
# end
|
||||
def assert_throw(tag, msg = nil)
|
||||
ret = catch(tag) do
|
||||
begin
|
||||
yield(tag)
|
||||
rescue UncaughtThrowError => e
|
||||
thrown = e.tag
|
||||
end
|
||||
msg = message(msg) {
|
||||
"Expected #{mu_pp(tag)} to have been thrown"\
|
||||
"#{%Q[, not #{thrown}] if thrown}"
|
||||
}
|
||||
assert(false, msg)
|
||||
end
|
||||
assert(true)
|
||||
ret
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# assert_equal( expected, actual, failure_message = nil )
|
||||
#
|
||||
|
@ -551,14 +522,6 @@ EOT
|
|||
assert !status.signaled?, FailDesc[status, message, out]
|
||||
end
|
||||
|
||||
def assert_ruby_status(args, test_stdin="", message=nil, **opt)
|
||||
out, _, status = EnvUtil.invoke_ruby(args, test_stdin, true, :merge_to_stdout, **opt)
|
||||
desc = FailDesc[status, message, out]
|
||||
assert(!status.signaled?, desc)
|
||||
message ||= "ruby exit status is not success:"
|
||||
assert(status.success?, desc)
|
||||
end
|
||||
|
||||
def assert_warning(pat, msg = nil)
|
||||
result = nil
|
||||
stderr = EnvUtil.with_default_internal(pat.encoding) {
|
||||
|
|
|
@ -114,6 +114,14 @@ module Test
|
|||
end
|
||||
end
|
||||
|
||||
def assert_ruby_status(args, test_stdin="", message=nil, **opt)
|
||||
out, _, status = EnvUtil.invoke_ruby(args, test_stdin, true, :merge_to_stdout, **opt)
|
||||
desc = FailDesc[status, message, out]
|
||||
assert(!status.signaled?, desc)
|
||||
message ||= "ruby exit status is not success:"
|
||||
assert(status.success?, desc)
|
||||
end
|
||||
|
||||
ABORT_SIGNALS = Signal.list.values_at(*%w"ILL ABRT BUS SEGV TERM")
|
||||
|
||||
def assert_separately(args, file = nil, line = nil, src, ignore_stderr: nil, **opt)
|
||||
|
@ -165,6 +173,35 @@ eom
|
|||
raise marshal_error if marshal_error
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# assert_throw( tag, failure_message = nil, &block )
|
||||
#
|
||||
#Fails unless the given block throws +tag+, returns the caught
|
||||
#value otherwise.
|
||||
#
|
||||
#An optional failure message may be provided as the final argument.
|
||||
#
|
||||
# tag = Object.new
|
||||
# assert_throw(tag, "#{tag} was not thrown!") do
|
||||
# throw tag
|
||||
# end
|
||||
def assert_throw(tag, msg = nil)
|
||||
ret = catch(tag) do
|
||||
begin
|
||||
yield(tag)
|
||||
rescue UncaughtThrowError => e
|
||||
thrown = e.tag
|
||||
end
|
||||
msg = message(msg) {
|
||||
"Expected #{mu_pp(tag)} to have been thrown"\
|
||||
"#{%Q[, not #{thrown}] if thrown}"
|
||||
}
|
||||
assert(false, msg)
|
||||
end
|
||||
assert(true)
|
||||
ret
|
||||
end
|
||||
|
||||
class << (AssertFile = Struct.new(:failure_message).new)
|
||||
include CoreAssertions
|
||||
def assert_file_predicate(predicate, *args)
|
||||
|
|
Загрузка…
Ссылка в новой задаче