mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
envutil.rb: optional fname
* test/ruby/envutil.rb (Test::Unit::Assertions#assert_valid_syntax): make fname optional for inline source. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b8e6fd6ffe
commit
5551307dd3
2 changed files with 12 additions and 4 deletions
|
@ -133,7 +133,7 @@ module Test
|
||||||
module Unit
|
module Unit
|
||||||
module Assertions
|
module Assertions
|
||||||
public
|
public
|
||||||
def assert_valid_syntax(code, fname, mesg = fname)
|
def assert_valid_syntax(code, fname = caller_locations(1, 1)[0], mesg = fname.to_s)
|
||||||
code = code.dup.force_encoding("ascii-8bit")
|
code = code.dup.force_encoding("ascii-8bit")
|
||||||
code.sub!(/\A(?:\xef\xbb\xbf)?(\s*\#.*$)*(\n)?/n) {
|
code.sub!(/\A(?:\xef\xbb\xbf)?(\s*\#.*$)*(\n)?/n) {
|
||||||
"#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n"
|
"#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n"
|
||||||
|
@ -141,15 +141,23 @@ module Test
|
||||||
code.force_encoding("us-ascii")
|
code.force_encoding("us-ascii")
|
||||||
verbose, $VERBOSE = $VERBOSE, nil
|
verbose, $VERBOSE = $VERBOSE, nil
|
||||||
yield if defined?(yield)
|
yield if defined?(yield)
|
||||||
|
case
|
||||||
|
when Array === fname
|
||||||
|
fname, line = *fname
|
||||||
|
when defined?(fname.path) && defined?(fname.lineno)
|
||||||
|
fname, line = fname.path, fname.lineno
|
||||||
|
else
|
||||||
|
line = 0
|
||||||
|
end
|
||||||
assert_nothing_raised(SyntaxError, mesg) do
|
assert_nothing_raised(SyntaxError, mesg) do
|
||||||
assert_equal(:ok, catch {|tag| eval(code, binding, fname, 0)}, mesg)
|
assert_equal(:ok, catch {|tag| eval(code, binding, fname, line)}, mesg)
|
||||||
end
|
end
|
||||||
ensure
|
ensure
|
||||||
$VERBOSE = verbose
|
$VERBOSE = verbose
|
||||||
end
|
end
|
||||||
|
|
||||||
def assert_normal_exit(testsrc, message = '', opt = {})
|
def assert_normal_exit(testsrc, message = '', opt = {})
|
||||||
assert_valid_syntax(testsrc, caller_locations(1, 1)[0].path)
|
assert_valid_syntax(testsrc, caller_locations(1, 1)[0])
|
||||||
if opt.include?(:child_env)
|
if opt.include?(:child_env)
|
||||||
opt = opt.dup
|
opt = opt.dup
|
||||||
child_env = [opt.delete(:child_env)] || []
|
child_env = [opt.delete(:child_env)] || []
|
||||||
|
|
|
@ -278,7 +278,7 @@ eom
|
||||||
def not_label(x) @result = x; @not_label ||= nil end
|
def not_label(x) @result = x; @not_label ||= nil end
|
||||||
def assert_not_label(expected, src, message = nil)
|
def assert_not_label(expected, src, message = nil)
|
||||||
@result = nil
|
@result = nil
|
||||||
assert_nothing_raised(SyntaxError, message) {eval(src)}
|
assert_valid_syntax(src, message)
|
||||||
assert_equal(expected, @result, message)
|
assert_equal(expected, @result, message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue