summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-07-22 21:38:56 +0900
committerGitHub <[email protected]>2019-07-22 21:38:56 +0900
commitd2dd2d0e4874ac2522f12b1599842e6cc666088d (patch)
tree82aca5650572be3be37478ec8634dcf8d40a2092 /test
parent477be4524417b4026dcfc98ad88a7b6d19fec60a (diff)
parent7675fcb5d3e8e19964b46df7c1547e27f4a2bbde (diff)
downloadmruby-d2dd2d0e4874ac2522f12b1599842e6cc666088d.tar.gz
mruby-d2dd2d0e4874ac2522f12b1599842e6cc666088d.zip
Merge pull request #4590 from shuujii/fix-Module-dup-to-frozen-module
Fix `Module#dup` to frozen module
Diffstat (limited to 'test')
-rw-r--r--test/t/module.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/t/module.rb b/test/t/module.rb
index 7f869bf1f..0155ec190 100644
--- a/test/t/module.rb
+++ b/test/t/module.rb
@@ -400,6 +400,29 @@ end
# Not ISO specified
+assert('Module#dup') do
+ module TestModuleDup
+ @@cvar = :cvar
+ class << self
+ attr_accessor :cattr
+ def cmeth; :cmeth end
+ end
+ def cvar; @@cvar end
+ def imeth; :imeth end
+ self.cattr = :cattr
+ end
+
+ m = TestModuleDup.dup
+ o = Object.include(m).new
+ assert_equal(:cattr, m.cattr)
+ assert_equal(:cmeth, m.cmeth)
+ assert_equal(:cvar, o.cvar)
+ assert_equal(:imeth, o.imeth)
+ assert_match("#<Module:0x*>", m.to_s)
+ assert_not_predicate(m, :frozen?)
+ assert_not_predicate(TestModuleDup.freeze.dup, :frozen?)
+end
+
assert('Module#define_method') do
c = Class.new {
define_method(:m1) { :ok }