diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-12-23 03:22:36 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-12-23 03:22:36 +0000 |
commit | 2af72edd72b97d864eae8d2dd2e395a86ee23fcf (patch) | |
tree | b86655ca1e49d07613dc8bf258d6796bb5560c6c /test/lib | |
parent | 6b5f927718f1c827a5e9d3aaadd69e873755bbcc (diff) |
assertions.rb: prepare_syntax_check
* test/lib/test/unit/assertions.rb (prepare_syntax_check): extract
common preparation of arguments from assert_valid_syntax and
assert_syntax_error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/lib')
-rw-r--r-- | test/lib/test/unit/assertions.rb | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/test/lib/test/unit/assertions.rb b/test/lib/test/unit/assertions.rb index ef8d2a4908..a01871f05c 100644 --- a/test/lib/test/unit/assertions.rb +++ b/test/lib/test/unit/assertions.rb @@ -455,10 +455,9 @@ EOT # compatiblity with test-unit alias pend skip - def assert_valid_syntax(code, fname = caller_locations(1, 1)[0], mesg = fname.to_s, verbose: nil) + def prepare_syntax_check(code, fname = caller_locations(2, 1)[0], mesg = fname.to_s, verbose: nil) code = code.dup.force_encoding(Encoding::UTF_8) verbose, $VERBOSE = $VERBOSE, verbose - yield if defined?(yield) case when Array === fname fname, line = *fname @@ -467,32 +466,28 @@ EOT else line = 1 end - assert_nothing_raised(SyntaxError, mesg) do - RubyVM::InstructionSequence.compile(code, fname, fname, line) - end + yield(code, fname, line, mesg) ensure $VERBOSE = verbose end - def assert_syntax_error(code, error, fname = caller_locations(1, 1)[0], mesg = fname.to_s) - code = code.dup.force_encoding(Encoding::US_ASCII) - verbose, $VERBOSE = $VERBOSE, nil - 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 = 1 + def assert_valid_syntax(code, *args) + prepare_syntax_check(code, *args) do |src, fname, line, mesg| + yield if defined?(yield) + assert_nothing_raised(SyntaxError, mesg) do + RubyVM::InstructionSequence.compile(src, fname, fname, line) + end end - e = assert_raise(SyntaxError, mesg) do - RubyVM::InstructionSequence.compile(code, fname, fname, line) + end + + def assert_syntax_error(code, error, *args) + prepare_syntax_check(code, *args) do |src, fname, line, mesg| + yield if defined?(yield) + e = assert_raise(SyntaxError, mesg) do + RubyVM::InstructionSequence.compile(src, fname, fname, line) + end + assert_match(error, e.message, mesg) end - assert_match(error, e.message, mesg) - e - ensure - $VERBOSE = verbose end def assert_normal_exit(testsrc, message = '', child_env: nil, **opt) |