| require 'li_boost_shared_ptr_bits' |
| require 'swig_gc' |
| |
| v = Li_boost_shared_ptr_bits::VectorIntHolder.new() |
| v.push(Li_boost_shared_ptr_bits::IntHolder.new(11)) |
| v.push(Li_boost_shared_ptr_bits::IntHolder.new(22)) |
| v.push(Li_boost_shared_ptr_bits::IntHolder.new(33)) |
| |
| sum = Li_boost_shared_ptr_bits::sum(v) |
| if (sum != 66) |
| raise RuntimeError, "sum is wrong" |
| end |
| |
| hidden = Li_boost_shared_ptr_bits::HiddenDestructor.create() |
| GC.track_class = Li_boost_shared_ptr_bits::HiddenPrivateDestructor |
| GC.stats if $VERBOSE |
| hidden = nil |
| GC.start |
| |
| hiddenPrivate = Li_boost_shared_ptr_bits::HiddenPrivateDestructor.create() |
| if (Li_boost_shared_ptr_bits::HiddenPrivateDestructor.DeleteCount != 0) |
| # GC doesn't always run |
| # raise RuntimeError, "Count should be zero" |
| end |
| |
| GC.stats if $VERBOSE |
| hiddenPrivate = nil |
| GC.start |
| if (Li_boost_shared_ptr_bits::HiddenPrivateDestructor.DeleteCount != 1) |
| # GC doesn't always run |
| # raise RuntimeError, "Count should be one" |
| end |