diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-12 00:30:55 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-04-12 00:30:55 +0000 |
commit | 263177507e50a386d4feca194a8d5bd308f133af (patch) | |
tree | 1338af8f6da0b31a5b1c7cee92e09f5e8d499154 /test/ruby | |
parent | 88c7ffb2511b8d36e3409f938516353e51ed2107 (diff) | |
download | ruby-263177507e50a386d4feca194a8d5bd308f133af.tar.gz |
test_optimization.rb: disasm
* test/ruby/test_optimization.rb (disasm): dump disassembled code
for investigation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_optimization.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/test/ruby/test_optimization.rb b/test/ruby/test_optimization.rb index ae5a2d799b..c336930440 100644 --- a/test/ruby/test_optimization.rb +++ b/test/ruby/test_optimization.rb @@ -30,6 +30,10 @@ class TestRubyOptimization < Test::Unit::TestCase end; end + def disasm(name) + RubyVM::InstructionSequence.of(method(name)).disasm + end + def test_fixnum_plus a, b = 1, 2 assert_equal 3, a + b @@ -262,7 +266,7 @@ class TestRubyOptimization < Test::Unit::TestCase fact_helper(n, 1) end EOF - assert_equal(9131, fact(3000).to_s.size, bug4082) + assert_equal(9131, fact(3000).to_s.size, message(bug4082) {disasm(:fact_helper)}) end def test_tailcall_with_block @@ -279,7 +283,7 @@ class TestRubyOptimization < Test::Unit::TestCase } end EOF - assert_equal(123, delay { 123 }.call, bug6901) + assert_equal(123, delay { 123 }.call, message(bug6901) {disasm(:delay)}) end def just_yield @@ -292,7 +296,7 @@ class TestRubyOptimization < Test::Unit::TestCase just_yield {:ok} end EOF - assert_equal(:ok, yield_result) + assert_equal(:ok, yield_result, message {disasm(:yield_result)}) end def do_raise @@ -314,7 +318,9 @@ class TestRubyOptimization < Test::Unit::TestCase errinfo end end; - result = to_be_rescued + result = assert_nothing_raised(RuntimeError, message(bug12082) {disasm(:to_be_rescued)}) { + to_be_rescued + } assert_instance_of(RuntimeError, result, bug12082) assert_equal("should be rescued", result.message, bug12082) end |