aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/descendants_tracker_without_autoloading_test.rb
diff options
context:
space:
mode:
authorIuri Gagnidze <igagnidz@gmail.com>2012-12-09 16:56:10 -0600
committerIuri Gagnidze <igagnidz@gmail.com>2012-12-09 16:56:10 -0600
commitc712b082c54157e31e4f959f110c8ede11315b55 (patch)
treeb97442e55f233b90012ea29bc23ba550cc00cead /activesupport/test/descendants_tracker_without_autoloading_test.rb
parent3c2c1a46064684a1becc8ae7b6b7fe6eebf9651a (diff)
downloadrails-c712b082c54157e31e4f959f110c8ede11315b55.tar.gz
rails-c712b082c54157e31e4f959f110c8ede11315b55.tar.bz2
rails-c712b082c54157e31e4f959f110c8ede11315b55.zip
Added test to ensure that DescendantsTracker does not leak memory on singleton classes
Diffstat (limited to 'activesupport/test/descendants_tracker_without_autoloading_test.rb')
-rw-r--r--activesupport/test/descendants_tracker_without_autoloading_test.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/activesupport/test/descendants_tracker_without_autoloading_test.rb b/activesupport/test/descendants_tracker_without_autoloading_test.rb
index 74669aaca1..4f1ee3e760 100644
--- a/activesupport/test/descendants_tracker_without_autoloading_test.rb
+++ b/activesupport/test/descendants_tracker_without_autoloading_test.rb
@@ -4,4 +4,14 @@ require 'descendants_tracker_test_cases'
class DescendantsTrackerWithoutAutoloadingTest < ActiveSupport::TestCase
include DescendantsTrackerTestCases
+
+ def test_clear_without_autoloaded_singleton_parent
+ mark_as_autoloaded do
+ parent_instance = Parent.new
+ parent_instance.singleton_class.descendants #adds singleton class in @@direct_descendants
+ ActiveSupport::DescendantsTracker.clear #clear is supposed to remove singleton class keys so GC can remove them.
+ assert !ActiveSupport::DescendantsTracker.class_variable_get(:@@direct_descendants).keys.include?(parent_instance.singleton_class)
+ end
+ end
+
end