summaryrefslogtreecommitdiff
path: root/bootstraptest/test_attr.rb
diff options
context:
space:
mode:
Diffstat (limited to 'bootstraptest/test_attr.rb')
-rw-r--r--bootstraptest/test_attr.rb52
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
+}