emitting and testing protected methods for director protected members
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5512 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
833b2f7f0a
commit
ae75ec65dd
3 changed files with 45 additions and 24 deletions
|
|
@ -1,32 +1,41 @@
|
|||
require 'director_nested'
|
||||
|
||||
NoProtectedError = Kernel.const_defined?("NoMethodError") ? NoMethodError : NameError
|
||||
|
||||
class A < Director_nested::FooBar_int
|
||||
def do_step
|
||||
"A::do_step;"
|
||||
end
|
||||
protected
|
||||
def do_step
|
||||
"A::do_step;"
|
||||
end
|
||||
|
||||
def get_value
|
||||
"A::get_value"
|
||||
end
|
||||
def get_value
|
||||
"A::get_value"
|
||||
end
|
||||
end
|
||||
|
||||
a = A.new
|
||||
|
||||
begin
|
||||
a.do_advance
|
||||
rescue NoProtectedError
|
||||
end
|
||||
|
||||
raise RuntimeError if a.step != "Bar::step;Foo::advance;Bar::do_advance;A::do_step;"
|
||||
|
||||
|
||||
class B < Director_nested::FooBar_int
|
||||
def do_advance
|
||||
"B::do_advance;" + do_step
|
||||
end
|
||||
protected
|
||||
def do_advance
|
||||
"B::do_advance;" + do_step
|
||||
end
|
||||
|
||||
def do_step
|
||||
"B::do_step;"
|
||||
end
|
||||
def do_step
|
||||
"B::do_step;"
|
||||
end
|
||||
|
||||
def get_value
|
||||
"B::get_value"
|
||||
end
|
||||
def get_value
|
||||
"B::get_value"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,21 @@
|
|||
require 'director_protected'
|
||||
|
||||
NoProtectedError = Kernel.const_defined?("NoMethodError") ? NoMethodError : NameError
|
||||
|
||||
class FooBar < Director_protected::Bar
|
||||
def ping
|
||||
"FooBar::ping();"
|
||||
end
|
||||
protected
|
||||
def ping
|
||||
"FooBar::ping();"
|
||||
end
|
||||
end
|
||||
|
||||
b = Director_protected::Bar.new
|
||||
fb = FooBar.new
|
||||
|
||||
begin
|
||||
fb.ping
|
||||
rescue NoProtectedError
|
||||
end
|
||||
|
||||
raise RuntimeError if b.pong != "Bar::pong();Foo::pong();Bar::ping();"
|
||||
raise RuntimeError if fb.pong != "Bar::pong();Foo::pong();FooBar::ping();"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue