diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk index 7efe2578e..9e8dd68e9 100644 --- a/Examples/test-suite/common.mk +++ b/Examples/test-suite/common.mk @@ -172,6 +172,8 @@ CPP_TEST_CASES += \ template_enum_ns_inherit \ template_enum_typedef \ template_explicit \ + template_extend1 \ + template_extend2 \ template_forward \ template_inherit \ template_inherit_abstract \ diff --git a/Examples/test-suite/python/template_extend1_runme.py b/Examples/test-suite/python/template_extend1_runme.py new file mode 100644 index 000000000..b4679513a --- /dev/null +++ b/Examples/test-suite/python/template_extend1_runme.py @@ -0,0 +1,10 @@ +import template_extend1 + +a = template_extend1.lBaz() +b = template_extend1.dBaz() + +if a.foo() != "lBaz::foo": + raise RuntimeError + +if b.foo() != "dBaz::foo": + raise RuntimeError diff --git a/Examples/test-suite/python/template_extend2_runme.py b/Examples/test-suite/python/template_extend2_runme.py new file mode 100644 index 000000000..a5f222fb6 --- /dev/null +++ b/Examples/test-suite/python/template_extend2_runme.py @@ -0,0 +1,10 @@ +import template_extend2 + +a = template_extend2.lBaz() +b = template_extend2.dBaz() + +if a.foo() != "lBaz::foo": + raise RuntimeError + +if b.foo() != "dBaz::foo": + raise RuntimeError diff --git a/Examples/test-suite/template_extend1.i b/Examples/test-suite/template_extend1.i new file mode 100644 index 000000000..6c3574f93 --- /dev/null +++ b/Examples/test-suite/template_extend1.i @@ -0,0 +1,23 @@ +// One of Luigi's evil tests + +%module template_extend1 + +%{ +namespace Quux { + template class Baz {}; +} +%} + +namespace Quux { +template class Baz {}; + +%template (lBaz) Baz; +%extend Baz { + char *foo(void) { return (char *) "lBaz::foo"; } +} + +%template (dBaz) Baz; +%extend Baz { + char *foo(void) { return (char *) "dBaz::foo"; } +} +} diff --git a/Examples/test-suite/template_extend2.i b/Examples/test-suite/template_extend2.i new file mode 100644 index 000000000..af973412e --- /dev/null +++ b/Examples/test-suite/template_extend2.i @@ -0,0 +1,25 @@ +// Another evil Luigi test +%module template_extend2 + +%{ +namespace Quux { +template class Baz {}; +} +%} + +namespace Quux { +template class Baz {}; + +%extend Baz { + char *foo(void) { return (char *) "lBaz::foo"; } +} +%template (lBaz) Baz; + +%extend Baz { + char *foo(void) { return (char *) "dBaz::foo"; } +} + +%template (dBaz) Baz; +} + +