diff options
Diffstat (limited to 'bootstraptest/test_attr.rb')
| -rw-r--r-- | bootstraptest/test_attr.rb | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/bootstraptest/test_attr.rb b/bootstraptest/test_attr.rb new file mode 100644 index 0000000000..3cb9d3eb39 --- /dev/null +++ b/bootstraptest/test_attr.rb @@ -0,0 +1,52 @@ +assert_equal 'ok', %q{ + module M + class A + class << self + attr_accessor :at + def workflow_rule + yield self + end + + def eval_str(str) + eval(str) + end + end + end + end + begin + M::A.eval_str(<<-END) + workflow_rule do |r| + r.at 1 + end + END + rescue ArgumentError => e + print "ok" + end +}, '[ruby-core:14641]' + +assert_equal %{ok}, %{ + class A + attr :m + end + begin + A.new.m(3) + rescue ArgumentError => e + print "ok" + end +}, '[ruby-core:15120]' + +assert_equal %{ok}, %{ + class Big + attr_reader :foo + def initialize + @foo = "ok" + end + end + + obj = Big.new + 100.times do |i| + obj.instance_variable_set(:"@ivar_\#{i}", i) + end + + Big.new.foo +} |
