| 1027 | | def test_dev_mode_memory_leak |
|---|
| 1028 | | counts = [] |
|---|
| 1029 | | 2.times do |
|---|
| 1030 | | require_dependency 'fixtures/company' |
|---|
| 1031 | | Firm.find(:first) |
|---|
| 1032 | | Dependencies.clear |
|---|
| 1033 | | ActiveRecord::Base.reset_subclasses |
|---|
| 1034 | | Dependencies.remove_subclasses_for(ActiveRecord::Base) |
|---|
| 1035 | | |
|---|
| 1036 | | GC.start |
|---|
| 1037 | | |
|---|
| 1038 | | count = 0 |
|---|
| 1039 | | ObjectSpace.each_object(Proc) { count += 1 } |
|---|
| 1040 | | counts << count |
|---|
| 1041 | | end |
|---|
| 1042 | | assert counts.last <= counts.first, |
|---|
| 1043 | | "expected last count (#{counts.last}) to be <= first count (#{counts.first})" |
|---|
| 1044 | | end |
|---|
| | 1027 | # FIXME: this test ought to run, but it needs to run sandboxed so that it |
|---|
| | 1028 | # doesn't b0rk the current test environment by undefing everything. |
|---|
| | 1029 | # |
|---|
| | 1030 | #def test_dev_mode_memory_leak |
|---|
| | 1031 | # counts = [] |
|---|
| | 1032 | # 2.times do |
|---|
| | 1033 | # require_dependency 'fixtures/company' |
|---|
| | 1034 | # Firm.find(:first) |
|---|
| | 1035 | # Dependencies.clear |
|---|
| | 1036 | # ActiveRecord::Base.reset_subclasses |
|---|
| | 1037 | # Dependencies.remove_subclasses_for(ActiveRecord::Base) |
|---|
| | 1038 | # |
|---|
| | 1039 | # GC.start |
|---|
| | 1040 | # |
|---|
| | 1041 | # count = 0 |
|---|
| | 1042 | # ObjectSpace.each_object(Proc) { count += 1 } |
|---|
| | 1043 | # counts << count |
|---|
| | 1044 | # end |
|---|
| | 1045 | # assert counts.last <= counts.first, |
|---|
| | 1046 | # "expected last count (#{counts.last}) to be <= first count (#{counts.first})" |
|---|
| | 1047 | #end |
|---|