40 lines
1.1 KiB
Ruby
40 lines
1.1 KiB
Ruby
#!/usr/bin/env ruby
|
|
#
|
|
# This test implementation is directly derived from its Python counterpart.
|
|
#
|
|
|
|
require 'swig_assert'
|
|
|
|
# This extension to the Warning class is intended for suppressing expected
|
|
# Ruby warning messages about invalid or redefined Ruby constants - basically
|
|
# the equivalent of %warnfilter(SWIGWARN_RUBY_WRONG_NAME) but for the moment
|
|
# the wrapper library is loaded by the Ruby interpreter.
|
|
# Note: This only works for Ruby 2.4 and later
|
|
if Object.const_defined?(:Warning) && Warning.respond_to?(:warn)
|
|
module CustomWarningFilter
|
|
def warn(*args)
|
|
msg = args[0]
|
|
if msg =~ /[Aa]lready initialized constant Preproc::A[56]/ ||
|
|
msg =~ /invalid name .?__GMP_HAVE_/
|
|
# ignore
|
|
else
|
|
super
|
|
end
|
|
end
|
|
end
|
|
Warning.extend CustomWarningFilter
|
|
end
|
|
|
|
require 'preproc'
|
|
|
|
swig_assert_equal('Preproc::endif', '1', binding)
|
|
swig_assert_equal('Preproc::define', '1', binding)
|
|
swig_assert_equal('Preproc::ddefined', '1', binding)
|
|
|
|
swig_assert_equal('2 * Preproc::One', 'Preproc::Two', binding)
|
|
|
|
swig_assert_equal('Preproc::methodX(99)', '199', binding)
|
|
|
|
t1 = Preproc::TcxMessageTest
|
|
t2 = Preproc::TcxMessageBug
|
|
|