diff --git a/SWIG/Examples/test-suite/python/.cvsignore b/SWIG/Examples/test-suite/python/.cvsignore index bbe97e76a..e3b9b4005 100644 --- a/SWIG/Examples/test-suite/python/.cvsignore +++ b/SWIG/Examples/test-suite/python/.cvsignore @@ -507,6 +507,6 @@ clientdata_prop_a.py clientdata_prop_b.py imports_a.py imports_b.py -mod_a.py -mod_b.py +mod_a.py mod_b.py +hugemod.h hugemod_a.i hugemod_b.i hugemod_a.py hugemod_b.py hugemod_runme.py template_typedef_import.py diff --git a/SWIG/Examples/test-suite/python/Makefile.in b/SWIG/Examples/test-suite/python/Makefile.in index a3291e9a4..8458520c0 100644 --- a/SWIG/Examples/test-suite/python/Makefile.in +++ b/SWIG/Examples/test-suite/python/Makefile.in @@ -91,6 +91,7 @@ run_testcase = \ # Clean: remove the generated .py file %.clean: + @rm -f hugemod.h hugemod_a.i hugemod_b.i hugemod_a.py hugemod_b.py hugemod_runme.py @rm -f $*.py; clean: @@ -105,8 +106,14 @@ cvsignore: @echo clientdata_prop_b.py @echo imports_a.py @echo imports_b.py - @echo mod_a.py - @echo mod_b.py + @echo mod_a.py mod_b.py + @echo hugemod.h hugemod_a.i hugemod_b.i hugemod_a.py hugemod_b.py hugemod_runme.py @echo template_typedef_import.py +hugemod: + perl hugemod.pl + make hugemod_a.cpptest + make hugemod_b.cpptest + time $(PYTHON) hugemod_runme.py + time $(PYTHON) hugemod_runme.py diff --git a/SWIG/Examples/test-suite/python/hugemod.pl b/SWIG/Examples/test-suite/python/hugemod.pl new file mode 100644 index 000000000..15c4ce41b --- /dev/null +++ b/SWIG/Examples/test-suite/python/hugemod.pl @@ -0,0 +1,51 @@ +#!/usr/bin/perl + +use strict; + +open HEADER, ">hugemod.h" or die "error"; +open TEST, ">hugemod_runme.py" or die "error"; +open I1, ">hugemod_a.i" or die "error"; +open I2, ">hugemod_b.i" or die "error"; + +print TEST "import hugemod_a\n"; +print TEST "import hugemod_b\n"; + +print I1 "\%module hugemod_a;\n"; +print I1 "\%include \"hugemod.h\";\n"; +print I1 "\%{ #include \"hugemod.h\" \%}\n"; + +print I2 "\%module hugemod_b;\n"; +print I2 "\%import \"hugemod.h\";\n"; +print I2 "\%{ #include \"hugemod.h\" \%}\n"; +print I2 "\%inline \%{\n"; + +my $i; + +for ($i = 0; $i < 6000; $i++) { + my $t = $i * 4; + print HEADER "class type$i { public: int a; };\n"; + print I2 "class dtype$i : public type$i { public: int b; };\n"; + + print TEST "c = hugemod_a.type$i()\n"; + print TEST "c.a = $t\n"; + print TEST "if c.a != $t:\n"; + print TEST " raise RuntimeError\n"; + + print TEST "c = hugemod_b.dtype$i()\n"; + print TEST "c.a = $t\n"; + print TEST "if c.a != $t:\n"; + print TEST " raise RuntimeError\n"; + + $t = -$t; + + print TEST "c.b = $t\n"; + print TEST "if c.b != $t:\n"; + print TEST " raise RuntimeError\n\n"; +} + +print I2 "\%}\n"; + +close HEADER; +close TEST; +close I1; +close I2;