aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_optimization.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_optimization.rb')
-rw-r--r--test/ruby/test_optimization.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/ruby/test_optimization.rb b/test/ruby/test_optimization.rb
index 0d14c9c932..6cf6c63d1b 100644
--- a/test/ruby/test_optimization.rb
+++ b/test/ruby/test_optimization.rb
@@ -196,6 +196,9 @@ class TestRubyOptimization < Test::Unit::TestCase
assert_predicate h.keys[0], :frozen?
assert_same exp, h.keys[0]
+ h = { key => 1 }
+ assert_same exp, h.keys[0], 'newhash insn should reuse strings, too'
+
h1 = {}
h2 = {}
key.taint
@@ -206,6 +209,10 @@ class TestRubyOptimization < Test::Unit::TestCase
assert_same k1, k2
assert_predicate k1, :tainted?
+ h = { key => 1 }
+ assert_not_predicate key, :frozen?
+ assert_same k1, h.keys[0], 'newhash insn should reuse tainted strings'
+
assert_equal GC::INTERNAL_CONSTANTS[:RVALUE_SIZE],
ObjectSpace.memsize_of(k1),
'tainted string should share with untainted fstring'