aasm/spec/unit/memory_leak_spec.rb

39 lines
1.8 KiB
Ruby

# require 'spec_helper'
# describe "state machines" do
# def number_of_objects(klass)
# ObjectSpace.each_object(klass) {}
# end
# def machines
# AASM::StateMachineStore.instance_variable_get("@stores")
# end
# it "should be created without memory leak" do
# machines_count = machines.size
# state_count = number_of_objects(AASM::Core::State)
# event_count = number_of_objects(AASM::Core::Event)
# puts "event_count = #{event_count}"
# transition_count = number_of_objects(AASM::Core::Transition)
# load File.expand_path(File.dirname(__FILE__) + '/../models/not_auto_loaded/process.rb')
# machines.size.should == machines_count + 1 # + Process
# number_of_objects(Models::Process).should == 0
# number_of_objects(AASM::Core::State).should == state_count + 3 # + Process
# puts "event_count = #{number_of_objects(AASM::Core::Event)}"
# number_of_objects(AASM::Core::Event).should == event_count + 2 # + Process
# number_of_objects(AASM::Core::Transition).should == transition_count + 2 # + Process
# Models.send(:remove_const, "Process") if Models.const_defined?("Process")
# load File.expand_path(File.dirname(__FILE__) + '/../models/not_auto_loaded/process.rb')
# machines.size.should == machines_count + 1 # + Process
# number_of_objects(AASM::Core::State).should == state_count + 3 # + Process
# # ObjectSpace.each_object(AASM::Core::Event) {|o| puts o.inspect}
# puts "event_count = #{number_of_objects(AASM::Core::Event)}"
# number_of_objects(AASM::Core::Event).should == event_count + 2 # + Process
# number_of_objects(AASM::Core::Transition).should == transition_count + 2 # + Process
# end
# end