diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk index bed33fb30..7f0f5daa0 100644 --- a/Examples/test-suite/common.mk +++ b/Examples/test-suite/common.mk @@ -112,6 +112,7 @@ CPP_TEST_CASES += \ director_basic \ director_detect \ director_exception \ + director_frob \ director_finalizer \ director_nested \ director_protected \ diff --git a/Examples/test-suite/director_frob.i b/Examples/test-suite/director_frob.i new file mode 100644 index 000000000..ebfa76d25 --- /dev/null +++ b/Examples/test-suite/director_frob.i @@ -0,0 +1,39 @@ +%module(directors="1") frob; + +%header %{ +#include +%} + +%feature("director"); +%feature("nodirector") Bravo::abs_method(); // ok +%feature("director") Charlie::abs_method(); // ok +%feature("nodirector") Delta::abs_method(); // doesn't work + +%inline %{ + + struct Alpha + { + virtual ~Alpha() { }; + virtual const char* abs_method() = 0; + }; + + struct Bravo : Alpha + { + const char* abs_method() + { + return "Bravo::abs_method()"; + } + }; + + struct Charlie : Bravo + { + const char* abs_method() + { + return "Charlie::abs_method()"; + } + }; + + struct Delta : Charlie + { + }; +%} diff --git a/Examples/test-suite/frob.i b/Examples/test-suite/frob.i deleted file mode 100644 index 64280eda1..000000000 --- a/Examples/test-suite/frob.i +++ /dev/null @@ -1,34 +0,0 @@ -%module(directors="1") frob; - -%header %{ -#include -%} - -%feature("director") Alpha; -%feature("director") Bravo; - -%feature("nodirector") Bravo::abs_method(); - -%inline %{ - class Alpha - { - public: - Alpha() { } - virtual ~Alpha() { }; - virtual const char* abs_method() = 0; - }; - - class Bravo : public Alpha - { - public: - Bravo() { } - virtual ~Bravo() { }; - virtual const char* abs_method(); - }; - - const char* - Bravo::abs_method() - { - return "Bravo::abs_method()"; - } -%} diff --git a/Examples/test-suite/java/frob_runme.java b/Examples/test-suite/java/director_frob_runme.java similarity index 100% rename from Examples/test-suite/java/frob_runme.java rename to Examples/test-suite/java/director_frob_runme.java diff --git a/Examples/test-suite/python/frob_runme.py b/Examples/test-suite/python/director_frob_runme.py similarity index 100% rename from Examples/test-suite/python/frob_runme.py rename to Examples/test-suite/python/director_frob_runme.py diff --git a/Examples/test-suite/ruby/frob_runme.rb b/Examples/test-suite/ruby/director_frob_runme.rb similarity index 100% rename from Examples/test-suite/ruby/frob_runme.rb rename to Examples/test-suite/ruby/director_frob_runme.rb