diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-06-24 06:26:49 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-06-24 06:26:49 -0700 |
| commit | 431d1c8e2b456b70ec5acffe9e3d58893cf05a23 (patch) | |
| tree | fbdf5e01df8b02c6dae4f7e0a71018b5c7401cdc /test | |
| parent | 97c9c859d166a952f1f8cdcc3187cd005c4bebcf (diff) | |
| parent | 062e96960d078cb5bca48ba3b878f681871be72a (diff) | |
| download | mruby-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.rb | 56 |
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 |
