Merge branch 'ruby-autoptr'
* ruby-autoptr: Extend std::auto_ptr<> support to Ruby
This commit is contained in:
commit
ebc324dfd5
4 changed files with 64 additions and 1 deletions
|
|
@ -12,7 +12,7 @@
|
|||
#endif
|
||||
%}
|
||||
|
||||
#if defined(SWIGCSHARP) || defined(SWIGJAVA) || defined(SWIGPYTHON)
|
||||
#if defined(SWIGCSHARP) || defined(SWIGJAVA) || defined(SWIGPYTHON) || defined(SWIGRUBY)
|
||||
|
||||
%include "std_auto_ptr.i"
|
||||
|
||||
|
|
|
|||
43
Examples/test-suite/ruby/li_std_auto_ptr_runme.rb
Normal file
43
Examples/test-suite/ruby/li_std_auto_ptr_runme.rb
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env ruby
|
||||
|
||||
require 'swig_assert'
|
||||
|
||||
require 'li_std_auto_ptr'
|
||||
|
||||
k1 = Li_std_auto_ptr::makeKlassAutoPtr("first")
|
||||
k2 = Li_std_auto_ptr::makeKlassAutoPtr("second")
|
||||
swig_assert_equal_simple(Li_std_auto_ptr::Klass::getTotal_count(), 2)
|
||||
|
||||
k1 = nil
|
||||
GC.start
|
||||
|
||||
# GC can need a few runs to actually collect the object.
|
||||
100.times do ||
|
||||
next if Li_std_auto_ptr::Klass::getTotal_count() == 2
|
||||
|
||||
swig_assert_equal_simple(Li_std_auto_ptr::Klass::getTotal_count(), 1)
|
||||
break
|
||||
end
|
||||
|
||||
swig_assert_equal_simple(k2.getLabel(), "second")
|
||||
|
||||
if Li_std_auto_ptr::Klass::getTotal_count() != 1
|
||||
STDERR.puts "GC failed to collect the first object, count still #{Li_std_auto_ptr::Klass::getTotal_count()}"
|
||||
|
||||
# Skip the rest of the test as it's not going to work correctly anyhow.
|
||||
exit
|
||||
end
|
||||
|
||||
k2 = nil
|
||||
GC.start
|
||||
|
||||
100.times do ||
|
||||
next if Li_std_auto_ptr::Klass::getTotal_count() == 1
|
||||
|
||||
swig_assert_equal_simple(Li_std_auto_ptr::Klass::getTotal_count(), 0)
|
||||
break
|
||||
end
|
||||
|
||||
if Li_std_auto_ptr::Klass::getTotal_count() != 0
|
||||
STDERR.puts "GC failed to collect the second object, count still #{Li_std_auto_ptr::Klass::getTotal_count()}"
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue