summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-06-24 06:26:49 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-06-24 06:26:49 -0700
commit431d1c8e2b456b70ec5acffe9e3d58893cf05a23 (patch)
treefbdf5e01df8b02c6dae4f7e0a71018b5c7401cdc /test
parent97c9c859d166a952f1f8cdcc3187cd005c4bebcf (diff)
parent062e96960d078cb5bca48ba3b878f681871be72a (diff)
downloadmruby-431d1c8e2b456b70ec5acffe9e3d58893cf05a23.tar.gz
mruby-431d1c8e2b456b70ec5acffe9e3d58893cf05a23.zip
Merge pull request #316 from masamitsu-murase/modify_obj_clone
Modify Kernel#clone and Kernel#dup
Diffstat (limited to 'test')
-rw-r--r--test/t/kernel.rb56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/t/kernel.rb b/test/t/kernel.rb
index ba708dbb7..6531383e5 100644
--- a/test/t/kernel.rb
+++ b/test/t/kernel.rb
@@ -71,6 +71,62 @@ assert('Kernel.raise', '15.3.1.2.12') do
e_list[0].class == RuntimeError
end
+assert('Kernel#clone', '15.3.1.3.8') do
+ class KernelCloneTest
+ def initialize
+ @v = 0
+ end
+
+ def get
+ @v
+ end
+
+ def set(v)
+ @v = v
+ end
+ end
+
+ a = KernelCloneTest.new
+ a.set(1)
+ b = a.clone
+
+ def a.test
+ end
+ a.set(2)
+ c = a.clone
+
+ a.get == 2 && b.get == 1 && c.get == 2 &&
+ a.respond_to?(:test) == true && b.respond_to?(:test) == false && c.respond_to?(:test) == true
+end
+
+assert('Kernel#dup', '15.3.1.3.9') do
+ class KernelDupTest
+ def initialize
+ @v = 0
+ end
+
+ def get
+ @v
+ end
+
+ def set(v)
+ @v = v
+ end
+ end
+
+ a = KernelDupTest.new
+ a.set(1)
+ b = a.dup
+
+ def a.test
+ end
+ a.set(2)
+ c = a.dup
+
+ a.get == 2 && b.get == 1 && c.get == 2 &&
+ a.respond_to?(:test) == true && b.respond_to?(:test) == false && c.respond_to?(:test) == false
+end
+
assert('Kernel#hash', '15.3.1.2.15') do
hash == hash
end