From: <wsf...@us...> - 2008-11-26 22:50:39
|
Revision: 10953 http://swig.svn.sourceforge.net/swig/?rev=10953&view=rev Author: wsfulton Date: 2008-11-26 22:50:35 +0000 (Wed, 26 Nov 2008) Log Message: ----------- modifying build system not to rely on the -I path to find the input files avoiding warning 125: move python .i files up one directory, some files have been renamed - prepended with python Modified Paths: -------------- trunk/Examples/test-suite/python/Makefile.in Added Paths: ----------- trunk/Examples/test-suite/argcargvtest.i trunk/Examples/test-suite/callback.i trunk/Examples/test-suite/complextest.i trunk/Examples/test-suite/director_profile.i trunk/Examples/test-suite/director_stl.i trunk/Examples/test-suite/iadd.i trunk/Examples/test-suite/inout.i trunk/Examples/test-suite/inplaceadd.i trunk/Examples/test-suite/input.i trunk/Examples/test-suite/li_std_carray.i trunk/Examples/test-suite/li_std_vectora.i trunk/Examples/test-suite/li_std_wstream.i trunk/Examples/test-suite/python/python_abstractbase_runme3.py trunk/Examples/test-suite/python/python_kwargs_runme.py trunk/Examples/test-suite/python/python_nondynamic_runme.py trunk/Examples/test-suite/python/python_overload_simple_cast_runme.py trunk/Examples/test-suite/python/python_pybuf_runme3.py trunk/Examples/test-suite/python_abstractbase.i trunk/Examples/test-suite/python_autodoc.i trunk/Examples/test-suite/python_kwargs.i trunk/Examples/test-suite/python_nondynamic.i trunk/Examples/test-suite/python_overload_simple_cast.i trunk/Examples/test-suite/python_pybuf.i trunk/Examples/test-suite/simutry.i trunk/Examples/test-suite/swigobject.i trunk/Examples/test-suite/template_matrix.i Removed Paths: ------------- trunk/Examples/test-suite/python/abstractbase.i trunk/Examples/test-suite/python/abstractbase_runme3.py trunk/Examples/test-suite/python/argcargvtest.i trunk/Examples/test-suite/python/autodoc.i trunk/Examples/test-suite/python/callback.i trunk/Examples/test-suite/python/complextest.i trunk/Examples/test-suite/python/director_profile.i trunk/Examples/test-suite/python/director_stl.i trunk/Examples/test-suite/python/iadd.i trunk/Examples/test-suite/python/inout.i trunk/Examples/test-suite/python/inplaceadd.i trunk/Examples/test-suite/python/input.i trunk/Examples/test-suite/python/kwargs.i trunk/Examples/test-suite/python/kwargs_runme.py trunk/Examples/test-suite/python/li_std_carray.i trunk/Examples/test-suite/python/li_std_vectora.i trunk/Examples/test-suite/python/li_std_wstream.i trunk/Examples/test-suite/python/nondynamic.i trunk/Examples/test-suite/python/nondynamic_runme.py trunk/Examples/test-suite/python/overload_simple_cast.i trunk/Examples/test-suite/python/overload_simple_cast_runme.py trunk/Examples/test-suite/python/pybuf.i trunk/Examples/test-suite/python/pybuf_runme3.py trunk/Examples/test-suite/python/simutry.i trunk/Examples/test-suite/python/swigobject.i trunk/Examples/test-suite/python/tag_no_clash_with_variable_runme.i trunk/Examples/test-suite/python/template_matrix.i trunk/Examples/test-suite/python/vector.i Copied: trunk/Examples/test-suite/argcargvtest.i (from rev 10949, trunk/Examples/test-suite/python/argcargvtest.i) =================================================================== --- trunk/Examples/test-suite/argcargvtest.i (rev 0) +++ trunk/Examples/test-suite/argcargvtest.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,23 @@ +%module argcargvtest + +%include <argcargv.i> + +%apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) } + +%inline %{ + +int mainc(size_t argc, const char **argv) +{ + return (int)argc; +} + +const char* mainv(size_t argc, const char **argv, int idx) +{ + return argv[idx]; +} + +void initializeApp(size_t argc, const char **argv, bool setPGid = true, bool isMakeline = false) +{ +} + +%} Copied: trunk/Examples/test-suite/callback.i (from rev 10949, trunk/Examples/test-suite/python/callback.i) =================================================================== --- trunk/Examples/test-suite/callback.i (rev 0) +++ trunk/Examples/test-suite/callback.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,72 @@ +%module callback + +%callback(1) foo; +%callback(1) foof; +%callback(1) A::bar; +%callback(1) A::foom; +%callback("%s_Cb_Ptr") foo_T; // old style, still works. + +%inline %{ + + int foo(int a) { + return a; + } + + int foof(int a) { + return 3*a; + } + + struct A + { + static int bar(int a) { + return 2*a; + } + + int foom(int a) + { + return -a; + } + + //friend int foof(int a); + }; + + + extern "C" int foobar(int a, int (*pf)(int a)) { + return pf(a); + } + + extern "C" int foobarm(int a, A ap, int (A::*pf)(int a)) { + return (ap.*pf)(a); + } + + template <class T> + T foo_T(T a) + { + return a; + } + + template <class T> + T foo_T(T a, T b) + { + return a + b; + } + + + template <class T> + T foobar_T(T a, T (*pf)(T a)) { + return pf(a); + } + + template <class T> + const T& ident(const T& x) { + return x; + } +%} + +%template(foo_i) foo_T<int>; +%template(foobar_i) foobar_T<int>; + +%template(foo_d) foo_T<double>; +%template(foobar_d) foobar_T<double>; + +%template(ident_d) ident<double>; Copied: trunk/Examples/test-suite/complextest.i (from rev 10949, trunk/Examples/test-suite/python/complextest.i) =================================================================== --- trunk/Examples/test-suite/complextest.i (rev 0) +++ trunk/Examples/test-suite/complextest.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,61 @@ +%module complextest + +%include <complex.i> + +#ifdef __cplusplus +%{ +#include <algorithm> +#include <functional> +#include <numeric> +%} +%include <std_vector.i> + +#if 1 +%template(VectorStdCplx) std::vector<std::complex<double> >; +#endif + +%inline +{ + std::complex<double> Conj(const std::complex<double>& a) + { + return std::conj(a); + } + + std::complex<float> Conjf(const std::complex<float>& a) + { + return std::conj(a); + } + +#if 1 + std::vector<std::complex<double> > Copy_h(const std::vector<std::complex<double> >& a) + { + std::vector<std::complex<double> > b(a.size()/2); + std::copy(a.begin(), a.begin()+a.size()/2, b.begin()); + return b; + } +#endif +} + + +#else + + +%{ +%} + +%inline +{ + complex Conj(complex a) + { + return conj(a); + } + + + complex float Conjf(float complex a) + { + return conj(a); + } +} + + +#endif Copied: trunk/Examples/test-suite/director_profile.i (from rev 10949, trunk/Examples/test-suite/python/director_profile.i) =================================================================== --- trunk/Examples/test-suite/director_profile.i (rev 0) +++ trunk/Examples/test-suite/director_profile.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,64 @@ +%module(directors="1") director_profile + +%include std_string.i + +%feature("director") B; + + +%inline %{ + + class A { + public: + A() {} + }; + + class B + { + A aa; + public: + B() {} + + virtual A fn(const A* a) { + return *a; + } + + virtual int vfi(int a) { + return a + 1; + } + + int fi(int a) { + return vfi(a); + } + + int fj(const A* a) { + return 10; + } + + B* fk(int i) { + return this; + } + + const char* fl(int i) { + return "hello"; + } + + virtual ~B() + { + } + + static B* get_self(B *b) + { + return b; + } + + virtual std::string vfs(const std::string& a) { + return a; + } + + std::string fs(const std::string& a) { + return vfs(a); + } + + }; + +%} Copied: trunk/Examples/test-suite/director_stl.i (from rev 10949, trunk/Examples/test-suite/python/director_stl.i) =================================================================== --- trunk/Examples/test-suite/director_stl.i (rev 0) +++ trunk/Examples/test-suite/director_stl.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,76 @@ +%module(directors="1") director_stl +#pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR + +%include "std_string.i" +%include "std_pair.i" +%include "std_vector.i" + +#ifndef SWIG_STD_DEFAULT_INSTANTIATION +%template() std::vector<double>; +%template() std::vector<int>; +%template() std::vector<std::string>; +%template() std::pair<std::string, int>; +%template() std::pair<int,double>; +%template() std::pair<double,int>; +#endif + +%feature("director") Foo; + +%feature("director:except") { + if ($error != NULL) { + throw Swig::DirectorMethodException(); + } +} + +%exception { + try { $action } + catch (...) { SWIG_fail; } +} + +%inline +{ +class Foo { +public: + virtual ~Foo() {} + + virtual std::string& bar(std::string& s) + { + return s; + } + + + virtual std::string ping(std::string s) = 0; + virtual std::string pong(const std::string& s) + { return std::string("Foo::pong:") + s + ":" + ping(s); } + + std::string tping(std::string s) { return ping(s); } + std::string tpong(const std::string& s) { return pong(s); } + + virtual std::pair<double, int> + pident(const std::pair<double, int>& p) { return p; } + + virtual std::vector<int> + vident(const std::vector<int>& p) { return p; } + + virtual std::vector<int> + vsecond(const std::vector<int>& p, const std::vector<int>& s) { return s; } + + std::pair<double, int> + tpident(const std::pair<double, int>& p) { return pident(p); } + + std::vector<int> + tvident(const std::vector<int>& p) { return vident(p); } + + virtual std::vector<int> + tvsecond(const std::vector<int>& p, const std::vector<int>& s) { return vsecond(p,s); } + + + virtual std::vector<std::string> + vidents(const std::vector<std::string>& p) { return p; } + + std::vector<std::string> + tvidents(const std::vector<std::string>& p) { return vidents(p); } + +}; + +} Copied: trunk/Examples/test-suite/iadd.i (from rev 10949, trunk/Examples/test-suite/python/iadd.i) =================================================================== --- trunk/Examples/test-suite/iadd.i (rev 0) +++ trunk/Examples/test-suite/iadd.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,12 @@ +%module iadd + +%include attribute.i +%{ +#include "iadd.h" +%} +class Foo; +%attribute_ref(test::Foo, test::A& , AsA); +%attribute_ref(test::Foo, long, AsLong); + + +%include "iadd.h" Copied: trunk/Examples/test-suite/inout.i (from rev 10949, trunk/Examples/test-suite/python/inout.i) =================================================================== --- trunk/Examples/test-suite/inout.i (rev 0) +++ trunk/Examples/test-suite/inout.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,48 @@ +%module inout + +%include "typemaps.i" +%include "std_pair.i" + +%{ + inline void AddOne3(double* a, double* b, double* c) { + *a += 1; + *b += 1; + *c += 1; + } + + inline void AddOne1(double* a) { + *a += 1; + } + + inline void AddOne1p(std::pair<double, double>* p) { + p->first += 1; + p->second += 1; + } + + inline void AddOne2p(std::pair<double, double>* p,double* a) { + *a += 1; + p->first += 1; + p->second += 1; + } + + inline void AddOne3p(double* a, std::pair<double, double>* p,double* b) { + *a += 1; + *b += 1; + p->first += 1; + p->second += 1; + } + + inline void AddOne1r(double& a) { + a += 1; + } + +%} + +%template() std::pair<double, double>; + +void AddOne1(double* INOUT); +void AddOne3(double* INOUT, double* INOUT, double* INOUT); +void AddOne1p(std::pair<double, double>* INOUT); +void AddOne2p(std::pair<double, double>* INOUT, double* INOUT); +void AddOne3p(double* INOUT, std::pair<double, double>* INOUT, double* INOUT); +void AddOne1r(double& INOUT); Copied: trunk/Examples/test-suite/inplaceadd.i (from rev 10949, trunk/Examples/test-suite/python/inplaceadd.i) =================================================================== --- trunk/Examples/test-suite/inplaceadd.i (rev 0) +++ trunk/Examples/test-suite/inplaceadd.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,40 @@ +%module inplaceadd +%{ +#include <iostream> +%} + + +%inline %{ + struct A + { + int val; + + A(int v): val(v) + { + } + + A& operator+=(int v) + { + val += v; + return *this; + } + + A& operator+=(const A& a) + { + val += a.val; + return *this; + } + + A& operator-=(int v) + { + val -= v; + return *this; + } + + A& operator*=(int v) + { + val *= v; + return *this; + } + }; +%} Copied: trunk/Examples/test-suite/input.i (from rev 10949, trunk/Examples/test-suite/python/input.i) =================================================================== --- trunk/Examples/test-suite/input.i (rev 0) +++ trunk/Examples/test-suite/input.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,41 @@ +%module input + +%apply int *INPUT {int *bar}; + +%typemap(out, fragment=SWIG_From_frag(int)) int *foo { + if ($1) { + $result = SWIG_From(int)(*$1); + } else { + $result = SWIG_Py_Void(); + } +} + +%inline +{ + struct Foo { + int *foo(int *bar = 0) { + if (bar) { + *bar *= 2; + } + return (bar) ? bar : 0; + } + }; +} + +%include std_string.i +%apply std::string *INPUT {std::string *bar}; + +%typemap(out, fragment=SWIG_From_frag(std::string)) std::string *sfoo { + if ($1) { + $result = SWIG_From(std::string)(*$1); + } else { + $result = SWIG_Py_Void(); + } +} + +%inline %{ + std::string *sfoo(std::string *bar = 0) { + if (bar) *bar += " world"; + return (bar) ? bar : 0; + } +%} Copied: trunk/Examples/test-suite/li_std_carray.i (from rev 10949, trunk/Examples/test-suite/python/li_std_carray.i) =================================================================== --- trunk/Examples/test-suite/li_std_carray.i (rev 0) +++ trunk/Examples/test-suite/li_std_carray.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,8 @@ +%module li_std_carray + +%include <std_carray.i> + +%template(Vector3) std::carray<double, 3>; + +%template(Matrix3) std::carray<std::carray<double, 3>, 3>; + Copied: trunk/Examples/test-suite/li_std_vectora.i (from rev 10949, trunk/Examples/test-suite/python/li_std_vectora.i) =================================================================== --- trunk/Examples/test-suite/li_std_vectora.i (rev 0) +++ trunk/Examples/test-suite/li_std_vectora.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,65 @@ +%module li_std_vectora + +%include std_vectora.i + + +%{ +#include <algorithm> +#include <functional> +#include <numeric> +%} + + +%template(vector_i) std::vector<int, std::allocator<int> >; + +%template(matrix_i) std::vector<std::vector<int,std::allocator<int> >,std::allocator<std::vector<int,std::allocator<int> > > >; + +%inline +{ + typedef + std::vector<std::vector<int,std::allocator<int> >, + std::allocator<std::vector<int,std::allocator<int> > > > + imatrix; + + std::vector<int> vident(const std::vector<int,std::allocator<int> >& v) + { + return v; + } + + imatrix mident(const imatrix& v) + { + return v; + } +} + + +%template(DoubleVector) std::vector<double, std::allocator<double> >; + +%inline %{ +typedef float Real; +%} + +namespace std { + %template(RealVector) vector<Real, std::allocator<Real> >; +} + +%inline %{ + +double average(std::vector<int, std::allocator<int> > v) { + return std::accumulate(v.begin(),v.end(),0.0)/v.size(); +} + +std::vector<Real,std::allocator<Real> > +half(const std::vector<Real,std::allocator<Real> >& v) { + std::vector<Real> w(v); + for (unsigned int i=0; i<w.size(); i++) + w[i] /= 2.0; + return w; +} + +%} + +%template(IntPtrVector) std::vector<int *,std::allocator<int *> >; + + + Copied: trunk/Examples/test-suite/li_std_wstream.i (from rev 10949, trunk/Examples/test-suite/python/li_std_wstream.i) =================================================================== --- trunk/Examples/test-suite/li_std_wstream.i (rev 0) +++ trunk/Examples/test-suite/li_std_wstream.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,59 @@ +%module li_std_wstream + +%inline %{ + struct A; +%} + +%include <std_wiostream.i> +%include <std_wsstream.i> + + + +%callback(1) A::bar; + +%inline %{ + + struct B { + virtual ~B() + { + } + + }; + + struct A : B + { + void __add__(int a) + { + } + + void __add__(double a) + { + } + + static int bar(int a){ + return a; + } + + static int foo(int a, int (*pf)(int a)) + { + return pf(a); + } + + + std::wostream& __rlshift__(std::wostream& out) + { + out << "A class"; + return out; + } + }; +%} + +%extend std::basic_ostream<wchar_t>{ + std::basic_ostream<wchar_t>& + operator<<(const A& a) + { + *self << "A class"; + return *self; + } +} + Modified: trunk/Examples/test-suite/python/Makefile.in =================================================================== --- trunk/Examples/test-suite/python/Makefile.in 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/Makefile.in 2008-11-26 22:50:35 UTC (rev 10953) @@ -64,9 +64,10 @@ std_containers \ swigobject \ template_matrix \ - simutry \ - vector + simutry +# li_std_carray +# director_profile C_TEST_CASES += \ file_test \ Deleted: trunk/Examples/test-suite/python/abstractbase.i =================================================================== --- trunk/Examples/test-suite/python/abstractbase.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/abstractbase.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,18 +0,0 @@ -%module abstractbase -%include <pyabc.i> -%include <std_map.i> -%include <std_multimap.i> -%include <std_set.i> -%include <std_multiset.i> -%include <std_list.i> -%include <std_vector.i> - -namespace std -{ - %template(Mapii) map<int, int>; - %template(Multimapii) multimap<int, int>; - %template(IntSet) set<int>; - %template(IntMultiset) multiset<int>; - %template(IntVector) vector<int>; - %template(IntList) list<int>; -} Deleted: trunk/Examples/test-suite/python/abstractbase_runme3.py =================================================================== --- trunk/Examples/test-suite/python/abstractbase_runme3.py 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/abstractbase_runme3.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,8 +0,0 @@ -from abstractbase import * -from collections import * -assert issubclass(Mapii, MutableMapping) -assert issubclass(Multimapii, MutableMapping) -assert issubclass(IntSet, MutableSet) -assert issubclass(IntMultiset, MutableSet) -assert issubclass(IntVector, MutableSequence) -assert issubclass(IntList, MutableSequence) Deleted: trunk/Examples/test-suite/python/argcargvtest.i =================================================================== --- trunk/Examples/test-suite/python/argcargvtest.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/argcargvtest.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,23 +0,0 @@ -%module argcargvtest - -%include <argcargv.i> - -%apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) } - -%inline %{ - -int mainc(size_t argc, const char **argv) -{ - return (int)argc; -} - -const char* mainv(size_t argc, const char **argv, int idx) -{ - return argv[idx]; -} - -void initializeApp(size_t argc, const char **argv, bool setPGid = true, bool isMakeline = false) -{ -} - -%} Deleted: trunk/Examples/test-suite/python/autodoc.i =================================================================== --- trunk/Examples/test-suite/python/autodoc.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/autodoc.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,95 +0,0 @@ -%module(docstring="hello") autodoc - -%feature("autodoc"); - -// especial typemap and its docs -%typemap(in) (int c, int d) "$1 =0; $2 = 0;"; -%typemap(doc,name="hello",type="Tuple") (int c, int d) "hello: int tuple[2]"; - -// testing for different documentation levels -%feature("autodoc","0") A::func0; // names -%feature("autodoc","1") A::func1; // names + types -%feature("autodoc","2") A::func2; // extended -%feature("autodoc","3") A::func3; // extended + types - -%feature("autodoc","just a string") A::func; // names - -%inline { - - enum Hola { - hi, hello - }; - - struct A - { - A(int a, short b, Hola h) - { - } - - int func(int a) - { - return a; - } - - int func0(int c, int d) - { - return c; - } - - int func1(int c, int d) - { - return c; - } - - int func2(A* c, double d = 2) - { - return 2; - } - - int func3(A* c, double d = 2) - { - return 2; - } - }; -} - - -// deleting typemaps and docs -%typemap(in) (int c, int d) ; -%typemap(doc) (int c, int d); - -// docs for some parameters -%typemap(doc) int a "a: special comment for parameter a"; -%typemap(doc) int b "b: another special comment for parameter b"; - -%callback(1) func_cb; - -%inline { - - struct B - { - B(int a, int b, Hola h) - { - } - - - int func(int c, int d) - { - return c; - } - - }; - - int func(int c, int d) { - return c; - } - - int funcio(int *INOUT) { - return 1; - } - - int func_cb(int c, int d) { - return c; - } - -} Deleted: trunk/Examples/test-suite/python/callback.i =================================================================== --- trunk/Examples/test-suite/python/callback.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/callback.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,72 +0,0 @@ -%module callback - -%callback(1) foo; -%callback(1) foof; -%callback(1) A::bar; -%callback(1) A::foom; -%callback("%s_Cb_Ptr") foo_T; // old style, still works. - -%inline %{ - - int foo(int a) { - return a; - } - - int foof(int a) { - return 3*a; - } - - struct A - { - static int bar(int a) { - return 2*a; - } - - int foom(int a) - { - return -a; - } - - //friend int foof(int a); - }; - - - extern "C" int foobar(int a, int (*pf)(int a)) { - return pf(a); - } - - extern "C" int foobarm(int a, A ap, int (A::*pf)(int a)) { - return (ap.*pf)(a); - } - - template <class T> - T foo_T(T a) - { - return a; - } - - template <class T> - T foo_T(T a, T b) - { - return a + b; - } - - - template <class T> - T foobar_T(T a, T (*pf)(T a)) { - return pf(a); - } - - template <class T> - const T& ident(const T& x) { - return x; - } -%} - -%template(foo_i) foo_T<int>; -%template(foobar_i) foobar_T<int>; - -%template(foo_d) foo_T<double>; -%template(foobar_d) foobar_T<double>; - -%template(ident_d) ident<double>; Deleted: trunk/Examples/test-suite/python/complextest.i =================================================================== --- trunk/Examples/test-suite/python/complextest.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/complextest.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,61 +0,0 @@ -%module complextest - -%include <complex.i> - -#ifdef __cplusplus -%{ -#include <algorithm> -#include <functional> -#include <numeric> -%} -%include <std_vector.i> - -#if 1 -%template(VectorStdCplx) std::vector<std::complex<double> >; -#endif - -%inline -{ - std::complex<double> Conj(const std::complex<double>& a) - { - return std::conj(a); - } - - std::complex<float> Conjf(const std::complex<float>& a) - { - return std::conj(a); - } - -#if 1 - std::vector<std::complex<double> > Copy_h(const std::vector<std::complex<double> >& a) - { - std::vector<std::complex<double> > b(a.size()/2); - std::copy(a.begin(), a.begin()+a.size()/2, b.begin()); - return b; - } -#endif -} - - -#else - - -%{ -%} - -%inline -{ - complex Conj(complex a) - { - return conj(a); - } - - - complex float Conjf(float complex a) - { - return conj(a); - } -} - - -#endif Deleted: trunk/Examples/test-suite/python/director_profile.i =================================================================== --- trunk/Examples/test-suite/python/director_profile.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/director_profile.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,64 +0,0 @@ -%module(directors="1") director_profile - -%include std_string.i - -%feature("director") B; - - -%inline %{ - - class A { - public: - A() {} - }; - - class B - { - A aa; - public: - B() {} - - virtual A fn(const A* a) { - return *a; - } - - virtual int vfi(int a) { - return a + 1; - } - - int fi(int a) { - return vfi(a); - } - - int fj(const A* a) { - return 10; - } - - B* fk(int i) { - return this; - } - - const char* fl(int i) { - return "hello"; - } - - virtual ~B() - { - } - - static B* get_self(B *b) - { - return b; - } - - virtual std::string vfs(const std::string& a) { - return a; - } - - std::string fs(const std::string& a) { - return vfs(a); - } - - }; - -%} Deleted: trunk/Examples/test-suite/python/director_stl.i =================================================================== --- trunk/Examples/test-suite/python/director_stl.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/director_stl.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,76 +0,0 @@ -%module(directors="1") director_stl -#pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR - -%include "std_string.i" -%include "std_pair.i" -%include "std_vector.i" - -#ifndef SWIG_STD_DEFAULT_INSTANTIATION -%template() std::vector<double>; -%template() std::vector<int>; -%template() std::vector<std::string>; -%template() std::pair<std::string, int>; -%template() std::pair<int,double>; -%template() std::pair<double,int>; -#endif - -%feature("director") Foo; - -%feature("director:except") { - if ($error != NULL) { - throw Swig::DirectorMethodException(); - } -} - -%exception { - try { $action } - catch (...) { SWIG_fail; } -} - -%inline -{ -class Foo { -public: - virtual ~Foo() {} - - virtual std::string& bar(std::string& s) - { - return s; - } - - - virtual std::string ping(std::string s) = 0; - virtual std::string pong(const std::string& s) - { return std::string("Foo::pong:") + s + ":" + ping(s); } - - std::string tping(std::string s) { return ping(s); } - std::string tpong(const std::string& s) { return pong(s); } - - virtual std::pair<double, int> - pident(const std::pair<double, int>& p) { return p; } - - virtual std::vector<int> - vident(const std::vector<int>& p) { return p; } - - virtual std::vector<int> - vsecond(const std::vector<int>& p, const std::vector<int>& s) { return s; } - - std::pair<double, int> - tpident(const std::pair<double, int>& p) { return pident(p); } - - std::vector<int> - tvident(const std::vector<int>& p) { return vident(p); } - - virtual std::vector<int> - tvsecond(const std::vector<int>& p, const std::vector<int>& s) { return vsecond(p,s); } - - - virtual std::vector<std::string> - vidents(const std::vector<std::string>& p) { return p; } - - std::vector<std::string> - tvidents(const std::vector<std::string>& p) { return vidents(p); } - -}; - -} Deleted: trunk/Examples/test-suite/python/iadd.i =================================================================== --- trunk/Examples/test-suite/python/iadd.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/iadd.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,12 +0,0 @@ -%module iadd - -%include attribute.i -%{ -#include "iadd.h" -%} -class Foo; -%attribute_ref(test::Foo, test::A& , AsA); -%attribute_ref(test::Foo, long, AsLong); - - -%include "iadd.h" Deleted: trunk/Examples/test-suite/python/inout.i =================================================================== --- trunk/Examples/test-suite/python/inout.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/inout.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,48 +0,0 @@ -%module inout - -%include "typemaps.i" -%include "std_pair.i" - -%{ - inline void AddOne3(double* a, double* b, double* c) { - *a += 1; - *b += 1; - *c += 1; - } - - inline void AddOne1(double* a) { - *a += 1; - } - - inline void AddOne1p(std::pair<double, double>* p) { - p->first += 1; - p->second += 1; - } - - inline void AddOne2p(std::pair<double, double>* p,double* a) { - *a += 1; - p->first += 1; - p->second += 1; - } - - inline void AddOne3p(double* a, std::pair<double, double>* p,double* b) { - *a += 1; - *b += 1; - p->first += 1; - p->second += 1; - } - - inline void AddOne1r(double& a) { - a += 1; - } - -%} - -%template() std::pair<double, double>; - -void AddOne1(double* INOUT); -void AddOne3(double* INOUT, double* INOUT, double* INOUT); -void AddOne1p(std::pair<double, double>* INOUT); -void AddOne2p(std::pair<double, double>* INOUT, double* INOUT); -void AddOne3p(double* INOUT, std::pair<double, double>* INOUT, double* INOUT); -void AddOne1r(double& INOUT); Deleted: trunk/Examples/test-suite/python/inplaceadd.i =================================================================== --- trunk/Examples/test-suite/python/inplaceadd.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/inplaceadd.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,40 +0,0 @@ -%module inplaceadd -%{ -#include <iostream> -%} - - -%inline %{ - struct A - { - int val; - - A(int v): val(v) - { - } - - A& operator+=(int v) - { - val += v; - return *this; - } - - A& operator+=(const A& a) - { - val += a.val; - return *this; - } - - A& operator-=(int v) - { - val -= v; - return *this; - } - - A& operator*=(int v) - { - val *= v; - return *this; - } - }; -%} Deleted: trunk/Examples/test-suite/python/input.i =================================================================== --- trunk/Examples/test-suite/python/input.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/input.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,41 +0,0 @@ -%module input - -%apply int *INPUT {int *bar}; - -%typemap(out, fragment=SWIG_From_frag(int)) int *foo { - if ($1) { - $result = SWIG_From(int)(*$1); - } else { - $result = SWIG_Py_Void(); - } -} - -%inline -{ - struct Foo { - int *foo(int *bar = 0) { - if (bar) { - *bar *= 2; - } - return (bar) ? bar : 0; - } - }; -} - -%include std_string.i -%apply std::string *INPUT {std::string *bar}; - -%typemap(out, fragment=SWIG_From_frag(std::string)) std::string *sfoo { - if ($1) { - $result = SWIG_From(std::string)(*$1); - } else { - $result = SWIG_Py_Void(); - } -} - -%inline %{ - std::string *sfoo(std::string *bar = 0) { - if (bar) *bar += " world"; - return (bar) ? bar : 0; - } -%} Deleted: trunk/Examples/test-suite/python/kwargs.i =================================================================== --- trunk/Examples/test-suite/python/kwargs.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/kwargs.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,112 +0,0 @@ -%module kwargs - -%nocopyctor; -%kwargs; - -%rename(myDel) del; -%inline -{ - struct s { int del; }; -} - - -// Simple class -%extend Foo -{ - int efoo(int a = 1, int b = 0) {return a + b; } - static int sfoo(int a = 1, int b = 0) { return a + b; } -} - -%newobject Foo::create; - -%inline %{ - - struct Foo - { - Foo(int a, int b = 0) {} - - virtual int foo(int a = 1, int b = 0) {return a + b; } - static int statfoo(int a = 1, int b = 0) {return a + b; } - - static Foo *create(int a = 1, int b = 0) - { - return new Foo(a, b); - } - - virtual ~Foo() { - } - - }; - -%} - - -// Templated class -%extend Bar -{ - T ebar(T a = 1, T b = 0) {return a + b; } - static T sbar(T a = 1, T b = 0) { return a + b; } -} - -%inline %{ - template <typename T> struct Bar - { - Bar(T a, T b = 0){} - - T bar(T a = 1, T b = 0) {return a + b; } - static T statbar(T a = 1, T b = 0) {return a + b; } - }; - -%} - -%template(BarInt) Bar<int>; - - -// Functions -%inline %{ - int foo(int a = 1, int b = 0) {return a + b; } - - - template<typename T> T templatedfunction(T a = 1, T b = 0) { return a + b; } -%} - -%template(templatedfunction) templatedfunction<int>; - - -// Deafult args with references -%inline -%{ - - typedef int size_type; - - struct Hello - { - static const size_type hello = 3; - }; - - - - int rfoo( const size_type& x = Hello::hello, const Hello& y = Hello() ) - { - return x; - } - -%} -%{ - const int Hello::hello; -%} - - -// Functions with keywords -%warnfilter(SWIGWARN_PARSE_KEYWORD); -%inline %{ - /* silently rename the parameter names in python */ - - int foo_kw(int from = 1, int except = 2) {return from + except; } - - - int foo_nu(int from = 1, int = 0) {return from; } - - int foo_mm(int min = 1, int max = 2) {return min + max; } - -%} Deleted: trunk/Examples/test-suite/python/kwargs_runme.py =================================================================== --- trunk/Examples/test-suite/python/kwargs_runme.py 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/kwargs_runme.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,67 +0,0 @@ -from kwargs import * - -class MyFoo(Foo): - def __init__(self, a , b = 0): - Foo.__init__(self, a, b) - - - -# Simple class -f1 = MyFoo(2) - -f = Foo(b=2,a=1) - -if f.foo(b=1,a=2) != 3: - raise RuntimeError - -if Foo_statfoo(b=2) != 3: - raise RuntimeError - -if f.efoo(b=2) != 3: - raise RuntimeError - -if Foo_sfoo(b=2) != 3: - raise RuntimeError - - -# Templated class -b = BarInt(b=2,a=1) - -if b.bar(b=1,a=2) != 3: - raise RuntimeError - -if BarInt_statbar(b=2) != 3: - raise RuntimeError - -if b.ebar(b=2) != 3: - raise RuntimeError - -if BarInt_sbar(b=2) != 3: - raise RuntimeError - - -# Functions -if templatedfunction(b=2) != 3: - raise RuntimeError - -if foo(a=1,b=2) != 3: - raise RuntimeError - -if foo(b=2) != 3: - raise RuntimeError - - -#Funtions with keywords - -if foo_kw(_from=2) != 4: - raise RuntimeError - -if foo_nu(_from=2, arg2=3) != 2: - raise RuntimeError - -if foo_mm(min=2) != 4: - raise RuntimeError - -if foo_mm(max=3) != 4: - raise RuntimeError - Deleted: trunk/Examples/test-suite/python/li_std_carray.i =================================================================== --- trunk/Examples/test-suite/python/li_std_carray.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/li_std_carray.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,8 +0,0 @@ -%module li_std_carray - -%include <std_carray.i> - -%template(Vector3) std::carray<double, 3>; - -%template(Matrix3) std::carray<std::carray<double, 3>, 3>; - Deleted: trunk/Examples/test-suite/python/li_std_vectora.i =================================================================== --- trunk/Examples/test-suite/python/li_std_vectora.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/li_std_vectora.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,65 +0,0 @@ -%module li_std_vectora - -%include std_vectora.i - - -%{ -#include <algorithm> -#include <functional> -#include <numeric> -%} - - -%template(vector_i) std::vector<int, std::allocator<int> >; - -%template(matrix_i) std::vector<std::vector<int,std::allocator<int> >,std::allocator<std::vector<int,std::allocator<int> > > >; - -%inline -{ - typedef - std::vector<std::vector<int,std::allocator<int> >, - std::allocator<std::vector<int,std::allocator<int> > > > - imatrix; - - std::vector<int> vident(const std::vector<int,std::allocator<int> >& v) - { - return v; - } - - imatrix mident(const imatrix& v) - { - return v; - } -} - - -%template(DoubleVector) std::vector<double, std::allocator<double> >; - -%inline %{ -typedef float Real; -%} - -namespace std { - %template(RealVector) vector<Real, std::allocator<Real> >; -} - -%inline %{ - -double average(std::vector<int, std::allocator<int> > v) { - return std::accumulate(v.begin(),v.end(),0.0)/v.size(); -} - -std::vector<Real,std::allocator<Real> > -half(const std::vector<Real,std::allocator<Real> >& v) { - std::vector<Real> w(v); - for (unsigned int i=0; i<w.size(); i++) - w[i] /= 2.0; - return w; -} - -%} - -%template(IntPtrVector) std::vector<int *,std::allocator<int *> >; - - - Deleted: trunk/Examples/test-suite/python/li_std_wstream.i =================================================================== --- trunk/Examples/test-suite/python/li_std_wstream.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/li_std_wstream.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,59 +0,0 @@ -%module li_std_wstream - -%inline %{ - struct A; -%} - -%include <std_wiostream.i> -%include <std_wsstream.i> - - - -%callback(1) A::bar; - -%inline %{ - - struct B { - virtual ~B() - { - } - - }; - - struct A : B - { - void __add__(int a) - { - } - - void __add__(double a) - { - } - - static int bar(int a){ - return a; - } - - static int foo(int a, int (*pf)(int a)) - { - return pf(a); - } - - - std::wostream& __rlshift__(std::wostream& out) - { - out << "A class"; - return out; - } - }; -%} - -%extend std::basic_ostream<wchar_t>{ - std::basic_ostream<wchar_t>& - operator<<(const A& a) - { - *self << "A class"; - return *self; - } -} - Deleted: trunk/Examples/test-suite/python/nondynamic.i =================================================================== --- trunk/Examples/test-suite/python/nondynamic.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/nondynamic.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,58 +0,0 @@ -%module nondynamic - -/* - Use the %pythonnondynamic directuve to make the wrapped class a - nondynamic one, ie, a python class that doesn't dynamically add new - attributes. Hence, for the class - - %pythonnondynamic A; - struct A - { - int a; - int b; - }; - - you will get: - - aa = A() - aa.a = 1 # Ok - aa.b = 1 # Ok - aa.c = 3 # error - - Since "nondynamic" is a feature, if you use - - %pythonnondynamic; - - it will make all the wrapped class nondynamic ones. - - The implementation is based on the recipe: - - http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/252158 - - and works for modern (-modern) and plain python. - -*/ - - - -%pythonnondynamic A; -%pythondynamic C; - - -%inline %{ - - struct A - { - int a; - int b; - }; - - - struct C - { - int a; - int b; - }; - -%} - Deleted: trunk/Examples/test-suite/python/nondynamic_runme.py =================================================================== --- trunk/Examples/test-suite/python/nondynamic_runme.py 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/nondynamic_runme.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,39 +0,0 @@ -import nondynamic - -aa = nondynamic.A() - -aa.a = 1 -aa.b = 2 -try: - aa.c = 2 - err = 0 -except: - err = 1 - -if not err: - raise RuntimeError, "A is not static" - - -class B(nondynamic.A): - c = 4 - def __init__(self): - nondynamic.A.__init__(self) - pass - pass - - - -bb = B() -bb.c = 3 -try: - bb.d = 2 - err = 0 -except: - err = 1 - -if not err: - raise RuntimeError, "B is not static" - - -cc = nondynamic.C() -cc.d = 3 Deleted: trunk/Examples/test-suite/python/overload_simple_cast.i =================================================================== --- trunk/Examples/test-suite/python/overload_simple_cast.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/overload_simple_cast.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,4 +0,0 @@ -// Simple tests of overloaded functions -%module("castmode") overload_simple_cast - -%include overload_simple.i Deleted: trunk/Examples/test-suite/python/overload_simple_cast_runme.py =================================================================== --- trunk/Examples/test-suite/python/overload_simple_cast_runme.py 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/overload_simple_cast_runme.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,192 +0,0 @@ -from overload_simple_cast import * - -class Ai: - def __init__(self,x): - self.x = x - - def __int__(self): - return self.x - -class Ad: - def __init__(self,x): - self.x = x - - def __float__(self): - return self.x - -ai = Ai(4) - -ad = Ad(5.0) -add = Ad(5.5) - -try: - fint(add) - good = 0 -except: - good = 1 - -if not good: - raise RuntimeError, "fint(int)" - - -if fint(ad) != "fint:int": - raise RuntimeError, "fint(int)" - -if fdouble(ad) != "fdouble:double": - raise RuntimeError, "fdouble(double)" - -if fint(ai) != "fint:int": - raise RuntimeError, "fint(int)" - -if fint(5.0) != "fint:int": - raise RuntimeError, "fint(int)" - -if fint(3) != "fint:int": - raise RuntimeError, "fint(int)" -if fint(3.0) != "fint:int": - raise RuntimeError, "fint(int)" - -if fdouble(ad) != "fdouble:double": - raise RuntimeError, "fdouble(double)" -if fdouble(3) != "fdouble:double": - raise RuntimeError, "fdouble(double)" -if fdouble(3.0) != "fdouble:double": - raise RuntimeError, "fdouble(double)" - -if fid(3,3.0) != "fid:intdouble": - raise RuntimeError, "fid:intdouble" - -if fid(3.0,3) != "fid:doubleint": - raise RuntimeError, "fid:doubleint" - -if fid(ad,ai) != "fid:doubleint": - raise RuntimeError, "fid:doubleint" - -if fid(ai,ad) != "fid:intdouble": - raise RuntimeError, "fid:intdouble" - - - -if foo(3) != "foo:int": - raise RuntimeError, "foo(int)" - -if foo(3.0) != "foo:double": - raise RuntimeError, "foo(double)" - -if foo("hello") != "foo:char *": - raise RuntimeError, "foo(char *)" - -f = Foo() -b = Bar() - -if foo(f) != "foo:Foo *": - raise RuntimeError, "foo(Foo *)" - -if foo(b) != "foo:Bar *": - raise RuntimeError, "foo(Bar *)" - -v = malloc_void(32) - -if foo(v) != "foo:void *": - raise RuntimeError, "foo(void *)" - -s = Spam() - -if s.foo(3) != "foo:int": - raise RuntimeError, "Spam::foo(int)" - -if s.foo(3.0) != "foo:double": - raise RuntimeError, "Spam::foo(double)" - -if s.foo("hello") != "foo:char *": - raise RuntimeError, "Spam::foo(char *)" - -if s.foo(f) != "foo:Foo *": - raise RuntimeError, "Spam::foo(Foo *)" - -if s.foo(b) != "foo:Bar *": - raise RuntimeError, "Spam::foo(Bar *)" - -if s.foo(v) != "foo:void *": - raise RuntimeError, "Spam::foo(void *)" - -if Spam_bar(3) != "bar:int": - raise RuntimeError, "Spam::bar(int)" - -if Spam_bar(3.0) != "bar:double": - raise RuntimeError, "Spam::bar(double)" - -if Spam_bar("hello") != "bar:char *": - raise RuntimeError, "Spam::bar(char *)" - -if Spam_bar(f) != "bar:Foo *": - raise RuntimeError, "Spam::bar(Foo *)" - -if Spam_bar(b) != "bar:Bar *": - raise RuntimeError, "Spam::bar(Bar *)" - -if Spam_bar(v) != "bar:void *": - raise RuntimeError, "Spam::bar(void *)" - -# Test constructors - -s = Spam() -if s.type != "none": - raise RuntimeError, "Spam()" - -s = Spam(3) -if s.type != "int": - raise RuntimeError, "Spam(int)" - -s = Spam(3.4) -if s.type != "double": - raise RuntimeError, "Spam(double)" - -s = Spam("hello") -if s.type != "char *": - raise RuntimeError, "Spam(char *)" - -s = Spam(f) -if s.type != "Foo *": - raise RuntimeError, "Spam(Foo *)" - -s = Spam(b) -if s.type != "Bar *": - raise RuntimeError, "Spam(Bar *)" - -s = Spam(v) -if s.type != "void *": - raise RuntimeError, "Spam(void *)" - - -# unsigned long long -ullmax = 9223372036854775807 #0xffffffffffffffff -ullmaxd = 9007199254740992.0 -ullmin = 0 -ullmind = 0.0 -if ull(ullmin) != ullmin: - raise runtimeerror, "ull(ullmin)" -if ull(ullmax) != ullmax: - raise runtimeerror, "ull(ullmax)" -if ull(ullmind) != ullmind: - raise RuntimeError, "ull(ullmind)" -if ull(ullmaxd) != ullmaxd: - raise RuntimeError, "ull(ullmaxd)" - -# long long -llmax = 9223372036854775807 #0x7fffffffffffffff -llmin = -9223372036854775808 -# these are near the largest floats we can still convert into long long -llmaxd = 9007199254740992.0 -llmind = -9007199254740992.0 -if ll(llmin) != llmin: - raise runtimeerror, "ll(llmin)" -if ll(llmax) != llmax: - raise runtimeerror, "ll(llmax)" -if ll(llmind) != llmind: - raise RuntimeError, "ll(llmind)" -if ll(llmaxd) != llmaxd: - raise RuntimeError, "ll(llmaxd)" - - -free_void(v) Deleted: trunk/Examples/test-suite/python/pybuf.i =================================================================== --- trunk/Examples/test-suite/python/pybuf.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/pybuf.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,64 +0,0 @@ -%module pybuf -%include<pybuffer.i> -%include<cstring.i> -/*functions for the test case*/ -%pybuffer_mutable_binary(char *buf1, int len); -%pybuffer_mutable_string(char *buf2); -%pybuffer_binary(const char *buf3, int len); -%pybuffer_string(const char *buf4); - -%inline %{ - void func1(char *buf1, int len) - { - int i; - for (i=0; i<len; ++i) - buf1[i] = 'a'; - return; - } - void func2(char *buf2) - { - strcpy(buf2, "Hello world!"); - } - int func3(const char *buf3, int len) - { - int count = 0; - int i; - for(i=0; i<len; ++i) - if (isalnum(buf3[i])) - ++count; - return count; - } - int func4(const char *buf4) - { - return strlen(buf4); - } -%} - -/*functions for the benchmark*/ -%pybuffer_mutable_string(char *str1); -%cstring_mutable(char *str2); - -%inline %{ -void title(char *str) { - int outword = 1; - while(*str) { - if (isalnum(*str)) { - if (outword) { - outword = 0; - *str = toupper(*str); - } - } - else { - outword = 0; - } - str++; - } -} - -void title1(char *str1) { - title(str1); -} -void title2(char *str2) { - title(str2); -} -%} Deleted: trunk/Examples/test-suite/python/pybuf_runme3.py =================================================================== --- trunk/Examples/test-suite/python/pybuf_runme3.py 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/pybuf_runme3.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,42 +0,0 @@ -#run: -# python pybuf_runme3.py benchmark -#for the benchmark, other wise the test case will be run -import pybuf -import sys -if len(sys.argv)>=2 and sys.argv[1]=="benchmark": - #run the benchmark - import time - k=1000000 #number of times to excute the functions - - t=time.time() - a = bytearray(b'hello world') - for i in range(k): - pybuf.title1(a) - print("Time used by bytearray:",time.time()-t) - - t=time.time() - b = 'hello world' - for i in range(k): - pybuf.title2(b) - print("Time used by string:",time.time()-t) -else: - #run the test case - buf1 = bytearray(10) - buf2 = bytearray(50) - - pybuf.func1(buf1) - assert buf1 == b'a'*10 - - pybuf.func2(buf2) - assert buf2.startswith(b"Hello world!\x00") - - count = pybuf.func3(buf2) - assert count==10 #number of alpha and number in 'Hello world!' - - length = pybuf.func4(buf2) - assert length==12 - - buf3 = bytearray(b"hello") - pybuf.title1(buf3) - assert buf3==b'Hello' - Copied: trunk/Examples/test-suite/python/python_abstractbase_runme3.py (from rev 10949, trunk/Examples/test-suite/python/abstractbase_runme3.py) =================================================================== --- trunk/Examples/test-suite/python/python_abstractbase_runme3.py (rev 0) +++ trunk/Examples/test-suite/python/python_abstractbase_runme3.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,8 @@ +from python_abstractbase import * +from collections import * +assert issubclass(Mapii, MutableMapping) +assert issubclass(Multimapii, MutableMapping) +assert issubclass(IntSet, MutableSet) +assert issubclass(IntMultiset, MutableSet) +assert issubclass(IntVector, MutableSequence) +assert issubclass(IntList, MutableSequence) Copied: trunk/Examples/test-suite/python/python_kwargs_runme.py (from rev 10949, trunk/Examples/test-suite/python/kwargs_runme.py) =================================================================== --- trunk/Examples/test-suite/python/python_kwargs_runme.py (rev 0) +++ trunk/Examples/test-suite/python/python_kwargs_runme.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,67 @@ +from python_kwargs import * + +class MyFoo(Foo): + def __init__(self, a , b = 0): + Foo.__init__(self, a, b) + + + +# Simple class +f1 = MyFoo(2) + +f = Foo(b=2,a=1) + +if f.foo(b=1,a=2) != 3: + raise RuntimeError + +if Foo_statfoo(b=2) != 3: + raise RuntimeError + +if f.efoo(b=2) != 3: + raise RuntimeError + +if Foo_sfoo(b=2) != 3: + raise RuntimeError + + +# Templated class +b = BarInt(b=2,a=1) + +if b.bar(b=1,a=2) != 3: + raise RuntimeError + +if BarInt_statbar(b=2) != 3: + raise RuntimeError + +if b.ebar(b=2) != 3: + raise RuntimeError + +if BarInt_sbar(b=2) != 3: + raise RuntimeError + + +# Functions +if templatedfunction(b=2) != 3: + raise RuntimeError + +if foo(a=1,b=2) != 3: + raise RuntimeError + +if foo(b=2) != 3: + raise RuntimeError + + +#Funtions with keywords + +if foo_kw(_from=2) != 4: + raise RuntimeError + +if foo_nu(_from=2, arg2=3) != 2: + raise RuntimeError + +if foo_mm(min=2) != 4: + raise RuntimeError + +if foo_mm(max=3) != 4: + raise RuntimeError + Copied: trunk/Examples/test-suite/python/python_nondynamic_runme.py (from rev 10949, trunk/Examples/test-suite/python/nondynamic_runme.py) =================================================================== --- trunk/Examples/test-suite/python/python_nondynamic_runme.py (rev 0) +++ trunk/Examples/test-suite/python/python_nondynamic_runme.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,39 @@ +import python_nondynamic + +aa = python_nondynamic.A() + +aa.a = 1 +aa.b = 2 +try: + aa.c = 2 + err = 0 +except: + err = 1 + +if not err: + raise RuntimeError, "A is not static" + + +class B(python_nondynamic.A): + c = 4 + def __init__(self): + python_nondynamic.A.__init__(self) + pass + pass + + + +bb = B() +bb.c = 3 +try: + bb.d = 2 + err = 0 +except: + err = 1 + +if not err: + raise RuntimeError, "B is not static" + + +cc = python_nondynamic.C() +cc.d = 3 Copied: trunk/Examples/test-suite/python/python_overload_simple_cast_runme.py (from rev 10949, trunk/Examples/test-suite/python/overload_simple_cast_runme.py) =================================================================== --- trunk/Examples/test-suite/python/python_overload_simple_cast_runme.py (rev 0) +++ trunk/Examples/test-suite/python/python_overload_simple_cast_runme.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,192 @@ +from python_overload_simple_cast import * + +class Ai: + def __init__(self,x): + self.x = x + + def __int__(self): + return self.x + +class Ad: + def __init__(self,x): + self.x = x + + def __float__(self): + return self.x + +ai = Ai(4) + +ad = Ad(5.0) +add = Ad(5.5) + +try: + fint(add) + good = 0 +except: + good = 1 + +if not good: + raise RuntimeError, "fint(int)" + + +if fint(ad) != "fint:int": + raise RuntimeError, "fint(int)" + +if fdouble(ad) != "fdouble:double": + raise RuntimeError, "fdouble(double)" + +if fint(ai) != "fint:int": + raise RuntimeError, "fint(int)" + +if fint(5.0) != "fint:int": + raise RuntimeError, "fint(int)" + +if fint(3) != "fint:int": + raise RuntimeError, "fint(int)" +if fint(3.0) != "fint:int": + raise RuntimeError, "fint(int)" + +if fdouble(ad) != "fdouble:double": + raise RuntimeError, "fdouble(double)" +if fdouble(3) != "fdouble:double": + raise RuntimeError, "fdouble(double)" +if fdouble(3.0) != "fdouble:double": + raise RuntimeError, "fdouble(double)" + +if fid(3,3.0) != "fid:intdouble": + raise RuntimeError, "fid:intdouble" + +if fid(3.0,3) != "fid:doubleint": + raise RuntimeError, "fid:doubleint" + +if fid(ad,ai) != "fid:doubleint": + raise RuntimeError, "fid:doubleint" + +if fid(ai,ad) != "fid:intdouble": + raise RuntimeError, "fid:intdouble" + + + +if foo(3) != "foo:int": + raise RuntimeError, "foo(int)" + +if foo(3.0) != "foo:double": + raise RuntimeError, "foo(double)" + +if foo("hello") != "foo:char *": + raise RuntimeError, "foo(char *)" + +f = Foo() +b = Bar() + +if foo(f) != "foo:Foo *": + raise RuntimeError, "foo(Foo *)" + +if foo(b) != "foo:Bar *": + raise RuntimeError, "foo(Bar *)" + +v = malloc_void(32) + +if foo(v) != "foo:void *": + raise RuntimeError, "foo(void *)" + +s = Spam() + +if s.foo(3) != "foo:int": + raise RuntimeError, "Spam::foo(int)" + +if s.foo(3.0) != "foo:double": + raise RuntimeError, "Spam::foo(double)" + +if s.foo("hello") != "foo:char *": + raise RuntimeError, "Spam::foo(char *)" + +if s.foo(f) != "foo:Foo *": + raise RuntimeError, "Spam::foo(Foo *)" + +if s.foo(b) != "foo:Bar *": + raise RuntimeError, "Spam::foo(Bar *)" + +if s.foo(v) != "foo:void *": + raise RuntimeError, "Spam::foo(void *)" + +if Spam_bar(3) != "bar:int": + raise RuntimeError, "Spam::bar(int)" + +if Spam_bar(3.0) != "bar:double": + raise RuntimeError, "Spam::bar(double)" + +if Spam_bar("hello") != "bar:char *": + raise RuntimeError, "Spam::bar(char *)" + +if Spam_bar(f) != "bar:Foo *": + raise RuntimeError, "Spam::bar(Foo *)" + +if Spam_bar(b) != "bar:Bar *": + raise RuntimeError, "Spam::bar(Bar *)" + +if Spam_bar(v) != "bar:void *": + raise RuntimeError, "Spam::bar(void *)" + +# Test constructors + +s = Spam() +if s.type != "none": + raise RuntimeError, "Spam()" + +s = Spam(3) +if s.type != "int": + raise RuntimeError, "Spam(int)" + +s = Spam(3.4) +if s.type != "double": + raise RuntimeError, "Spam(double)" + +s = Spam("hello") +if s.type != "char *": + raise RuntimeError, "Spam(char *)" + +s = Spam(f) +if s.type != "Foo *": + raise RuntimeError, "Spam(Foo *)" + +s = Spam(b) +if s.type != "Bar *": + raise RuntimeError, "Spam(Bar *)" + +s = Spam(v) +if s.type != "void *": + raise RuntimeError, "Spam(void *)" + + +# unsigned long long +ullmax = 9223372036854775807 #0xffffffffffffffff +ullmaxd = 9007199254740992.0 +ullmin = 0 +ullmind = 0.0 +if ull(ullmin) != ullmin: + raise runtimeerror, "ull(ullmin)" +if ull(ullmax) != ullmax: + raise runtimeerror, "ull(ullmax)" +if ull(ullmind) != ullmind: + raise RuntimeError, "ull(ullmind)" +if ull(ullmaxd) != ullmaxd: + raise RuntimeError, "ull(ullmaxd)" + +# long long +llmax = 9223372036854775807 #0x7fffffffffffffff +llmin = -9223372036854775808 +# these are near the largest floats we can still convert into long long +llmaxd = 9007199254740992.0 +llmind = -9007199254740992.0 +if ll(llmin) != llmin: + raise runtimeerror, "ll(llmin)" +if ll(llmax) != llmax: + raise runtimeerror, "ll(llmax)" +if ll(llmind) != llmind: + raise RuntimeError, "ll(llmind)" +if ll(llmaxd) != llmaxd: + raise RuntimeError, "ll(llmaxd)" + + +free_void(v) Copied: trunk/Examples/test-suite/python/python_pybuf_runme3.py (from rev 10949, trunk/Examples/test-suite/python/pybuf_runme3.py) =================================================================== --- trunk/Examples/test-suite/python/python_pybuf_runme3.py (rev 0) +++ trunk/Examples/test-suite/python/python_pybuf_runme3.py 2008-11-26 22:50:35 UTC (rev 10953) @@ -0,0 +1,42 @@ +#run: +# python python_pybuf_runme3.py benchmark +#for the benchmark, other wise the test case will be run +import python_pybuf +import sys +if len(sys.argv)>=2 and sys.argv[1]=="benchmark": + #run the benchmark + import time + k=1000000 #number of times to excute the functions + + t=time.time() + a = bytearray(b'hello world') + for i in range(k): + pybuf.title1(a) + print("Time used by bytearray:",time.time()-t) + + t=time.time() + b = 'hello world' + for i in range(k): + pybuf.title2(b) + print("Time used by string:",time.time()-t) +else: + #run the test case + buf1 = bytearray(10) + buf2 = bytearray(50) + + pybuf.func1(buf1) + assert buf1 == b'a'*10 + + pybuf.func2(buf2) + assert buf2.startswith(b"Hello world!\x00") + + count = pybuf.func3(buf2) + assert count==10 #number of alpha and number in 'Hello world!' + + length = pybuf.func4(buf2) + assert length==12 + + buf3 = bytearray(b"hello") + pybuf.title1(buf3) + assert buf3==b'Hello' + Deleted: trunk/Examples/test-suite/python/simutry.i =================================================================== --- trunk/Examples/test-suite/python/simutry.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/simutry.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,98 +0,0 @@ -%module simutry - -%include "std_vector.i" - -%inline { - -namespace simuPOP -{ - // some simple pop class - template <class Type> - struct Population { - int m_a; - Population(int a):m_a(a){} - }; - - // base operator, output pop.m_a - template<class Pop> - struct Operator - { - Pop m_pop; - Operator(int a):m_pop(a){} - virtual ~Operator() - { - } - - virtual int func() const - { return m_pop.m_a; } - }; - - // derived operator, output double of pop.m_a - template<class Pop> - struct DerivedOperator: public Operator<Pop> - { - DerivedOperator(int a):Operator<Pop>(a){} - virtual int func() const - { return 2*this->m_pop.m_a; } - }; - -} - -} - -#if 1 -namespace simuPOP -{ - %template(population) Population< std::pair<unsigned long,unsigned long> >; -} - -%inline -{ - namespace simuPOP - { - typedef Population< std::pair<unsigned long,unsigned long> > pop; - } -} -#else -%inline -{ - namespace simuPOP - { - // %template(population) Population< std::pair<unsigned long,unsigned long> >; - - struct pop { - int m_a; - pop(int a):m_a(a){} - }; - } -} -#endif - - -namespace simuPOP -{ - %template(baseOperator) Operator< pop >; - %template(derivedOperator) DerivedOperator< pop >; -} - - - -namespace std -{ - %template(vectorop) vector< simuPOP::Operator<simuPOP::pop> * >; -} - -%inline -{ -namespace simuPOP -{ - // test function, use of a vector of Operator* - void test( const std::vector< Operator<pop>*>& para) - { - for( size_t i =0; i < para.size(); ++i) - para[i]->func(); - } -} -} - - Deleted: trunk/Examples/test-suite/python/swigobject.i =================================================================== --- trunk/Examples/test-suite/python/swigobject.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/swigobject.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,25 +0,0 @@ -%module swigobject - - - -%inline -{ - struct A { - char name[4]; - }; - - const char* pointer_str(A *a){ - static char result[1024]; - sprintf(result,"0x%lx", (unsigned long)(void *)a); - return result; - } - - A *a_ptr(A *a){ - return a; - } - - - void *v_ptr(void *a){ - return a; - } -} Deleted: trunk/Examples/test-suite/python/tag_no_clash_with_variable_runme.i =================================================================== --- trunk/Examples/test-suite/python/tag_no_clash_with_variable_runme.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/tag_no_clash_with_variable_runme.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,3 +0,0 @@ -import enum_tag_no_clash_with_variable - -error_action = error_action Deleted: trunk/Examples/test-suite/python/template_matrix.i =================================================================== --- trunk/Examples/test-suite/python/template_matrix.i 2008-11-26 21:56:48 UTC (rev 10952) +++ trunk/Examples/test-suite/python/template_matrix.i 2008-11-26 22:50:35 UTC (rev 10953) @@ -1,71 +0,0 @@ -%module template_matr... [truncated message content] |
From: <wsf...@us...> - 2008-11-26 23:04:21
|
Revision: 10954 http://swig.svn.sourceforge.net/swig/?rev=10954&view=rev Author: wsfulton Date: 2008-11-26 23:04:18 +0000 (Wed, 26 Nov 2008) Log Message: ----------- modifying build system not to rely on the -I path to find the input files avoiding warning 125: merge .i files that are common between python and the main version Modified Paths: -------------- trunk/Examples/test-suite/li_std_map.i trunk/Examples/test-suite/li_std_set.i Added Paths: ----------- trunk/Examples/test-suite/li_std_vector_extra.i trunk/Examples/test-suite/python/li_std_vector_extra_runme.py Removed Paths: ------------- trunk/Examples/test-suite/python/li_std_map.i trunk/Examples/test-suite/python/li_std_set.i trunk/Examples/test-suite/python/li_std_stream.i trunk/Examples/test-suite/python/li_std_vector.i trunk/Examples/test-suite/python/li_std_vector_runme.py trunk/Examples/test-suite/python/li_std_wstring.i trunk/Examples/test-suite/python/std_containers.i Modified: trunk/Examples/test-suite/li_std_map.i =================================================================== --- trunk/Examples/test-suite/li_std_map.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/li_std_map.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -47,8 +47,15 @@ %template(pairiiAc) pair<int,const pair<int, A*> >; +#ifdef SWIGRUBY %template() pair< swig::LANGUAGE_OBJ, swig::LANGUAGE_OBJ >; %template(LanguageMap) map< swig::LANGUAGE_OBJ, swig::LANGUAGE_OBJ >; +#endif + +#ifdef SWIGPYTHON + %template() pair<swig::PyObject_ptr, swig::PyObject_ptr>; + %template(pymap) map<swig::PyObject_ptr, swig::PyObject_ptr>; +#endif } Modified: trunk/Examples/test-suite/li_std_set.i =================================================================== --- trunk/Examples/test-suite/li_std_set.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/li_std_set.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -31,4 +31,10 @@ +#if defined(SWIGRUBY) %template(LanguageSet) std::set<swig::LANGUAGE_OBJ>; +#endif + +#if defined(SWIGPYTHON) +%template(pyset) std::set<swig::PyObject_ptr>; +#endif Copied: trunk/Examples/test-suite/li_std_vector_extra.i (from rev 10949, trunk/Examples/test-suite/python/li_std_vector.i) =================================================================== --- trunk/Examples/test-suite/li_std_vector_extra.i (rev 0) +++ trunk/Examples/test-suite/li_std_vector_extra.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -0,0 +1,141 @@ +%module li_std_vector_extra + +%warnfilter(509) overloaded1; +%warnfilter(509) overloaded2; + +%include "std_string.i" +%include "std_vector.i" +%include "cpointer.i" +%include "carrays.i" + +%{ +#include <algorithm> +#include <functional> +#include <numeric> +%} + +namespace std { + %template() vector<short>; + %template(IntVector) vector<int>; + %template(BoolVector) vector<bool>; + %template() vector<string>; +} + +%template(DoubleVector) std::vector<double>; + + +%template(sizeVector) std::vector<size_t>; +%{ + template <class T> + struct Param + { + T val; + + Param(T v = 0): val(v) { + } + + operator T() const { return val; } + }; +%} +specialize_std_vector(Param<int>,PyInt_Check,PyInt_AsLong,PyInt_FromLong); +%template(PIntVector) std::vector<Param<int> >; + +%inline %{ +typedef float Real; +%} + +namespace std { + %template(RealVector) vector<Real>; +} + +%inline %{ + +double average(std::vector<int> v) { + return std::accumulate(v.begin(),v.end(),0.0)/v.size(); +} + +std::vector<Real> half(const std::vector<Real>& v) { + std::vector<Real> w(v); + for (std::vector<Real>::size_type i=0; i<w.size(); i++) + w[i] /= 2.0; + return w; +} + +void halve_in_place(std::vector<double>& v) { + std::transform(v.begin(),v.end(),v.begin(), + std::bind2nd(std::divides<double>(),2.0)); +} + +%} + +%template(IntPtrVector) std::vector<int *>; + + + +// +// +%{ +#include <iostream> +%} + +%inline %{ + +namespace Test { +struct A { + virtual ~A() {} + virtual int f(const int i) const = 0; +}; + +struct B : public A { + int val; + + B(int i = 0) : val(i) + { + } + + int f(const int i) const { return i + val; } +}; + + +int vecAptr(const std::vector<A*>& v) { + return v[0]->f(1); +} + +} + +std::vector<short> halfs(const std::vector<short>& v) { + std::vector<short> w(v); + for (std::vector<short>::size_type i=0; i<w.size(); i++) + w[i] /= 2; + return w; +} + + +std::vector<std::string> vecStr(std::vector<std::string> v) { + v[0] += v[1]; + return v; +} + +%} +%template(VecB) std::vector<Test::B>; +%template(VecA) std::vector<Test::A*>; + +%pointer_class(int,PtrInt) +%array_functions(int,ArrInt) + + +%template(pyvector) std::vector<swig::PyObject_ptr>; + +namespace std { + %template(ConstIntVector) vector<const int *>; +} + +%inline %{ +std::string overloaded1(std::vector<double> vi) { return "vector<double>"; } +std::string overloaded1(std::vector<int> vi) { return "vector<int>"; } +std::string overloaded2(std::vector<int> vi) { return "vector<int>"; } +std::string overloaded2(std::vector<double> vi) { return "vector<double>"; } +std::string overloaded3(std::vector<int> *vi) { return "vector<int> *"; } +std::string overloaded3(int i) { return "int"; } +%} + Deleted: trunk/Examples/test-suite/python/li_std_map.i =================================================================== --- trunk/Examples/test-suite/python/li_std_map.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/python/li_std_map.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -1,58 +0,0 @@ -%module("templatereduce") li_std_map - -%include std_pair.i -%include std_map.i -%include std_multimap.i - -%inline %{ -struct A{ - int val; - - A(int v = 0): val(v) - { - } - -}; -%} - -namespace std -{ - %template(pairii) pair<int, int>; - %template(pairAA) pair<int, A>; - %template(pairA) pair<int, A*>; - %template(mapA) map<int, A*>; - %template(mmapA) multimap<int, A*>; - - %template(paircA1) pair<const int, A*>; - %template(paircA2) pair<const int, const A*>; - %template(pairiiA) pair<int,pair<int, A*> >; - %template(pairiiAc) pair<int,const pair<int, A*> >; - - - %template() pair<swig::PyObject_ptr, swig::PyObject_ptr>; - %template(pymap) map<swig::PyObject_ptr, swig::PyObject_ptr>; - -} - - - -%inline -{ -std::pair<int, A*> -p_identa(std::pair<int, A*> p) { - return p; -} - -std::map<int,A*> m_identa(const std::map<int,A*>& v) -{ - return v; -} - -} - - - -namespace std -{ -%template(mapii) map<int,int>; -} Deleted: trunk/Examples/test-suite/python/li_std_set.i =================================================================== --- trunk/Examples/test-suite/python/li_std_set.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/python/li_std_set.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -1,17 +0,0 @@ -%module li_std_set - -%include <std_string.i> -%include <std_set.i> -%include <std_multiset.i> -%include <std_vector.i> - -%template(set_string) std::set<std::string>; -%template(set_int) std::multiset<int>; - - -%template(v_int) std::vector<int>; - - - - -%template(pyset) std::set<swig::PyObject_ptr>; Deleted: trunk/Examples/test-suite/python/li_std_stream.i =================================================================== --- trunk/Examples/test-suite/python/li_std_stream.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/python/li_std_stream.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -1,59 +0,0 @@ -%module li_std_stream - -%inline %{ - struct A; -%} - -%include <std_iostream.i> -%include <std_sstream.i> - - - -%callback(1) A::bar; - -%inline %{ - - struct B { - virtual ~B() - { - } - - }; - - struct A : B - { - void __add__(int a) - { - } - - void __add__(double a) - { - } - - static int bar(int a){ - return a; - } - - static int foo(int a, int (*pf)(int a)) - { - return pf(a); - } - - - std::ostream& __rlshift__(std::ostream& out) - { - out << "A class"; - return out; - } - }; -%} - -%extend std::basic_ostream<char>{ - std::basic_ostream<char>& - operator<<(const A& a) - { - *self << "A class"; - return *self; - } -} - Deleted: trunk/Examples/test-suite/python/li_std_vector.i =================================================================== --- trunk/Examples/test-suite/python/li_std_vector.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/python/li_std_vector.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -1,141 +0,0 @@ -%module li_std_vector - -%warnfilter(509) overloaded1; -%warnfilter(509) overloaded2; - -%include "std_string.i" -%include "std_vector.i" -%include "cpointer.i" -%include "carrays.i" - -%{ -#include <algorithm> -#include <functional> -#include <numeric> -%} - -namespace std { - %template() vector<short>; - %template(IntVector) vector<int>; - %template(BoolVector) vector<bool>; - %template() vector<string>; -} - -%template(DoubleVector) std::vector<double>; - - -%template(sizeVector) std::vector<size_t>; -%{ - template <class T> - struct Param - { - T val; - - Param(T v = 0): val(v) { - } - - operator T() const { return val; } - }; -%} -specialize_std_vector(Param<int>,PyInt_Check,PyInt_AsLong,PyInt_FromLong); -%template(PIntVector) std::vector<Param<int> >; - -%inline %{ -typedef float Real; -%} - -namespace std { - %template(RealVector) vector<Real>; -} - -%inline %{ - -double average(std::vector<int> v) { - return std::accumulate(v.begin(),v.end(),0.0)/v.size(); -} - -std::vector<Real> half(const std::vector<Real>& v) { - std::vector<Real> w(v); - for (std::vector<Real>::size_type i=0; i<w.size(); i++) - w[i] /= 2.0; - return w; -} - -void halve_in_place(std::vector<double>& v) { - std::transform(v.begin(),v.end(),v.begin(), - std::bind2nd(std::divides<double>(),2.0)); -} - -%} - -%template(IntPtrVector) std::vector<int *>; - - - -// -// -%{ -#include <iostream> -%} - -%inline %{ - -namespace Test { -struct A { - virtual ~A() {} - virtual int f(const int i) const = 0; -}; - -struct B : public A { - int val; - - B(int i = 0) : val(i) - { - } - - int f(const int i) const { return i + val; } -}; - - -int vecAptr(const std::vector<A*>& v) { - return v[0]->f(1); -} - -} - -std::vector<short> halfs(const std::vector<short>& v) { - std::vector<short> w(v); - for (std::vector<short>::size_type i=0; i<w.size(); i++) - w[i] /= 2; - return w; -} - - -std::vector<std::string> vecStr(std::vector<std::string> v) { - v[0] += v[1]; - return v; -} - -%} -%template(VecB) std::vector<Test::B>; -%template(VecA) std::vector<Test::A*>; - -%pointer_class(int,PtrInt) -%array_functions(int,ArrInt) - - -%template(pyvector) std::vector<swig::PyObject_ptr>; - -namespace std { - %template(ConstIntVector) vector<const int *>; -} - -%inline %{ -std::string overloaded1(std::vector<double> vi) { return "vector<double>"; } -std::string overloaded1(std::vector<int> vi) { return "vector<int>"; } -std::string overloaded2(std::vector<int> vi) { return "vector<int>"; } -std::string overloaded2(std::vector<double> vi) { return "vector<double>"; } -std::string overloaded3(std::vector<int> *vi) { return "vector<int> *"; } -std::string overloaded3(int i) { return "int"; } -%} - Copied: trunk/Examples/test-suite/python/li_std_vector_extra_runme.py (from rev 10949, trunk/Examples/test-suite/python/li_std_vector_runme.py) =================================================================== --- trunk/Examples/test-suite/python/li_std_vector_extra_runme.py (rev 0) +++ trunk/Examples/test-suite/python/li_std_vector_extra_runme.py 2008-11-26 23:04:18 UTC (rev 10954) @@ -0,0 +1,135 @@ +from li_std_vector_extra import * + +iv = IntVector(4) +for i in range(0,4): + iv[i] = i + +x = average(iv) +y = average([1,2,3,4]) + +a = half([10,10.5,11,11.5]) + +dv = DoubleVector(10) +for i in range(0,10): + dv[i] = i/2.0 + +halve_in_place(dv) + + +bv = BoolVector(4) +bv[0]= 1 +bv[1]= 0 +bv[2]= 4 +bv[3]= 0 + +if bv[0] != bv[2]: + raise RuntimeError,"bad std::vector<bool> mapping" + +b = B(5) +va = VecA([b,None,b,b]) + +if va[0].f(1) != 6: + raise RuntimeError,"bad std::vector<A*> mapping" + +if vecAptr(va) != 6: + raise RuntimeError,"bad std::vector<A*> mapping" + +b.val = 7 +if va[3].f(1) != 8: + raise RuntimeError,"bad std::vector<A*> mapping" + + +ip = PtrInt() +ap = new_ArrInt(10) + +ArrInt_setitem(ip,0,123) +ArrInt_setitem(ap,2,123) + +vi = IntPtrVector((ip,ap,None)) +if ArrInt_getitem(vi[0],0) != ArrInt_getitem(vi[1],2): + raise RuntimeError,"bad std::vector<int*> mapping" + +delete_ArrInt(ap) + + +a = halfs([10,8,4,3]) + +v = IntVector() +v[0:2] = [1,2] +if v[0] != 1 or v[1] != 2: + raise RuntimeError,"bad setslice" + +if v[0:-1][0] != 1: + raise RuntimeError,"bad getslice" + +if v[0:-2].size() != 0: + raise RuntimeError,"bad getslice" + +v[0:1] = [2] +if v[0] != 2: + raise RuntimeError,"bad setslice" + +v[1:] = [3] +if v[1] != 3: + raise RuntimeError,"bad setslice" + +v[2:] = [3] +if v[2] != 3: + raise RuntimeError,"bad setslice" + +if v[0:][0] != v[0]: + raise RuntimeError,"bad getslice" + + +del v[:] +if v.size() != 0: + raise RuntimeError,"bad getslice" + +del v[:] +if v.size() != 0: + raise RuntimeError,"bad getslice" + + + +v = vecStr(["hello ", "world"]) +if v[0] != 'hello world': + raise RuntimeError,"bad std::string+std::vector" + + + +pv = pyvector([1, "hello", (1,2)]) + +if pv[1] != "hello": + raise RuntimeError + + +iv = IntVector(5) +for i in range(0,5): + iv[i] = i + +iv[1:3] = [] +if iv[1] != 3: + raise RuntimeError + +# Overloading checks +if overloaded1(iv) != "vector<int>": + raise RuntimeError + +if overloaded1(dv) != "vector<double>": + raise RuntimeError + +if overloaded2(iv) != "vector<int>": + raise RuntimeError + +if overloaded2(dv) != "vector<double>": + raise RuntimeError + +if overloaded3(iv) != "vector<int> *": + raise RuntimeError + +if overloaded3(None) != "vector<int> *": + raise RuntimeError + +if overloaded3(100) != "int": + raise RuntimeError + Deleted: trunk/Examples/test-suite/python/li_std_vector_runme.py =================================================================== --- trunk/Examples/test-suite/python/li_std_vector_runme.py 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/python/li_std_vector_runme.py 2008-11-26 23:04:18 UTC (rev 10954) @@ -1,135 +0,0 @@ -from li_std_vector import * - -iv = IntVector(4) -for i in range(0,4): - iv[i] = i - -x = average(iv) -y = average([1,2,3,4]) - -a = half([10,10.5,11,11.5]) - -dv = DoubleVector(10) -for i in range(0,10): - dv[i] = i/2.0 - -halve_in_place(dv) - - -bv = BoolVector(4) -bv[0]= 1 -bv[1]= 0 -bv[2]= 4 -bv[3]= 0 - -if bv[0] != bv[2]: - raise RuntimeError,"bad std::vector<bool> mapping" - -b = B(5) -va = VecA([b,None,b,b]) - -if va[0].f(1) != 6: - raise RuntimeError,"bad std::vector<A*> mapping" - -if vecAptr(va) != 6: - raise RuntimeError,"bad std::vector<A*> mapping" - -b.val = 7 -if va[3].f(1) != 8: - raise RuntimeError,"bad std::vector<A*> mapping" - - -ip = PtrInt() -ap = new_ArrInt(10) - -ArrInt_setitem(ip,0,123) -ArrInt_setitem(ap,2,123) - -vi = IntPtrVector((ip,ap,None)) -if ArrInt_getitem(vi[0],0) != ArrInt_getitem(vi[1],2): - raise RuntimeError,"bad std::vector<int*> mapping" - -delete_ArrInt(ap) - - -a = halfs([10,8,4,3]) - -v = IntVector() -v[0:2] = [1,2] -if v[0] != 1 or v[1] != 2: - raise RuntimeError,"bad setslice" - -if v[0:-1][0] != 1: - raise RuntimeError,"bad getslice" - -if v[0:-2].size() != 0: - raise RuntimeError,"bad getslice" - -v[0:1] = [2] -if v[0] != 2: - raise RuntimeError,"bad setslice" - -v[1:] = [3] -if v[1] != 3: - raise RuntimeError,"bad setslice" - -v[2:] = [3] -if v[2] != 3: - raise RuntimeError,"bad setslice" - -if v[0:][0] != v[0]: - raise RuntimeError,"bad getslice" - - -del v[:] -if v.size() != 0: - raise RuntimeError,"bad getslice" - -del v[:] -if v.size() != 0: - raise RuntimeError,"bad getslice" - - - -v = vecStr(["hello ", "world"]) -if v[0] != 'hello world': - raise RuntimeError,"bad std::string+std::vector" - - - -pv = pyvector([1, "hello", (1,2)]) - -if pv[1] != "hello": - raise RuntimeError - - -iv = IntVector(5) -for i in range(0,5): - iv[i] = i - -iv[1:3] = [] -if iv[1] != 3: - raise RuntimeError - -# Overloading checks -if overloaded1(iv) != "vector<int>": - raise RuntimeError - -if overloaded1(dv) != "vector<double>": - raise RuntimeError - -if overloaded2(iv) != "vector<int>": - raise RuntimeError - -if overloaded2(dv) != "vector<double>": - raise RuntimeError - -if overloaded3(iv) != "vector<int> *": - raise RuntimeError - -if overloaded3(None) != "vector<int> *": - raise RuntimeError - -if overloaded3(100) != "int": - raise RuntimeError - Deleted: trunk/Examples/test-suite/python/li_std_wstring.i =================================================================== --- trunk/Examples/test-suite/python/li_std_wstring.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/python/li_std_wstring.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -1,89 +0,0 @@ -%module li_std_wstring -%include <std_basic_string.i> -%include <std_wstring.i> - - -%inline %{ - -struct A : std::wstring -{ - A(const std::wstring& s) : std::wstring(s) - { - } -}; - -struct B -{ - B(const std::wstring& s) : cname(0), name(s), a(s) - { - } - - char *cname; - std::wstring name; - A a; - -}; - - -wchar_t test_wcvalue(wchar_t x) { - return x; -} - -const wchar_t* test_ccvalue(const wchar_t* x) { - return x; -} - -wchar_t* test_cvalue(wchar_t* x) { - return x; -} - - -std::wstring test_value(std::wstring x) { - return x; -} - -const std::wstring& test_const_reference(const std::wstring &x) { - return x; -} - -void test_pointer(std::wstring *x) { -} - -std::wstring *test_pointer_out() { - static std::wstring x = L"x"; - return &x; -} - -void test_const_pointer(const std::wstring *x) { -} - -const std::wstring *test_const_pointer_out() { - static std::wstring x = L"x"; - return &x; -} - -void test_reference(std::wstring &x) { -} - -std::wstring& test_reference_out() { - static std::wstring x = L"x"; - return x; -} - -#if defined(_MSC_VER) - #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif - -void test_throw() throw(std::wstring){ - static std::wstring x = L"x"; - - throw x; -} - -#if defined(_MSC_VER) - #pragma warning(default: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif - -%} - - Deleted: trunk/Examples/test-suite/python/std_containers.i =================================================================== --- trunk/Examples/test-suite/python/std_containers.i 2008-11-26 22:50:35 UTC (rev 10953) +++ trunk/Examples/test-suite/python/std_containers.i 2008-11-26 23:04:18 UTC (rev 10954) @@ -1,199 +0,0 @@ -%module std_containers - -%{ -#include <set> -%} -%include std_vector.i -%include std_string.i -%include std_deque.i -%include std_list.i -%include std_set.i -%include std_multiset.i -%include std_pair.i -%include std_map.i -%include std_multimap.i -%include std_complex.i - -%template() std::vector<double>; -%template() std::pair<std::string, int>; -%template() std::pair<int,double>; - -%template() std::vector< std::vector<double > > ; -%template(ccube) std::vector< std::vector< std::vector<double > > >; - -%inline -{ - typedef - std::vector<std::vector<std::vector<double > > > - ccube; - - ccube cident(const ccube& c) - { - return c; - } - - struct C - { - }; -} - - -%template(map_si) std::map<std::string, int>; -%template(pair_iC) std::pair<int, C*>; -%template(map_iC) std::map<int, C*>; -%template(mmap_si) std::multimap<std::string, int>; -%template(set_i) std::set<int>; -%template(multiset_i) std::multiset<int>; -%template(list_i) std::list<int>; -%template(deque_i) std::deque<int>; - -%template(vector_b) std::vector<bool>; -%template(vector_i) std::vector<int>; -%template(vector_c) std::vector<std::complex<double> >; -%template(vector_ui) std::vector<unsigned int>; - -%template(bmatrix) std::vector<std::vector<bool> >; -%template(imatrix) std::vector<std::vector<int> >; -%template(cmatrix) std::vector<std::vector<std::complex<double> > >; - -%apply std::vector<int> *INOUT {std::vector<int> *INOUT2}; - -%inline -{ - typedef std::vector<std::vector<int> > imatrix; - imatrix midenti(const imatrix& v) - { - return v; - } - - typedef std::vector<std::vector<bool> > bmatrix; - bmatrix midentb(const bmatrix& v) - { - return v; - } - - std::map<int,C*> mapidentc(const std::map<int,C*>& v) - { - return v; - } - - std::map<int,int> mapidenti(const std::map<int,int>& v) - { - return v; - } - - std::map<std::string,int> mapident(const std::map<std::string,int>& v) - { - return v; - } - - std::multimap<std::string,int> mapident(const std::multimap<std::string,int>& v) - { - return v; - } - - std::vector<int> vident(const std::vector<int>& v) - { - return v; - } - - std::set<int> sident(const std::set<int>& v) - { - return v; - } - - std::vector<unsigned int> videntu(const std::vector<unsigned int>& v) - { - return v; - } - - - int get_elem(const std::vector<int>& v, int index) - { - return v[index]; - } - - std::pair<int,double> pident(const std::pair<int,double>& p) - { - return p; - } - - void - v_inout(std::vector<int> *INOUT) { - *INOUT = *INOUT; - } - - void - v_inout2(std::vector<int> *INOUT, std::vector<int> *INOUT2) { - std::swap(*INOUT, *INOUT2); - } - -} - - -%{ - - template <class C> struct Param - { - }; -%} - - -template <class C> struct Param -{ -}; - - -%template(Param_c) Param<std::complex<double> >; -%inline -{ - int hello(Param<std::complex<double> > c) - { - return 0; - } -} - -%inline -{ - struct A - { - A(int aa = 0) : a(aa) - { - } - int a; - }; -} - -%template() std::pair<A,int>; -%template(pair_iA) std::pair<int,A>; -%template(vector_piA) std::vector<std::pair<int,A> >; - - -%inline { - std::pair<A,int> ident(std::pair<int,A> a, const std::pair<int,int>& b) - { - return std::pair<A,int>(); - } - - - std::vector<std::pair<int,A> > pia_vident(std::vector<std::pair<int,A> > a ) - { - return a; - } - - struct Foo - { - Foo(int i) { - } - }; - -} - - -%std_nodefconst_type(Foo); - -%template(vector_Foo) std::vector<Foo>; -%template(deque_Foo) std::deque<Foo>; -%template(list_Foo) std::list<Foo>; - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-11-28 23:33:41
|
Revision: 10957 http://swig.svn.sourceforge.net/swig/?rev=10957&view=rev Author: wsfulton Date: 2008-11-28 23:33:37 +0000 (Fri, 28 Nov 2008) Log Message: ----------- move iadd.h contents into iadd.i Modified Paths: -------------- trunk/Examples/test-suite/iadd.i Removed Paths: ------------- trunk/Examples/test-suite/python/iadd.h Modified: trunk/Examples/test-suite/iadd.i =================================================================== --- trunk/Examples/test-suite/iadd.i 2008-11-28 23:30:45 UTC (rev 10956) +++ trunk/Examples/test-suite/iadd.i 2008-11-28 23:33:37 UTC (rev 10957) @@ -1,12 +1,58 @@ %module iadd %include attribute.i -%{ -#include "iadd.h" -%} class Foo; %attribute_ref(test::Foo, test::A& , AsA); %attribute_ref(test::Foo, long, AsLong); -%include "iadd.h" +%inline %{ +struct B { + int x; + B(const int x) : x(x) {} + + B& get_me() + { + return *this; + } + + B& operator+=(const B& a) { + x += a.x; + return *this; + } +}; + + + +namespace test { + +struct A { + int x; + A(const int x) : x(x) {} + + A& get_me() + { + return *this; + } + + A operator+=(const A& a) { + x += a.x; + return *this; + } +}; + + +class Foo { +public: + Foo(): _a(new A(5)), _n(new long) {} + ~Foo() { delete _a; delete _n; _a = NULL; _n = NULL; } + + A & AsA() const { return *_a; } + long& AsLong() const { return *_n; } +private: + A *_a; + long *_n; +}; +} + +%} Deleted: trunk/Examples/test-suite/python/iadd.h =================================================================== --- trunk/Examples/test-suite/python/iadd.h 2008-11-28 23:30:45 UTC (rev 10956) +++ trunk/Examples/test-suite/python/iadd.h 2008-11-28 23:33:37 UTC (rev 10957) @@ -1,47 +0,0 @@ -struct B { - int x; - B(const int x) : x(x) {} - - B& get_me() - { - return *this; - } - - B& operator+=(const B& a) { - x += a.x; - return *this; - } -}; - - - -namespace test { - -struct A { - int x; - A(const int x) : x(x) {} - - A& get_me() - { - return *this; - } - - A operator+=(const A& a) { - x += a.x; - return *this; - } -}; - - -class Foo { -public: - Foo(): _a(new A(5)), _n(new long) {} - ~Foo() { delete _a; delete _n; _a = NULL; _n = NULL; } - - A & AsA() const { return *_a; } - long& AsLong() const { return *_n; } -private: - A *_a; - long *_n; -}; -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-06 17:10:58
|
Revision: 10964 http://swig.svn.sourceforge.net/swig/?rev=10964&view=rev Author: wsfulton Date: 2008-12-06 17:10:53 +0000 (Sat, 06 Dec 2008) Log Message: ----------- add test for inheritance of 3 classes deep which exposes a problem in the python shared_ptr wrappers. Manually added the %types for now. Modified Paths: -------------- trunk/Examples/test-suite/csharp/li_boost_shared_ptr_runme.cs trunk/Examples/test-suite/java/li_boost_shared_ptr_runme.java trunk/Examples/test-suite/li_boost_shared_ptr.i trunk/Examples/test-suite/python/li_boost_shared_ptr_runme.py Modified: trunk/Examples/test-suite/csharp/li_boost_shared_ptr_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/li_boost_shared_ptr_runme.cs 2008-12-03 21:36:53 UTC (rev 10963) +++ trunk/Examples/test-suite/csharp/li_boost_shared_ptr_runme.cs 2008-12-06 17:10:53 UTC (rev 10964) @@ -345,6 +345,16 @@ verifyCount(1, kret); } + // 3rd derived class + { + Klass k = new Klass3rdDerived("me oh my"); + String val = k.getValue(); + verifyValue("me oh my-3rdDerived", val); + verifyCount(3, k); // 3 classes in inheritance chain == 3 swigCPtr values + val = li_boost_shared_ptr.test3rdupcast(k); + verifyValue("me oh my-3rdDerived", val); + verifyCount(3, k); + } ////////////////////////////////// Member variables //////////////////////////////////////// // smart pointer by value Modified: trunk/Examples/test-suite/java/li_boost_shared_ptr_runme.java =================================================================== --- trunk/Examples/test-suite/java/li_boost_shared_ptr_runme.java 2008-12-03 21:36:53 UTC (rev 10963) +++ trunk/Examples/test-suite/java/li_boost_shared_ptr_runme.java 2008-12-06 17:10:53 UTC (rev 10964) @@ -357,6 +357,16 @@ verifyCount(1, kret); } + // 3rd derived class + { + Klass k = new Klass3rdDerived("me oh my"); + String val = k.getValue(); + verifyValue("me oh my-3rdDerived", val); + verifyCount(3, k); // 3 classes in inheritance chain == 3 swigCPtr values + val = li_boost_shared_ptr.test3rdupcast(k); + verifyValue("me oh my-3rdDerived", val); + verifyCount(3, k); + } ////////////////////////////////// Member variables //////////////////////////////////////// // smart pointer by value Modified: trunk/Examples/test-suite/li_boost_shared_ptr.i =================================================================== --- trunk/Examples/test-suite/li_boost_shared_ptr.i 2008-12-03 21:36:53 UTC (rev 10963) +++ trunk/Examples/test-suite/li_boost_shared_ptr.i 2008-12-06 17:10:53 UTC (rev 10964) @@ -43,7 +43,15 @@ %include <boost_shared_ptr.i> SWIG_SHARED_PTR(Klass, Space::Klass) SWIG_SHARED_PTR_DERIVED(KlassDerived, Space::Klass, Space::KlassDerived) +SWIG_SHARED_PTR_DERIVED(Klass2ndDerived, Space::Klass, Space::Klass2ndDerived) +SWIG_SHARED_PTR_DERIVED(Klass3rdDerived, Space::Klass2ndDerived, Space::Klass3rdDerived) +// TEMP for python +%types(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< Space::Klass3rdDerived > = SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< Space::Klass >) { + *newmemory = SWIG_CAST_NEW_MEMORY; + return (void *) new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< Space::Klass >(*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< Space::Klass3rdDerived > *)$from); +} + #endif // TODO: @@ -101,7 +109,13 @@ }; SwigExamples::CriticalSection Space::Klass::critical_section; -struct IgnoredMultipleInheritBase { virtual ~IgnoredMultipleInheritBase() {} double d; double e;}; +struct IgnoredMultipleInheritBase { + IgnoredMultipleInheritBase() : d(0.0), e(0.0) {} + virtual ~IgnoredMultipleInheritBase() {} + double d; + double e; + virtual void AVirtualMethod() {} +}; // For most compilers, this use of multiple inheritance results in different derived and base class // pointer values ... for some more challenging tests :) @@ -142,7 +156,21 @@ return kd; } +// 3 classes in inheritance chain test +struct Klass2ndDerived : Klass { + Klass2ndDerived() : Klass() {} + Klass2ndDerived(const std::string &val) : Klass(val) {} +}; +struct Klass3rdDerived : IgnoredMultipleInheritBase, Klass2ndDerived { + Klass3rdDerived() : Klass2ndDerived() {} + Klass3rdDerived(const std::string &val) : Klass2ndDerived(val) {} + virtual ~Klass3rdDerived() {} + virtual std::string getValue() const { return Klass2ndDerived::getValue() + "-3rdDerived"; } +}; +std::string test3rdupcast( SwigBoost::shared_ptr< Klass > k) { + return k->getValue(); +} @@ -217,8 +245,14 @@ return new SwigBoost::shared_ptr<Klass>(new Klass("smartpointerpointerownertest")); } -// Provide overloads for Klass and KlassDerived as some language modules, eg Python, create an extra reference in +// Provide overloads for Klass and derived classes as some language modules, eg Python, create an extra reference in // the marshalling if an upcast to a base class is required. +long use_count(const SwigBoost::shared_ptr<Klass3rdDerived>& sptr) { + return sptr.use_count(); +} +long use_count(const SwigBoost::shared_ptr<Klass2ndDerived>& sptr) { + return sptr.use_count(); +} long use_count(const SwigBoost::shared_ptr<KlassDerived>& sptr) { return sptr.use_count(); } Modified: trunk/Examples/test-suite/python/li_boost_shared_ptr_runme.py =================================================================== --- trunk/Examples/test-suite/python/li_boost_shared_ptr_runme.py 2008-12-03 21:36:53 UTC (rev 10963) +++ trunk/Examples/test-suite/python/li_boost_shared_ptr_runme.py 2008-12-06 17:10:53 UTC (rev 10964) @@ -304,6 +304,15 @@ self.verifyValue(li_boost_shared_ptr.overload_smartbyptr(k), "smartbyptr") self.verifyValue(li_boost_shared_ptr.overload_smartbyptrref(k), "smartbyptrref") + # 3rd derived class + k = li_boost_shared_ptr.Klass3rdDerived("me oh my") + val = k.getValue() + self.verifyValue("me oh my-3rdDerived", val) + self.verifyCount(1, k) + val = li_boost_shared_ptr.test3rdupcast(k) + self.verifyValue("me oh my-3rdDerived", val) + self.verifyCount(1, k) + # //////////////////////////////// Member variables //////////////////////////////////////// # smart pointer by value m = li_boost_shared_ptr.MemberVariables() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dr...@us...> - 2009-01-12 07:41:45
|
Revision: 11057 http://swig.svn.sourceforge.net/swig/?rev=11057&view=rev Author: drjoe Date: 2009-01-12 07:41:38 +0000 (Mon, 12 Jan 2009) Log Message: ----------- Add regression tests for R Modified Paths: -------------- trunk/Examples/test-suite/li_std_vector.i trunk/Examples/test-suite/template_typedef_funcptr.i trunk/Examples/test-suite/types_directive.i Added Paths: ----------- trunk/Examples/test-suite/r/arrays_dimensionless_runme.R Modified: trunk/Examples/test-suite/li_std_vector.i =================================================================== --- trunk/Examples/test-suite/li_std_vector.i 2009-01-11 21:37:54 UTC (rev 11056) +++ trunk/Examples/test-suite/li_std_vector.i 2009-01-12 07:41:38 UTC (rev 11057) @@ -85,8 +85,10 @@ %template(StructureConstPtrVector) std::vector<const Structure *>; #endif +#if !defined(SWIGR) %template(IntPtrVector) std::vector<int *>; %template(IntConstPtrVector) std::vector<const int *>; +#endif %template(StructVector) std::vector<Struct>; %template(StructPtrVector) std::vector<Struct *>; %template(StructConstPtrVector) std::vector<const Struct *>; Added: trunk/Examples/test-suite/r/arrays_dimensionless_runme.R =================================================================== --- trunk/Examples/test-suite/r/arrays_dimensionless_runme.R (rev 0) +++ trunk/Examples/test-suite/r/arrays_dimensionless_runme.R 2009-01-12 07:41:38 UTC (rev 11057) @@ -0,0 +1,20 @@ +source("unittest.R") +dyn.load(paste("arrays_dimensionless", .Platform$dynlib.ext, sep="")) +source("arrays_dimensionless.R") +cacheMetaData(1) + +unittest(arr_short(1:4, 3), 6) +unittest(arr_ushort(1:4, 3), 6) +unittest(arr_int(1:4, 3), 6) +unittest(arr_uint(1:4, 3), 6) +unittest(arr_long(1:4, 3), 6) +unittest(arr_ulong(1:4, 3), 6) +unittest(arr_ll(1:4, 3), 6) +unittest(arr_ull(1:4, 3), 6) +unittest(arr_float(as.numeric(1:4), 3), 6) +unittest(arr_double(as.numeric(1:4), 3), 6) + +q(save="no") + + + Modified: trunk/Examples/test-suite/template_typedef_funcptr.i =================================================================== --- trunk/Examples/test-suite/template_typedef_funcptr.i 2009-01-11 21:37:54 UTC (rev 11056) +++ trunk/Examples/test-suite/template_typedef_funcptr.i 2009-01-12 07:41:38 UTC (rev 11057) @@ -2,6 +2,10 @@ //Bug #1832613 +#if !defined(SWIGR) +// R Swig fails on this test. Because it tries to return a nil SEXP in +// an error + %include <std_string.i> %inline %{ @@ -46,3 +50,4 @@ // Plain pointers were also causing problems... %template(MCContractFactory2) ContractFactory<MCContract, std::string, ContractPtrPtr>; +#endif Modified: trunk/Examples/test-suite/types_directive.i =================================================================== --- trunk/Examples/test-suite/types_directive.i 2009-01-11 21:37:54 UTC (rev 11056) +++ trunk/Examples/test-suite/types_directive.i 2009-01-12 07:41:38 UTC (rev 11057) @@ -1,5 +1,13 @@ %module types_directive +#if defined(SWIGR) +// Avoid conflict with Date class in R +#define Date DateSwig +%inline %{ +#define Date DateSwig +%} +#endif + %ignore Time2::operator Date *; %inline %{ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-12 12:23:42
|
Revision: 11060 http://swig.svn.sourceforge.net/swig/?rev=11060&view=rev Author: wsfulton Date: 2009-01-12 11:42:27 +0000 (Mon, 12 Jan 2009) Log Message: ----------- Fix union.i module name and rename to union_parameter.i Modified Paths: -------------- trunk/Examples/test-suite/common.mk Added Paths: ----------- trunk/Examples/test-suite/tcl/union_parameter_runme.tcl trunk/Examples/test-suite/union_parameter.i Removed Paths: ------------- trunk/Examples/test-suite/tcl/union_runme.tcl trunk/Examples/test-suite/union.i Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-01-12 08:57:16 UTC (rev 11059) +++ trunk/Examples/test-suite/common.mk 2009-01-12 11:42:27 UTC (rev 11060) @@ -451,7 +451,7 @@ struct_rename \ typedef_struct \ typemap_subst \ - union \ + union_parameter \ unions Copied: trunk/Examples/test-suite/tcl/union_parameter_runme.tcl (from rev 11059, trunk/Examples/test-suite/tcl/union_runme.tcl) =================================================================== --- trunk/Examples/test-suite/tcl/union_parameter_runme.tcl (rev 0) +++ trunk/Examples/test-suite/tcl/union_parameter_runme.tcl 2009-01-12 11:42:27 UTC (rev 11060) @@ -0,0 +1,36 @@ +if [ catch { load ./union_parameter[info sharedlibextension] union_parameter} err_msg ] { + puts stderr "Could not load shared object:\n$err_msg" +} + +set event [SDL_Event] + +for { set i 0 } { $i < 2 } { incr i } { +# puts -nonewline "Loop $i: " + set evAvailable [SDL_PollEvent $event] + set evType [$event cget -type] +# puts "evType = $evType" + + if { $evType == 1 } { + set specEvent [$event cget -active] +# puts "specEvent = $specEvent" + set type [$specEvent cget -type] + if { $type != $evType } { + error "Type $type should be $evType" + } + set gain [$specEvent cget -gain] + set state [$specEvent cget -state] +# puts "gain=$gain state=$state" + } + if { $evType == 2 } { + set specEvent [$event cget -key] +# puts "specEvent = $specEvent" + set type [$specEvent cget -type] + if { $type != $evType } { + error "Type $type should be $evType" + } + set which [$specEvent cget -which] + set state [$specEvent cget -state] +# puts "which=$which state=$state" + } +# puts "" +} Deleted: trunk/Examples/test-suite/tcl/union_runme.tcl =================================================================== --- trunk/Examples/test-suite/tcl/union_runme.tcl 2009-01-12 08:57:16 UTC (rev 11059) +++ trunk/Examples/test-suite/tcl/union_runme.tcl 2009-01-12 11:42:27 UTC (rev 11060) @@ -1,36 +0,0 @@ -if [ catch { load ./union[info sharedlibextension] unions} err_msg ] { - puts stderr "Could not load shared object:\n$err_msg" -} - -set event [SDL_Event] - -for { set i 0 } { $i < 2 } { incr i } { -# puts -nonewline "Loop $i: " - set evAvailable [SDL_PollEvent $event] - set evType [$event cget -type] -# puts "evType = $evType" - - if { $evType == 1 } { - set specEvent [$event cget -active] -# puts "specEvent = $specEvent" - set type [$specEvent cget -type] - if { $type != $evType } { - error "Type $type should be $evType" - } - set gain [$specEvent cget -gain] - set state [$specEvent cget -state] -# puts "gain=$gain state=$state" - } - if { $evType == 2 } { - set specEvent [$event cget -key] -# puts "specEvent = $specEvent" - set type [$specEvent cget -type] - if { $type != $evType } { - error "Type $type should be $evType" - } - set which [$specEvent cget -which] - set state [$specEvent cget -state] -# puts "which=$which state=$state" - } -# puts "" -} Deleted: trunk/Examples/test-suite/union.i =================================================================== --- trunk/Examples/test-suite/union.i 2009-01-12 08:57:16 UTC (rev 11059) +++ trunk/Examples/test-suite/union.i 2009-01-12 11:42:27 UTC (rev 11060) @@ -1,41 +0,0 @@ -%module unions - -%inline %{ - -typedef unsigned char Uint8; - -typedef struct SDL_ActiveEvent { - Uint8 type; /* SDL_ACTIVEEVENT */ - Uint8 gain; /* Whether given states were gained or lost (1/0) */ - Uint8 state; /* A mask of the focus states */ -} SDL_ActiveEvent; - -/* Keyboard event structure */ -typedef struct SDL_KeyboardEvent { - Uint8 type; /* SDL_KEYDOWN or SDL_KEYUP */ - int which; /* The keyboard device index */ - int state; /* SDL_PRESSED or SDL_RELEASED */ -} SDL_KeyboardEvent; - -typedef union { - Uint8 type; - SDL_ActiveEvent active; - SDL_KeyboardEvent key; -} SDL_Event; - -int SDL_PollEvent (SDL_Event *ev) { - static int toggle = 0; - if (toggle == 0) { - ev->type = 1; - ev->active.gain = 20; - ev->active.state = 30; - } else { - ev->type = 2; - ev->key.which = 2000; - ev->key.state = 3000; - } - toggle = 1 - toggle; - return 1; -} - -%} Copied: trunk/Examples/test-suite/union_parameter.i (from rev 11059, trunk/Examples/test-suite/union.i) =================================================================== --- trunk/Examples/test-suite/union_parameter.i (rev 0) +++ trunk/Examples/test-suite/union_parameter.i 2009-01-12 11:42:27 UTC (rev 11060) @@ -0,0 +1,41 @@ +%module union_parameter + +%inline %{ + +typedef unsigned char Uint8; + +typedef struct SDL_ActiveEvent { + Uint8 type; /* SDL_ACTIVEEVENT */ + Uint8 gain; /* Whether given states were gained or lost (1/0) */ + Uint8 state; /* A mask of the focus states */ +} SDL_ActiveEvent; + +/* Keyboard event structure */ +typedef struct SDL_KeyboardEvent { + Uint8 type; /* SDL_KEYDOWN or SDL_KEYUP */ + int which; /* The keyboard device index */ + int state; /* SDL_PRESSED or SDL_RELEASED */ +} SDL_KeyboardEvent; + +typedef union { + Uint8 type; + SDL_ActiveEvent active; + SDL_KeyboardEvent key; +} SDL_Event; + +int SDL_PollEvent (SDL_Event *ev) { + static int toggle = 0; + if (toggle == 0) { + ev->type = 1; + ev->active.gain = 20; + ev->active.state = 30; + } else { + ev->type = 2; + ev->key.which = 2000; + ev->key.state = 3000; + } + toggle = 1 - toggle; + return 1; +} + +%} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2009-03-19 16:56:13
|
Revision: 11161 http://swig.svn.sourceforge.net/swig/?rev=11161&view=rev Author: bhy Date: 2009-03-19 16:56:01 +0000 (Thu, 19 Mar 2009) Log Message: ----------- Fix problem caused by thread not properly terminated in director_thread test. This was cause crash in Python 3 Modified Paths: -------------- trunk/Examples/test-suite/director_thread.i trunk/Examples/test-suite/python/director_thread_runme.py Modified: trunk/Examples/test-suite/director_thread.i =================================================================== --- trunk/Examples/test-suite/director_thread.i 2009-03-19 15:26:57 UTC (rev 11160) +++ trunk/Examples/test-suite/director_thread.i 2009-03-19 16:56:01 UTC (rev 11161) @@ -13,6 +13,7 @@ #include <process.h> #else #include <pthread.h> +#include <signal.h> #include <unistd.h> #endif @@ -27,6 +28,8 @@ void* working(void* t); pthread_t thread; #endif + static int thread_terminate = 0; + } %} @@ -51,6 +54,15 @@ virtual ~Foo() { } + void stop() { + thread_terminate = 1; + %#ifdef _WIN32 + /*TODO(bhy) what to do for win32? */ + %#else + pthread_join(thread, NULL); + %#endif + } + void run() { %#ifdef _WIN32 _beginthreadex(NULL,0,working,this,0,&thread_id); @@ -75,10 +87,15 @@ #endif { Foo* f = static_cast<Foo*>(t); - while (1) { + while ( ! thread_terminate ) { MilliSecondSleep(50); f->do_foo(); } +#ifdef _WIN32 + /* TODO(bhy) what's the corresponding of pthread_exit in win32? */ +#else + pthread_exit(0); +#endif return 0; } } Modified: trunk/Examples/test-suite/python/director_thread_runme.py =================================================================== --- trunk/Examples/test-suite/python/director_thread_runme.py 2009-03-19 15:26:57 UTC (rev 11160) +++ trunk/Examples/test-suite/python/director_thread_runme.py 2009-03-19 16:56:01 UTC (rev 11161) @@ -14,3 +14,5 @@ if d.val >= 0: print d.val raise RuntimeError + +d.stop() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-04-30 06:12:34
|
Revision: 11199 http://swig.svn.sourceforge.net/swig/?rev=11199&view=rev Author: wsfulton Date: 2009-04-30 06:12:32 +0000 (Thu, 30 Apr 2009) Log Message: ----------- add test for optimal attribute in out typemap Modified Paths: -------------- trunk/Examples/test-suite/common.mk Added Paths: ----------- trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs trunk/Examples/test-suite/java/typemap_out_optimal_runme.java trunk/Examples/test-suite/python/typemap_out_optimal_runme.py trunk/Examples/test-suite/typemap_out_optimal.i Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-04-30 00:13:14 UTC (rev 11198) +++ trunk/Examples/test-suite/common.mk 2009-04-30 06:12:32 UTC (rev 11199) @@ -371,6 +371,7 @@ typemap_namespace \ typemap_ns_using \ typemap_numinputs \ + typemap_out_optimal \ typemap_variables \ typemap_various \ typename \ Added: trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs (rev 0) +++ trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,13 @@ +using System; +using typemap_out_optimalNamespace; + +public class typemap_out_optimal_runme { + + public static XX x = null; + public static void Main() { + XX.debug = false; + x = XX.create(); + } + +} + Property changes on: trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs ___________________________________________________________________ Added: svn:executable + * Added: trunk/Examples/test-suite/java/typemap_out_optimal_runme.java =================================================================== --- trunk/Examples/test-suite/java/typemap_out_optimal_runme.java (rev 0) +++ trunk/Examples/test-suite/java/typemap_out_optimal_runme.java 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,21 @@ + +import typemap_out_optimal.*; + +public class typemap_out_optimal_runme { + + static { + try { + System.loadLibrary("typemap_out_optimal"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static XX x = null; + public static void main(String argv[]) { + XX.setDebug(false); + x = XX.create(); + } +} + Added: trunk/Examples/test-suite/python/typemap_out_optimal_runme.py =================================================================== --- trunk/Examples/test-suite/python/typemap_out_optimal_runme.py (rev 0) +++ trunk/Examples/test-suite/python/typemap_out_optimal_runme.py 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,5 @@ +from typemap_out_optimal import * + +cvar.XX_debug = False +x = XX.create() + Added: trunk/Examples/test-suite/typemap_out_optimal.i =================================================================== --- trunk/Examples/test-suite/typemap_out_optimal.i (rev 0) +++ trunk/Examples/test-suite/typemap_out_optimal.i 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,38 @@ +// Test the optimal attribute in the out typemap +%module typemap_out_optimal + +// Just the following languages tested +#if defined (SWIGCSHARP) +%typemap(out, optimal="1") SWIGTYPE %{ + $result = new $1_ltype((const $1_ltype &)$1); +%} +#elif defined (SWIGJAVA) +%typemap(out, optimal="1") SWIGTYPE %{ + *($&1_ltype*)&$result = new $1_ltype((const $1_ltype &)$1); +%} +#elif defined (SWIGUTL) +%typemap(out,noblock="1", optimal="1") SWIGTYPE { + %set_output(SWIG_NewPointerObj(%new_copy($1, $ltype), $&descriptor, SWIG_POINTER_OWN | %newpointer_flags)); +} +#endif + +%ignore XX::operator=; + +%inline %{ +#include <iostream> +using namespace std; + +struct XX { + XX() { cout << "XX()" << endl; } + XX(int i) { if (debug) cout << "XX(" << i << ")" << endl; } + XX(const XX &other) { cout << "XX(const XX &)" << endl; } + XX& operator =(const XX &other) { cout << "operator=(const XX &)" << endl; return *this; } + ~XX() { if (debug) cout << "~XX()" << endl; } + static XX create() { + return XX(123); + } + static bool debug; +}; +bool XX::debug = true; +%} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-05-01 06:26:44
|
Revision: 11201 http://swig.svn.sourceforge.net/swig/?rev=11201&view=rev Author: wsfulton Date: 2009-05-01 06:26:42 +0000 (Fri, 01 May 2009) Log Message: ----------- Add test for notderived attribute in csbase/javabase typemap Modified Paths: -------------- trunk/Examples/test-suite/inherit_target_language.i trunk/Examples/test-suite/java/inherit_target_language_runme.java Added Paths: ----------- trunk/Examples/test-suite/csharp/inherit_target_language_runme.cs Added: trunk/Examples/test-suite/csharp/inherit_target_language_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/inherit_target_language_runme.cs (rev 0) +++ trunk/Examples/test-suite/csharp/inherit_target_language_runme.cs 2009-05-01 06:26:42 UTC (rev 11201) @@ -0,0 +1,24 @@ +using System; +using inherit_target_languageNamespace; + +public class inherit_target_language_runme { + public static void Main() { + new Derived1().targetLanguageBaseMethod(); + new Derived2().targetLanguageBaseMethod(); + + new MultipleDerived1().targetLanguageBaseMethod(); + new MultipleDerived2().targetLanguageBaseMethod(); + new MultipleDerived3().f(); + new MultipleDerived4().g(); + + BaseX baseX = new BaseX(); + baseX.basex(); + baseX.targetLanguageBase2Method(); + + DerivedX derivedX = new DerivedX(); + derivedX.basex(); + derivedX.derivedx(); + derivedX.targetLanguageBase2Method(); + } +} + Modified: trunk/Examples/test-suite/inherit_target_language.i =================================================================== --- trunk/Examples/test-suite/inherit_target_language.i 2009-05-01 06:21:56 UTC (rev 11200) +++ trunk/Examples/test-suite/inherit_target_language.i 2009-05-01 06:26:42 UTC (rev 11201) @@ -12,10 +12,12 @@ using System; using System.Runtime.InteropServices; public class TargetLanguageBase { public virtual void targetLanguageBaseMethod() {} }; +public class TargetLanguageBase2 { public virtual void targetLanguageBase2Method() {} }; %} %pragma(java) moduleimports=%{ class TargetLanguageBase { public void targetLanguageBaseMethod() {} }; +class TargetLanguageBase2 { public void targetLanguageBase2Method() {} }; %} @@ -61,3 +63,11 @@ struct MultipleDerived4 : MBase4a, MBase4b {}; %} +// Replace a C++ base, but only classes that do not have a C++ base +%typemap(csbase, notderived="1") SWIGTYPE "TargetLanguageBase2" + +%inline %{ +struct BaseX { virtual ~BaseX() {}; void basex() {} }; +struct DerivedX : BaseX { void derivedx() {} }; +%} + Modified: trunk/Examples/test-suite/java/inherit_target_language_runme.java =================================================================== --- trunk/Examples/test-suite/java/inherit_target_language_runme.java 2009-05-01 06:21:56 UTC (rev 11200) +++ trunk/Examples/test-suite/java/inherit_target_language_runme.java 2009-05-01 06:26:42 UTC (rev 11201) @@ -21,6 +21,15 @@ new MultipleDerived2().targetLanguageBaseMethod(); new MultipleDerived3().f(); new MultipleDerived4().g(); + + BaseX baseX = new BaseX(); + baseX.basex(); + baseX.targetLanguageBase2Method(); + + DerivedX derivedX = new DerivedX(); + derivedX.basex(); + derivedX.derivedx(); + derivedX.targetLanguageBase2Method(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-05-12 17:24:08
|
Revision: 11210 http://swig.svn.sourceforge.net/swig/?rev=11210&view=rev Author: wsfulton Date: 2009-05-12 17:24:01 +0000 (Tue, 12 May 2009) Log Message: ----------- move std::multimap tests from li_std_map.i into new li_std_multimap.i Modified Paths: -------------- trunk/Examples/test-suite/li_std_map.i trunk/Examples/test-suite/python/Makefile.in trunk/Examples/test-suite/ruby/Makefile.in trunk/Examples/test-suite/ruby/li_std_map_runme.rb Added Paths: ----------- trunk/Examples/test-suite/ruby/li_std_multimap_runme.rb Modified: trunk/Examples/test-suite/li_std_map.i =================================================================== --- trunk/Examples/test-suite/li_std_map.i 2009-05-11 17:46:51 UTC (rev 11209) +++ trunk/Examples/test-suite/li_std_map.i 2009-05-12 17:24:01 UTC (rev 11210) @@ -16,11 +16,11 @@ */ %module("templatereduce") li_std_map + %feature("trackobjects"); %include std_pair.i %include std_map.i -%include std_multimap.i %inline %{ struct A{ @@ -39,7 +39,6 @@ %template(pairAA) pair<int, A>; %template(pairA) pair<int, A*>; %template(mapA) map<int, A*>; - %template(mmapA) multimap<int, A*>; %template(paircA1) pair<const int, A*>; %template(paircA2) pair<const int, const A*>; Modified: trunk/Examples/test-suite/python/Makefile.in =================================================================== --- trunk/Examples/test-suite/python/Makefile.in 2009-05-11 17:46:51 UTC (rev 11209) +++ trunk/Examples/test-suite/python/Makefile.in 2009-05-12 17:24:01 UTC (rev 11210) @@ -50,6 +50,7 @@ li_std_vectora \ li_std_vector_extra \ li_std_map \ + li_std_multimap \ li_std_pair_extra \ li_std_set \ li_std_stream \ Modified: trunk/Examples/test-suite/ruby/Makefile.in =================================================================== --- trunk/Examples/test-suite/ruby/Makefile.in 2009-05-11 17:46:51 UTC (rev 11209) +++ trunk/Examples/test-suite/ruby/Makefile.in 2009-05-12 17:24:01 UTC (rev 11210) @@ -15,6 +15,7 @@ li_factory \ li_std_functors \ li_std_map \ + li_std_multimap \ li_std_pair_lang_object \ li_std_queue \ li_std_set \ Modified: trunk/Examples/test-suite/ruby/li_std_map_runme.rb =================================================================== --- trunk/Examples/test-suite/ruby/li_std_map_runme.rb 2009-05-11 17:46:51 UTC (rev 11209) +++ trunk/Examples/test-suite/ruby/li_std_map_runme.rb 2009-05-12 17:24:01 UTC (rev 11210) @@ -1,6 +1,6 @@ #!/usr/bin/env ruby # -# Tests for std::map and std::multimap +# Tests for std::map # # # @@ -41,15 +41,6 @@ pm = Li_std_map::LanguageMap.new m.each_key { |k| pm[k] = m[k] } m.each_key { |k| swig_assert_equal("pm[#{k.inspect}]", "m[#{k.inspect}]", binding) } - -m = Li_std_map::MmapA.new -m[0] = a1 -m[0] = a2 -m[0].size == 2 -m.respond_to?(:each) == true -m.respond_to?(:each_key) == true -m.respond_to?(:each_value) == true -m.values_at(0)[0] == m[0] EOF mii = Li_std_map::Mapii.new Added: trunk/Examples/test-suite/ruby/li_std_multimap_runme.rb =================================================================== --- trunk/Examples/test-suite/ruby/li_std_multimap_runme.rb (rev 0) +++ trunk/Examples/test-suite/ruby/li_std_multimap_runme.rb 2009-05-12 17:24:01 UTC (rev 11210) @@ -0,0 +1,27 @@ +#!/usr/bin/env ruby +# +# Tests for std::multimap +# +# +# +# +# + +require 'swig_assert' +require 'li_std_multimap' + +swig_assert_each_line(<<'EOF', binding) + +a1 = Li_std_multimap::A.new(3) +a2 = Li_std_multimap::A.new(7) + +m = Li_std_multimap::MultimapA.new +m[0] = a1 +m[0] = a2 +m[0].size == 2 +m.respond_to?(:each) == true +m.respond_to?(:each_key) == true +m.respond_to?(:each_value) == true +m.values_at(0)[0] == m[0] +EOF + Property changes on: trunk/Examples/test-suite/ruby/li_std_multimap_runme.rb ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-05-22 06:53:27
|
Revision: 11232 http://swig.svn.sourceforge.net/swig/?rev=11232&view=rev Author: wsfulton Date: 2009-05-22 06:53:20 +0000 (Fri, 22 May 2009) Log Message: ----------- Improve C# std::map tests to do the bulk of the testing on a map where the key and value types are different Modified Paths: -------------- trunk/Examples/test-suite/csharp/li_std_map_runme.cs trunk/Examples/test-suite/li_std_map.i Modified: trunk/Examples/test-suite/csharp/li_std_map_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/li_std_map_runme.cs 2009-05-22 06:11:45 UTC (rev 11231) +++ trunk/Examples/test-suite/csharp/li_std_map_runme.cs 2009-05-22 06:53:20 UTC (rev 11232) @@ -24,55 +24,55 @@ public static void Main() { // Set up an int int map - IntIntMap iimap = new IntIntMap(); + StringIntMap simap = new StringIntMap(); for (int i = 0; i < collectionSize; i++) { int val = i * 18; - iimap.Add(i, val); + simap.Add(i.ToString(), val); } // Count property test - if (iimap.Count != collectionSize) + if (simap.Count != collectionSize) throw new Exception("Count test failed"); // IsReadOnly property test - if (iimap.IsReadOnly) + if (simap.IsReadOnly) throw new Exception("IsReadOnly test failed"); // Item indexing test - iimap[0] = 200; - if (iimap[0] != 200) + simap["0"] = 200; + if (simap["0"] != 200) throw new Exception("Item property test failed"); - iimap[0] = 0 * 18; + simap["0"] = 0 * 18; // ContainsKey() test for (int i = 0; i < collectionSize; i++) { - if (!iimap.ContainsKey(i)) + if (!simap.ContainsKey(i.ToString())) throw new Exception("ContainsKey test " + i + " failed"); } // ContainsKey() test for (int i = 0; i < collectionSize; i++) { - if (!iimap.Contains(new KeyValuePair<int, int>(i, i * 18))) + if (!simap.Contains(new KeyValuePair<string, int>(i.ToString(), i * 18))) throw new Exception("Contains test " + i + " failed"); } // TryGetValue() test int value; - bool rc = iimap.TryGetValue(3, out value); + bool rc = simap.TryGetValue("3", out value); if (rc != true || value != (3 * 18)) throw new Exception("TryGetValue test 1 failed"); - rc = iimap.TryGetValue(-1, out value); + rc = simap.TryGetValue("-1", out value); if (rc != false) throw new Exception("TryGetValue test 2 failed"); // Keys and Values test { - IList<int> keys = new List<int>(iimap.Keys); - IList<int> values = new List<int>(iimap.Values); + IList<string> keys = new List<string>(simap.Keys); + IList<int> values = new List<int>(simap.Values); if (keys.Count != collectionSize) throw new Exception("Keys count test failed"); @@ -81,7 +81,7 @@ for (int i = 0; i < keys.Count; i++) { - if (iimap[keys[i]] != values[i]) + if (simap[keys[i]] != values[i]) throw new Exception("Keys and values test failed for index " + i); } } @@ -89,30 +89,30 @@ // Add and Remove test for (int i = 100; i < 103; i++) { - iimap.Add(i, i * 18); - if (!iimap.ContainsKey(i) || iimap[i] != (i * 18)) + simap.Add(i.ToString(), i * 18); + if (!simap.ContainsKey(i.ToString()) || simap[i.ToString()] != (i * 18)) throw new Exception("Add test failed for index " + i); - iimap.Remove(i); - if (iimap.ContainsKey(i)) + simap.Remove(i.ToString()); + if (simap.ContainsKey(i.ToString())) throw new Exception("Remove test failed for index " + i); } for (int i = 200; i < 203; i++) { - iimap.Add(new KeyValuePair<int, int>(i, i * 18)); - if (!iimap.ContainsKey(i) || iimap[i] != (i * 18)) + simap.Add(new KeyValuePair<string, int>(i.ToString(), i * 18)); + if (!simap.ContainsKey(i.ToString()) || simap[i.ToString()] != (i * 18)) throw new Exception("Add explicit test failed for index " + i); - iimap.Remove(new KeyValuePair<int, int>(i, i * 18)); - if (iimap.ContainsKey(i)) + simap.Remove(new KeyValuePair<string, int>(i.ToString(), i * 18)); + if (simap.ContainsKey(i.ToString())) throw new Exception("Remove explicit test failed for index " + i); } // Duplicate key test try { - iimap.Add(3, 0); + simap.Add("3", 0); throw new Exception("Adding duplicate key test failed"); } catch (ArgumentException) @@ -121,29 +121,29 @@ // CopyTo() test { - KeyValuePair<int, int>[] outputarray = new KeyValuePair<int, int>[collectionSize]; - iimap.CopyTo(outputarray); - foreach (KeyValuePair<int, int> val in outputarray) + KeyValuePair<string, int>[] outputarray = new KeyValuePair<string, int>[collectionSize]; + simap.CopyTo(outputarray); + foreach (KeyValuePair<string, int> val in outputarray) { - if (iimap[val.Key] != val.Value) + if (simap[val.Key] != val.Value) throw new Exception("CopyTo (1) test failed, index:" + val.Key); } } { - KeyValuePair<int, int>[] outputarray = new KeyValuePair<int, int>[midCollection + collectionSize]; - iimap.CopyTo(outputarray, midCollection); + KeyValuePair<string, int>[] outputarray = new KeyValuePair<string, int>[midCollection + collectionSize]; + simap.CopyTo(outputarray, midCollection); for (int i = midCollection; i < midCollection + collectionSize; i++) { - KeyValuePair<int, int> val = outputarray[i]; - if (iimap[val.Key] != val.Value) + KeyValuePair<string, int> val = outputarray[i]; + if (simap[val.Key] != val.Value) throw new Exception("CopyTo (2) test failed, index:" + val.Key); } } { - KeyValuePair<int, int>[] outputarray = new KeyValuePair<int, int>[collectionSize - 1]; + KeyValuePair<string, int>[] outputarray = new KeyValuePair<string, int>[collectionSize - 1]; try { - iimap.CopyTo(outputarray); + simap.CopyTo(outputarray); throw new Exception("CopyTo (4) test failed"); } catch (ArgumentException) @@ -152,19 +152,23 @@ } // Clear test - iimap.Clear(); - if (iimap.Count != 0) + simap.Clear(); + if (simap.Count != 0) throw new Exception("Clear test failed"); // Test wrapped methods for (int i = 1; i <= 5; i++) { - iimap[i] = i; + simap[i.ToString()] = i; } - double avg = li_std_map.keyAverage(iimap); + double avg = li_std_map.valueAverage(simap); if (avg != 3.0) - throw new Exception("Wrapped method keyAverage test failed. Got " + avg); + throw new Exception("Wrapped method valueAverage test failed. Got " + avg); + string keyStringified = li_std_map.stringifyKeys(simap); + if (keyStringified != " 1 2 3 4 5") + throw new Exception("Wrapped method stringifyKeys test failed. Got " + keyStringified); + // Test a map with a new specialized type (Struct) { IntStructMap ismap = new IntStructMap(); Modified: trunk/Examples/test-suite/li_std_map.i =================================================================== --- trunk/Examples/test-suite/li_std_map.i 2009-05-22 06:11:45 UTC (rev 11231) +++ trunk/Examples/test-suite/li_std_map.i 2009-05-22 06:53:20 UTC (rev 11232) @@ -15,19 +15,27 @@ // Add an inline function to test %inline %{ -double keyAverage(std::map<int, int> m) { +double valueAverage(std::map<std::string, int> m) { if (m.size() == 0) { return 0.0; } double a = 0.0; - for (std::map<int, int>::iterator i = m.begin(); i != m.end(); i++) { - a += i->first; + for (std::map<std::string, int>::iterator i = m.begin(); i != m.end(); i++) { + a += i->second; } return a / m.size(); } +std::string stringifyKeys(std::map<std::string, int> m) { + std::string a; + for (std::map<std::string, int>::iterator i = m.begin(); i != m.end(); i++) { + a += " " + i->first; + } + return a; +} + struct Struct { double num; Struct() : num(0.0) {} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-06-16 20:26:43
|
Revision: 11280 http://swig.svn.sourceforge.net/swig/?rev=11280&view=rev Author: wsfulton Date: 2009-06-16 20:26:28 +0000 (Tue, 16 Jun 2009) Log Message: ----------- remove perl specific modifications to the enum_thorough test Modified Paths: -------------- trunk/Examples/test-suite/csharp/enum_thorough_runme.cs trunk/Examples/test-suite/csharp/enum_thorough_simple_runme.cs trunk/Examples/test-suite/csharp/enum_thorough_typesafe_runme.cs trunk/Examples/test-suite/enum_thorough.i trunk/Examples/test-suite/java/enum_thorough_proper_runme.java trunk/Examples/test-suite/java/enum_thorough_runme.java trunk/Examples/test-suite/java/enum_thorough_simple_runme.java trunk/Examples/test-suite/java/enum_thorough_typeunsafe_runme.java trunk/Examples/test-suite/perl5/enum_thorough_runme.pl Modified: trunk/Examples/test-suite/csharp/enum_thorough_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/enum_thorough_runme.cs 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/csharp/enum_thorough_runme.cs 2009-06-16 20:26:28 UTC (rev 11280) @@ -402,7 +402,7 @@ if ((int)enum_thorough.repeatTest(repeat.initial) != 1) throw new Exception("repeatTest 2 failed"); if ((int)enum_thorough.repeatTest(repeat.two) != 2) throw new Exception("repeatTest 3 failed"); if ((int)enum_thorough.repeatTest(repeat.three) != 3) throw new Exception("repeatTest 4 failed"); - if ((int)enum_thorough.repeatTest(repeat.last) != 3) throw new Exception("repeatTest 5 failed"); + if ((int)enum_thorough.repeatTest(repeat.llast) != 3) throw new Exception("repeatTest 5 failed"); if ((int)enum_thorough.repeatTest(repeat.end) != 3) throw new Exception("repeatTest 6 failed"); } } Modified: trunk/Examples/test-suite/csharp/enum_thorough_simple_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/enum_thorough_simple_runme.cs 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/csharp/enum_thorough_simple_runme.cs 2009-06-16 20:26:28 UTC (rev 11280) @@ -402,7 +402,7 @@ if (enum_thorough_simple.repeatTest(enum_thorough_simple.initial) != 1) throw new Exception("repeatTest 2 failed"); if (enum_thorough_simple.repeatTest(enum_thorough_simple.two) != 2) throw new Exception("repeatTest 3 failed"); if (enum_thorough_simple.repeatTest(enum_thorough_simple.three) != 3) throw new Exception("repeatTest 4 failed"); - if (enum_thorough_simple.repeatTest(enum_thorough_simple.last) != 3) throw new Exception("repeatTest 5 failed"); + if (enum_thorough_simple.repeatTest(enum_thorough_simple.llast) != 3) throw new Exception("repeatTest 5 failed"); if (enum_thorough_simple.repeatTest(enum_thorough_simple.end) != 3) throw new Exception("repeatTest 6 failed"); } } Modified: trunk/Examples/test-suite/csharp/enum_thorough_typesafe_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/enum_thorough_typesafe_runme.cs 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/csharp/enum_thorough_typesafe_runme.cs 2009-06-16 20:26:28 UTC (rev 11280) @@ -402,7 +402,7 @@ if (enum_thorough_typesafe.repeatTest(repeat.initial).swigValue != 1) throw new Exception("repeatTest 2 failed"); if (enum_thorough_typesafe.repeatTest(repeat.two).swigValue != 2) throw new Exception("repeatTest 3 failed"); if (enum_thorough_typesafe.repeatTest(repeat.three).swigValue != 3) throw new Exception("repeatTest 4 failed"); - if (enum_thorough_typesafe.repeatTest(repeat.last).swigValue != 3) throw new Exception("repeatTest 5 failed"); + if (enum_thorough_typesafe.repeatTest(repeat.llast).swigValue != 3) throw new Exception("repeatTest 5 failed"); if (enum_thorough_typesafe.repeatTest(repeat.end).swigValue != 3) throw new Exception("repeatTest 6 failed"); } } Modified: trunk/Examples/test-suite/enum_thorough.i =================================================================== --- trunk/Examples/test-suite/enum_thorough.i 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/enum_thorough.i 2009-06-16 20:26:28 UTC (rev 11280) @@ -534,9 +534,6 @@ IgnoreTest::IgnoreE ignoreETest(IgnoreTest::IgnoreE n) { return n; } %} -#warning TODO: remove SWIGPERL code - replace with portable symbols - -#if defined(SWIGPERL) %inline %{ namespace RepeatSpace { @@ -554,24 +551,3 @@ %} -#else -%inline %{ - -namespace RepeatSpace { -typedef enum -{ - one = 1, - initial = one, - two, - three, - last = three, - end = last -} repeat; -repeat repeatTest(repeat e) { return e; } -} - -%} - - -#endif - Modified: trunk/Examples/test-suite/java/enum_thorough_proper_runme.java =================================================================== --- trunk/Examples/test-suite/java/enum_thorough_proper_runme.java 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/java/enum_thorough_proper_runme.java 2009-06-16 20:26:28 UTC (rev 11280) @@ -413,7 +413,7 @@ if (enum_thorough_proper.repeatTest(repeat.initial).swigValue() != 1) throw new RuntimeException("repeatTest 2 failed"); if (enum_thorough_proper.repeatTest(repeat.two).swigValue() != 2) throw new RuntimeException("repeatTest 3 failed"); if (enum_thorough_proper.repeatTest(repeat.three).swigValue() != 3) throw new RuntimeException("repeatTest 4 failed"); - if (enum_thorough_proper.repeatTest(repeat.last).swigValue() != 3) throw new RuntimeException("repeatTest 5 failed"); + if (enum_thorough_proper.repeatTest(repeat.llast).swigValue() != 3) throw new RuntimeException("repeatTest 5 failed"); if (enum_thorough_proper.repeatTest(repeat.end).swigValue() != 3) throw new RuntimeException("repeatTest 6 failed"); } } Modified: trunk/Examples/test-suite/java/enum_thorough_runme.java =================================================================== --- trunk/Examples/test-suite/java/enum_thorough_runme.java 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/java/enum_thorough_runme.java 2009-06-16 20:26:28 UTC (rev 11280) @@ -413,7 +413,7 @@ if (enum_thorough.repeatTest(repeat.initial).swigValue() != 1) throw new RuntimeException("repeatTest 2 failed"); if (enum_thorough.repeatTest(repeat.two).swigValue() != 2) throw new RuntimeException("repeatTest 3 failed"); if (enum_thorough.repeatTest(repeat.three).swigValue() != 3) throw new RuntimeException("repeatTest 4 failed"); - if (enum_thorough.repeatTest(repeat.last).swigValue() != 3) throw new RuntimeException("repeatTest 5 failed"); + if (enum_thorough.repeatTest(repeat.llast).swigValue() != 3) throw new RuntimeException("repeatTest 5 failed"); if (enum_thorough.repeatTest(repeat.end).swigValue() != 3) throw new RuntimeException("repeatTest 6 failed"); } } Modified: trunk/Examples/test-suite/java/enum_thorough_simple_runme.java =================================================================== --- trunk/Examples/test-suite/java/enum_thorough_simple_runme.java 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/java/enum_thorough_simple_runme.java 2009-06-16 20:26:28 UTC (rev 11280) @@ -413,7 +413,7 @@ if (enum_thorough_simple.repeatTest(enum_thorough_simpleConstants.initial) != 1) throw new RuntimeException("repeatTest 2 failed"); if (enum_thorough_simple.repeatTest(enum_thorough_simpleConstants.two) != 2) throw new RuntimeException("repeatTest 3 failed"); if (enum_thorough_simple.repeatTest(enum_thorough_simpleConstants.three) != 3) throw new RuntimeException("repeatTest 4 failed"); - if (enum_thorough_simple.repeatTest(enum_thorough_simpleConstants.last) != 3) throw new RuntimeException("repeatTest 5 failed"); + if (enum_thorough_simple.repeatTest(enum_thorough_simpleConstants.llast) != 3) throw new RuntimeException("repeatTest 5 failed"); if (enum_thorough_simple.repeatTest(enum_thorough_simpleConstants.end) != 3) throw new RuntimeException("repeatTest 6 failed"); } } Modified: trunk/Examples/test-suite/java/enum_thorough_typeunsafe_runme.java =================================================================== --- trunk/Examples/test-suite/java/enum_thorough_typeunsafe_runme.java 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/java/enum_thorough_typeunsafe_runme.java 2009-06-16 20:26:28 UTC (rev 11280) @@ -413,7 +413,7 @@ if (enum_thorough_typeunsafe.repeatTest(repeat.initial) != 1) throw new RuntimeException("repeatTest 2 failed"); if (enum_thorough_typeunsafe.repeatTest(repeat.two) != 2) throw new RuntimeException("repeatTest 3 failed"); if (enum_thorough_typeunsafe.repeatTest(repeat.three) != 3) throw new RuntimeException("repeatTest 4 failed"); - if (enum_thorough_typeunsafe.repeatTest(repeat.last) != 3) throw new RuntimeException("repeatTest 5 failed"); + if (enum_thorough_typeunsafe.repeatTest(repeat.llast) != 3) throw new RuntimeException("repeatTest 5 failed"); if (enum_thorough_typeunsafe.repeatTest(repeat.end) != 3) throw new RuntimeException("repeatTest 6 failed"); } } Modified: trunk/Examples/test-suite/perl5/enum_thorough_runme.pl =================================================================== --- trunk/Examples/test-suite/perl5/enum_thorough_runme.pl 2009-06-16 19:29:08 UTC (rev 11279) +++ trunk/Examples/test-suite/perl5/enum_thorough_runme.pl 2009-06-16 20:26:28 UTC (rev 11280) @@ -1,7 +1,7 @@ # an adaptation of ../java/enum_thorough_runme.java use strict; use warnings; -use Test::More tests => 299; +use Test::More tests => 298; BEGIN { use_ok('enum_thorough') } require_ok('enum_thorough'); @@ -392,12 +392,7 @@ is(enum_thorough::repeatTest($enum_thorough::initial), 1, "repeatTest 2"); is(enum_thorough::repeatTest($enum_thorough::two), 2, "repeatTest 3"); is(enum_thorough::repeatTest($enum_thorough::three), 3, "repeatTest 4"); -{ local $TODO = "overzealous keyword guarding"; - ok(defined($enum_thorough::last), "found enum value"); -SKIP: { - skip "enum value not in expected package", 1 unless defined $enum_thorough::last; - is(enum_thorough::repeatTest($enum_thorough::last), 3, "repeatTest 5"); -}} + is(enum_thorough::repeatTest($enum_thorough::llast), 3, "repeatTest 5"); is(enum_thorough::repeatTest($enum_thorough::end), 3, "repeatTest 6"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-02 20:51:02
|
Revision: 11346 http://swig.svn.sourceforge.net/swig/?rev=11346&view=rev Author: wsfulton Date: 2009-07-02 20:32:51 +0000 (Thu, 02 Jul 2009) Log Message: ----------- rename byreference testcase to li_reference to follow normal test naming conventions of library files. Remove ability to add testcases into subdirectories (again) - not wanted Modified Paths: -------------- trunk/Examples/test-suite/common.mk trunk/Examples/test-suite/perl5/Makefile.in Added Paths: ----------- trunk/Examples/test-suite/li_reference.i trunk/Examples/test-suite/perl5/li_reference_runme.pl Removed Paths: ------------- trunk/Examples/test-suite/perl5/byreference.i trunk/Examples/test-suite/perl5/byreference_runme.pl Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-07-02 18:28:50 UTC (rev 11345) +++ trunk/Examples/test-suite/common.mk 2009-07-02 20:32:51 UTC (rev 11346) @@ -64,7 +64,7 @@ LIBS = -L. LIBPREFIX = lib ACTION = check -INTERFACEDIR = $(if $(wildcard $*.i), ./, ../) +INTERFACEDIR = ../ # # Please keep test cases in alphabetical order. Copied: trunk/Examples/test-suite/li_reference.i (from rev 11345, trunk/Examples/test-suite/perl5/byreference.i) =================================================================== --- trunk/Examples/test-suite/li_reference.i (rev 0) +++ trunk/Examples/test-suite/li_reference.i 2009-07-02 20:32:51 UTC (rev 11346) @@ -0,0 +1,52 @@ +%module li_reference + +%include "reference.i" + +%inline %{ + double FrVal; + double ToVal; + void PDouble(double *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RDouble(double &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PFloat(float *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RFloat(float &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PInt(int *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RInt(int &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PShort(short *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RShort(short &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PLong(long *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RLong(long &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PUInt(unsigned int *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RUInt(unsigned int &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PUShort(unsigned short *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RUShort(unsigned short &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PULong(unsigned long *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RULong(unsigned long &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PUChar(unsigned char *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RUChar(unsigned char &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PChar(signed char *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RChar(signed char &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } + void PBool(bool *REFERENCE, int t = 0) + { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } + void RBool(bool &REFERENCE, int t = 0) + { ToVal = REFERENCE; REFERENCE = FrVal + t; } +%} Property changes on: trunk/Examples/test-suite/li_reference.i ___________________________________________________________________ Added: svn:mergeinfo + /branches/swig-2.0/Examples/test-suite/perl5/byreference.i:11085-11086,11088-11089 Modified: trunk/Examples/test-suite/perl5/Makefile.in =================================================================== --- trunk/Examples/test-suite/perl5/Makefile.in 2009-07-02 18:28:50 UTC (rev 11345) +++ trunk/Examples/test-suite/perl5/Makefile.in 2009-07-02 20:32:51 UTC (rev 11346) @@ -15,7 +15,7 @@ li_cdata \ li_cstring \ li_cdata_carrays \ - byreference \ + li_reference \ C_TEST_CASES += \ li_cdata \ Deleted: trunk/Examples/test-suite/perl5/byreference.i =================================================================== --- trunk/Examples/test-suite/perl5/byreference.i 2009-07-02 18:28:50 UTC (rev 11345) +++ trunk/Examples/test-suite/perl5/byreference.i 2009-07-02 20:32:51 UTC (rev 11346) @@ -1,52 +0,0 @@ -%module byreference - -%include "reference.i" - -%inline %{ - double FrVal; - double ToVal; - void PDouble(double *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RDouble(double &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PFloat(float *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RFloat(float &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PInt(int *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RInt(int &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PShort(short *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RShort(short &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PLong(long *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RLong(long &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PUInt(unsigned int *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RUInt(unsigned int &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PUShort(unsigned short *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RUShort(unsigned short &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PULong(unsigned long *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RULong(unsigned long &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PUChar(unsigned char *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RUChar(unsigned char &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PChar(signed char *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RChar(signed char &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } - void PBool(bool *REFERENCE, int t = 0) - { ToVal = *REFERENCE; *REFERENCE = FrVal + t; } - void RBool(bool &REFERENCE, int t = 0) - { ToVal = REFERENCE; REFERENCE = FrVal + t; } -%} Deleted: trunk/Examples/test-suite/perl5/byreference_runme.pl =================================================================== --- trunk/Examples/test-suite/perl5/byreference_runme.pl 2009-07-02 18:28:50 UTC (rev 11345) +++ trunk/Examples/test-suite/perl5/byreference_runme.pl 2009-07-02 20:32:51 UTC (rev 11346) @@ -1,36 +0,0 @@ -use strict; -use warnings; -use Test::More tests => 68; -BEGIN { use_ok('byreference') } -require_ok('byreference'); - -sub chk { my($type, $call, $v1, $v2) = @_; - $byreference::FrVal = $v1; - my $v = $v2; - eval { $call->(\$v) }; - is($@, '', "$type check"); - is($byreference::ToVal, $v2, "$type out"); - is($v, $v1, "$type in"); -} -chk("double*", \&byreference::PDouble, 12.2, 18.6); -chk("double&", \&byreference::RDouble, 32.5, 64.8); -chk("float*", \&byreference::PFloat, 64.5, 96.0); -chk("float&", \&byreference::RFloat, 98.5, 6.25); -chk("int*", \&byreference::PInt, 1887, 3356); -chk("int&", \&byreference::RInt, 2622, 9867); -chk("short*", \&byreference::PShort, 4752, 3254); -chk("short&", \&byreference::RShort, 1898, 5757); -chk("long*", \&byreference::PLong, 6687, 7132); -chk("long&", \&byreference::RLong, 8346, 4398); -chk("uint*", \&byreference::PUInt, 6853, 5529); -chk("uint&", \&byreference::RUInt, 5483, 7135); -chk("ushort*", \&byreference::PUShort, 9960, 9930); -chk("ushort&", \&byreference::RUShort, 1193, 4178); -chk("ulong*", \&byreference::PULong, 7960, 4788); -chk("ulong&", \&byreference::RULong, 8829, 1603); -chk("uchar*", \&byreference::PUChar, 110, 239); -chk("uchar&", \&byreference::RUChar, 15, 97); -chk("char*", \&byreference::PChar, -7, 118); -chk("char&", \&byreference::RChar, -3, -107); -chk("bool*", \&byreference::PBool, 0, 1); -chk("bool&", \&byreference::RBool, 1, 0); Copied: trunk/Examples/test-suite/perl5/li_reference_runme.pl (from rev 11345, trunk/Examples/test-suite/perl5/byreference_runme.pl) =================================================================== --- trunk/Examples/test-suite/perl5/li_reference_runme.pl (rev 0) +++ trunk/Examples/test-suite/perl5/li_reference_runme.pl 2009-07-02 20:32:51 UTC (rev 11346) @@ -0,0 +1,36 @@ +use strict; +use warnings; +use Test::More tests => 68; +BEGIN { use_ok('li_reference') } +require_ok('li_reference'); + +sub chk { my($type, $call, $v1, $v2) = @_; + $li_reference::FrVal = $v1; + my $v = $v2; + eval { $call->(\$v) }; + is($@, '', "$type check"); + is($li_reference::ToVal, $v2, "$type out"); + is($v, $v1, "$type in"); +} +chk("double*", \&li_reference::PDouble, 12.2, 18.6); +chk("double&", \&li_reference::RDouble, 32.5, 64.8); +chk("float*", \&li_reference::PFloat, 64.5, 96.0); +chk("float&", \&li_reference::RFloat, 98.5, 6.25); +chk("int*", \&li_reference::PInt, 1887, 3356); +chk("int&", \&li_reference::RInt, 2622, 9867); +chk("short*", \&li_reference::PShort, 4752, 3254); +chk("short&", \&li_reference::RShort, 1898, 5757); +chk("long*", \&li_reference::PLong, 6687, 7132); +chk("long&", \&li_reference::RLong, 8346, 4398); +chk("uint*", \&li_reference::PUInt, 6853, 5529); +chk("uint&", \&li_reference::RUInt, 5483, 7135); +chk("ushort*", \&li_reference::PUShort, 9960, 9930); +chk("ushort&", \&li_reference::RUShort, 1193, 4178); +chk("ulong*", \&li_reference::PULong, 7960, 4788); +chk("ulong&", \&li_reference::RULong, 8829, 1603); +chk("uchar*", \&li_reference::PUChar, 110, 239); +chk("uchar&", \&li_reference::RUChar, 15, 97); +chk("char*", \&li_reference::PChar, -7, 118); +chk("char&", \&li_reference::RChar, -3, -107); +chk("bool*", \&li_reference::PBool, 0, 1); +chk("bool&", \&li_reference::RBool, 1, 0); Property changes on: trunk/Examples/test-suite/perl5/li_reference_runme.pl ___________________________________________________________________ Added: svn:mergeinfo + /branches/swig-2.0/Examples/test-suite/perl5/byreference_runme.pl:11085-11086,11088-11089 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-02 21:35:45
|
Revision: 11347 http://swig.svn.sourceforge.net/swig/?rev=11347&view=rev Author: wsfulton Date: 2009-07-02 21:35:41 +0000 (Thu, 02 Jul 2009) Log Message: ----------- Add a test for the -Wallkw commandline option. Also refine general framework for using custom commandline options for individual test cases Modified Paths: -------------- trunk/Examples/test-suite/common.mk trunk/Examples/test-suite/csharp/Makefile.in Added Paths: ----------- trunk/Examples/test-suite/java/custom_wallkw_runme.java Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-07-02 20:32:51 UTC (rev 11346) +++ trunk/Examples/test-suite/common.mk 2009-07-02 21:35:41 UTC (rev 11347) @@ -60,6 +60,7 @@ TARGETPREFIX = TARGETSUFFIX = SWIGOPT = -outcurrentdir -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE) +SWIGOPTCUSTOM = INCLUDES = -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE) LIBS = -L. LIBPREFIX = lib @@ -468,6 +469,16 @@ template_typedef_import \ multi_import +# Non standard testcases, usually using custom commandline options +# Testcase names are prefixed with custom_ and can be run individually using make testcase.customtest +CUSTOM_TEST_CASES = \ + custom_allkw \ + +# individual custom tests - any kind of customisation allowed here +# Note: $(basename $@) strips everything after and including the . in the target name +custom_wallkw.customtest: + $(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-Wallkw" + NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \ $(C_TEST_CASES:=.ctest) \ $(MULTI_CPP_TEST_CASES:=.multicpptest) \ @@ -500,14 +511,14 @@ swig_and_compile_cpp = \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ $(LANGUAGE)$(VARIANT)_cpp swig_and_compile_c = \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CSRCS="$(CSRCS)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ $(LANGUAGE)$(VARIANT) @@ -515,7 +526,7 @@ for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" LIBS='$(LIBS)' \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ TARGET="$(TARGETPREFIX)$${f}$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$$f.i" \ $(LANGUAGE)$(VARIANT)_cpp; \ done @@ -527,7 +538,7 @@ $(LANGUAGE)$(VARIANT)_externalhdr; \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS) $*_external.cxx" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ $(LANGUAGE)$(VARIANT)_cpp Modified: trunk/Examples/test-suite/csharp/Makefile.in =================================================================== --- trunk/Examples/test-suite/csharp/Makefile.in 2009-07-02 20:32:51 UTC (rev 11346) +++ trunk/Examples/test-suite/csharp/Makefile.in 2009-07-02 21:35:41 UTC (rev 11347) @@ -28,7 +28,7 @@ include $(srcdir)/../common.mk # Overridden variables here -SWIGOPT += -namespace $*Namespace $(SWIGOPTSPECIAL) +SWIGOPT += -namespace $*Namespace INTERFACEDIR = ../../ CSHARPFLAGSSPECIAL = @@ -51,9 +51,9 @@ # Rules for custom tests intermediary_classname.customtest: - $(MAKE) intermediary_classname.cpptest SWIGOPTSPECIAL="-dllimport intermediary_classname" + $(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-dllimport intermediary_classname" csharp_lib_arrays.customtest: - $(MAKE) csharp_lib_arrays.cpptest CSHARPFLAGSSPECIAL="-unsafe" + $(MAKE) $(basename $@).cpptest CSHARPFLAGSSPECIAL="-unsafe" # Makes a directory for the testcase if it does not exist setup = \ Added: trunk/Examples/test-suite/java/custom_wallkw_runme.java =================================================================== --- trunk/Examples/test-suite/java/custom_wallkw_runme.java (rev 0) +++ trunk/Examples/test-suite/java/custom_wallkw_runme.java 2009-07-02 21:35:41 UTC (rev 11347) @@ -0,0 +1,25 @@ + +import custom_wallkw.*; + +public class custom_wallkw_runme { + + static { + try { + System.loadLibrary("custom_wallkw"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) { + if (!custom_wallkw.c_clone().equals("clone")) + throw new RuntimeException("clone_c keyword fail"); + if (!custom_wallkw._delegate().equals("delegate")) + throw new RuntimeException("delegate keyword fail"); + if (!custom_wallkw._pass().equals("pass")) + throw new RuntimeException("pass keyword fail"); + if (!custom_wallkw.C_alias().equals("alias")) + throw new RuntimeException("alias keyword fail"); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-02 21:59:31
|
Revision: 11348 http://swig.svn.sourceforge.net/swig/?rev=11348&view=rev Author: wsfulton Date: 2009-07-02 21:59:29 +0000 (Thu, 02 Jul 2009) Log Message: ----------- rename custom testcases with a custom_ prefix (intermediary_classname.i and lib_arrays.i). Also some typo fixes for custom testcases Modified Paths: -------------- trunk/Examples/test-suite/common.mk trunk/Examples/test-suite/csharp/Makefile.in trunk/Examples/test-suite/java/Makefile.in Added Paths: ----------- trunk/Examples/test-suite/csharp/custom_csharp_lib_arrays_runme.cs trunk/Examples/test-suite/csharp/custom_intermediary_classname_runme.cs trunk/Examples/test-suite/custom_csharp_lib_arrays.i trunk/Examples/test-suite/custom_intermediary_classname.i trunk/Examples/test-suite/java/custom_intermediary_classname_runme.java Removed Paths: ------------- trunk/Examples/test-suite/csharp/csharp_lib_arrays_runme.cs trunk/Examples/test-suite/csharp/intermediary_classname_runme.cs trunk/Examples/test-suite/csharp_lib_arrays.i trunk/Examples/test-suite/intermediary_classname.i trunk/Examples/test-suite/java/intermediary_classname_runme.java Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/common.mk 2009-07-02 21:59:29 UTC (rev 11348) @@ -9,7 +9,8 @@ # then builds the object code for use by the language. # To complete a test in a language follow these guidelines: # 1) Add testcases to CPP_TEST_CASES (c++) or C_TEST_CASES (c) or -# MULTI_CPP_TEST_CASES (multi-module c++ tests) +# MULTI_CPP_TEST_CASES (multi-module c++ tests) or +# CUSTOM_TEST_CASES (mainly for customised SWIG comandline options) # 2) If not already done, create a makefile which: # a) Defines LANGUAGE matching a language rule in Examples/Makefile, # for example LANGUAGE = java @@ -471,8 +472,8 @@ # Non standard testcases, usually using custom commandline options # Testcase names are prefixed with custom_ and can be run individually using make testcase.customtest -CUSTOM_TEST_CASES = \ - custom_allkw \ +CUSTOM_TEST_CASES += \ + custom_wallkw \ # individual custom tests - any kind of customisation allowed here # Note: $(basename $@) strips everything after and including the . in the target name Modified: trunk/Examples/test-suite/csharp/Makefile.in =================================================================== --- trunk/Examples/test-suite/csharp/Makefile.in 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/csharp/Makefile.in 2009-07-02 21:59:29 UTC (rev 11348) @@ -22,8 +22,8 @@ exception_partial_info CUSTOM_TEST_CASES = \ - csharp_lib_arrays \ - intermediary_classname + custom_csharp_lib_arrays \ + custom_intermediary_classname include $(srcdir)/../common.mk @@ -50,9 +50,9 @@ +$(run_testcase) # Rules for custom tests -intermediary_classname.customtest: - $(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-dllimport intermediary_classname" -csharp_lib_arrays.customtest: +custom_intermediary_classname.customtest: + $(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-dllimport custom_intermediary_classname" +custom_csharp_lib_arrays.customtest: $(MAKE) $(basename $@).cpptest CSHARPFLAGSSPECIAL="-unsafe" # Makes a directory for the testcase if it does not exist Deleted: trunk/Examples/test-suite/csharp/csharp_lib_arrays_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/csharp_lib_arrays_runme.cs 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/csharp/csharp_lib_arrays_runme.cs 2009-07-02 21:59:29 UTC (rev 11348) @@ -1,70 +0,0 @@ -using System; -using csharp_lib_arraysNamespace; - -public class runme -{ - static void Main() - { - { - int[] source = { 1, 2, 3, 4, 5 }; - int[] target = new int[ source.Length ]; - - csharp_lib_arrays.myArrayCopy( source, target, target.Length ); - CompareArrays(source, target); - } - - { - int[] source = { 1, 2, 3, 4, 5 }; - int[] target = new int[ source.Length ]; - - csharp_lib_arrays.myArrayCopyUsingFixedArrays( source, target, target.Length ); - CompareArrays(source, target); - } - - { - int[] source = { 1, 2, 3, 4, 5 }; - int[] target = new int[] { 6, 7, 8, 9, 10 }; - - csharp_lib_arrays.myArraySwap( source, target, target.Length ); - - for (int i=0; i<target.Length; ++i) - target[i] += 5; - CompareArrays(source, target); - } - - { - int[] source = { 1, 2, 3, 4, 5 }; - int[] target = new int[] { 6, 7, 8, 9, 10 }; - - csharp_lib_arrays.myArraySwapUsingFixedArrays( source, target, target.Length ); - - for (int i=0; i<target.Length; ++i) - target[i] += 5; - CompareArrays(source, target); - } - } - - static void CompareArrays( int[] a, int[] b ) - { - if (a.Length != b.Length) - throw new Exception("size mismatch"); - - for(int i=0; i<a.Length; ++i) { - if (a[i] != b[i]) { - Console.Error.WriteLine("a:"); - PrintArray(a); - Console.Error.WriteLine("b:"); - PrintArray(b); - throw new Exception("element mismatch"); - } - } - } - - static void PrintArray( int[] a ) - { - foreach ( int i in a ) - Console.Error.Write( "{0} ", i ); - Console.Error.WriteLine(); - } -} - Copied: trunk/Examples/test-suite/csharp/custom_csharp_lib_arrays_runme.cs (from rev 11346, trunk/Examples/test-suite/csharp/csharp_lib_arrays_runme.cs) =================================================================== --- trunk/Examples/test-suite/csharp/custom_csharp_lib_arrays_runme.cs (rev 0) +++ trunk/Examples/test-suite/csharp/custom_csharp_lib_arrays_runme.cs 2009-07-02 21:59:29 UTC (rev 11348) @@ -0,0 +1,70 @@ +using System; +using custom_csharp_lib_arraysNamespace; + +public class runme +{ + static void Main() + { + { + int[] source = { 1, 2, 3, 4, 5 }; + int[] target = new int[ source.Length ]; + + custom_csharp_lib_arrays.myArrayCopy( source, target, target.Length ); + CompareArrays(source, target); + } + + { + int[] source = { 1, 2, 3, 4, 5 }; + int[] target = new int[ source.Length ]; + + custom_csharp_lib_arrays.myArrayCopyUsingFixedArrays( source, target, target.Length ); + CompareArrays(source, target); + } + + { + int[] source = { 1, 2, 3, 4, 5 }; + int[] target = new int[] { 6, 7, 8, 9, 10 }; + + custom_csharp_lib_arrays.myArraySwap( source, target, target.Length ); + + for (int i=0; i<target.Length; ++i) + target[i] += 5; + CompareArrays(source, target); + } + + { + int[] source = { 1, 2, 3, 4, 5 }; + int[] target = new int[] { 6, 7, 8, 9, 10 }; + + custom_csharp_lib_arrays.myArraySwapUsingFixedArrays( source, target, target.Length ); + + for (int i=0; i<target.Length; ++i) + target[i] += 5; + CompareArrays(source, target); + } + } + + static void CompareArrays( int[] a, int[] b ) + { + if (a.Length != b.Length) + throw new Exception("size mismatch"); + + for(int i=0; i<a.Length; ++i) { + if (a[i] != b[i]) { + Console.Error.WriteLine("a:"); + PrintArray(a); + Console.Error.WriteLine("b:"); + PrintArray(b); + throw new Exception("element mismatch"); + } + } + } + + static void PrintArray( int[] a ) + { + foreach ( int i in a ) + Console.Error.Write( "{0} ", i ); + Console.Error.WriteLine(); + } +} + Copied: trunk/Examples/test-suite/csharp/custom_intermediary_classname_runme.cs (from rev 11346, trunk/Examples/test-suite/csharp/intermediary_classname_runme.cs) =================================================================== --- trunk/Examples/test-suite/csharp/custom_intermediary_classname_runme.cs (rev 0) +++ trunk/Examples/test-suite/csharp/custom_intermediary_classname_runme.cs 2009-07-02 21:59:29 UTC (rev 11348) @@ -0,0 +1,21 @@ + +/*********************************************************************************************** + NOTE: This is a custom testcase and should be run using make custom_intermediary_classname.customtest + ***********************************************************************************************/ + +using System; +using custom_intermediary_classnameNamespace; + +public class runme +{ + static void Main() + { + // test the renamed module class is correctly named + double d = custom_intermediary_classnameModule.maxdouble(10.0, 20.0); + if (d!=20.0) throw new Exception("Test failed"); + + // test the renamed intermediary class is correctly named + IntPtr ptr = custom_intermediary_classname.new_vecdouble(10); + custom_intermediary_classname.delete_vecdouble(new System.Runtime.InteropServices.HandleRef(null,ptr)); + } +} Deleted: trunk/Examples/test-suite/csharp/intermediary_classname_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/intermediary_classname_runme.cs 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/csharp/intermediary_classname_runme.cs 2009-07-02 21:59:29 UTC (rev 11348) @@ -1,21 +0,0 @@ - -/*********************************************************************************************** - NOTE: This is a custom testcase and should be run using make intermediary_classname.customtest - ***********************************************************************************************/ - -using System; -using intermediary_classnameNamespace; - -public class runme -{ - static void Main() - { - // test the renamed module class is correctly named - double d = intermediary_classnameModule.maxdouble(10.0, 20.0); - if (d!=20.0) throw new Exception("Test failed"); - - // test the renamed intermediary class is correctly named - IntPtr ptr = intermediary_classname.new_vecdouble(10); - intermediary_classname.delete_vecdouble(new System.Runtime.InteropServices.HandleRef(null,ptr)); - } -} Deleted: trunk/Examples/test-suite/csharp_lib_arrays.i =================================================================== --- trunk/Examples/test-suite/csharp_lib_arrays.i 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/csharp_lib_arrays.i 2009-07-02 21:59:29 UTC (rev 11348) @@ -1,61 +0,0 @@ -%module csharp_lib_arrays - -%include "arrays_csharp.i" - -%apply int INPUT[] { int* sourceArray } -%apply int OUTPUT[] { int* targetArray } - -%apply int INOUT[] { int* array1 } -%apply int INOUT[] { int* array2 } - -%inline %{ -/* copy the contents of the first array to the second */ -void myArrayCopy( int* sourceArray, int* targetArray, int nitems ) { - int i; - for ( i = 0; i < nitems; i++ ) { - targetArray[ i ] = sourceArray[ i ]; - } -} - -/* swap the contents of the two arrays */ -void myArraySwap( int* array1, int* array2, int nitems ) { - int i, temp; - for ( i = 0; i < nitems; i++ ) { - temp = array1[ i ]; - array1[ i ] = array2[ i ]; - array2[ i ] = temp; - } -} -%} - - -%clear int* sourceArray; -%clear int* targetArray; - -%clear int* array1; -%clear int* array2; - - -// Below replicates the above array handling but this time using the pinned (fixed) array typemaps -%csmethodmodifiers myArrayCopyUsingFixedArrays "public unsafe"; -%csmethodmodifiers myArraySwapUsingFixedArrays "public unsafe"; - -%apply int FIXED[] { int* sourceArray } -%apply int FIXED[] { int* targetArray } - -%inline %{ -void myArrayCopyUsingFixedArrays( int *sourceArray, int* targetArray, int nitems ) { - myArrayCopy(sourceArray, targetArray, nitems); -} -%} - -%apply int FIXED[] { int* array1 } -%apply int FIXED[] { int* array2 } - -%inline %{ -void myArraySwapUsingFixedArrays( int* array1, int* array2, int nitems ) { - myArraySwap(array1, array2, nitems); -} -%} - - Copied: trunk/Examples/test-suite/custom_csharp_lib_arrays.i (from rev 11346, trunk/Examples/test-suite/csharp_lib_arrays.i) =================================================================== --- trunk/Examples/test-suite/custom_csharp_lib_arrays.i (rev 0) +++ trunk/Examples/test-suite/custom_csharp_lib_arrays.i 2009-07-02 21:59:29 UTC (rev 11348) @@ -0,0 +1,61 @@ +%module custom_csharp_lib_arrays + +%include "arrays_csharp.i" + +%apply int INPUT[] { int* sourceArray } +%apply int OUTPUT[] { int* targetArray } + +%apply int INOUT[] { int* array1 } +%apply int INOUT[] { int* array2 } + +%inline %{ +/* copy the contents of the first array to the second */ +void myArrayCopy( int* sourceArray, int* targetArray, int nitems ) { + int i; + for ( i = 0; i < nitems; i++ ) { + targetArray[ i ] = sourceArray[ i ]; + } +} + +/* swap the contents of the two arrays */ +void myArraySwap( int* array1, int* array2, int nitems ) { + int i, temp; + for ( i = 0; i < nitems; i++ ) { + temp = array1[ i ]; + array1[ i ] = array2[ i ]; + array2[ i ] = temp; + } +} +%} + + +%clear int* sourceArray; +%clear int* targetArray; + +%clear int* array1; +%clear int* array2; + + +// Below replicates the above array handling but this time using the pinned (fixed) array typemaps +%csmethodmodifiers myArrayCopyUsingFixedArrays "public unsafe"; +%csmethodmodifiers myArraySwapUsingFixedArrays "public unsafe"; + +%apply int FIXED[] { int* sourceArray } +%apply int FIXED[] { int* targetArray } + +%inline %{ +void myArrayCopyUsingFixedArrays( int *sourceArray, int* targetArray, int nitems ) { + myArrayCopy(sourceArray, targetArray, nitems); +} +%} + +%apply int FIXED[] { int* array1 } +%apply int FIXED[] { int* array2 } + +%inline %{ +void myArraySwapUsingFixedArrays( int* array1, int* array2, int nitems ) { + myArraySwap(array1, array2, nitems); +} +%} + + Copied: trunk/Examples/test-suite/custom_intermediary_classname.i (from rev 11346, trunk/Examples/test-suite/intermediary_classname.i) =================================================================== --- trunk/Examples/test-suite/custom_intermediary_classname.i (rev 0) +++ trunk/Examples/test-suite/custom_intermediary_classname.i 2009-07-02 21:59:29 UTC (rev 11348) @@ -0,0 +1,82 @@ + +// This test is to check the intermediary class name can be changed (C# and Java only use intermediary classes at time of writing) +%module(directors="1", jniclassname="custom_intermediary_classname", imclassname="custom_intermediary_classname") "custom_intermediary_classname" + +%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR); + +// change the access to the intermediary class for testing purposes +%pragma(java) jniclassclassmodifiers="public class"; +%pragma(csharp) imclassclassmodifiers="public class"; + +%feature("director") Base; +%feature("director") Derived; + +// Test the throws attribute in these typemaps +%typemap(javadirectorout, throws="InstantiationException/*javadirectorout Base&*/") Base& + "$javaclassname.getCPtr($javacall)/* XYZ& typemap directorout*/" +%typemap(javadirectorin, throws="ClassNotFoundException/*javadirectorin Base&*/") Base& + "new $javaclassname($jniinput, false)/*javadirectorin*/" +%typemap(out, throws="IllegalAccessException/*out Base&*/") Base& { + // XYZ& typemap out + $result = 0; // remove unused variable warning +} +%inline %{ + +template<class T> T maximum(const T a, const T b) { return a>b ? a : b; } + +template<class T> class vector { + T *v; + int sz; + public: + vector(int _sz) { + v = new T[_sz]; + sz = _sz; + } + T &get(int index) { + return v[index]; + } + void set(int index, T &val) { + v[index] = val; + } + void testconst(const T x) { } +}; + +#if defined(_MSC_VER) + #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) +#endif + +class Base { +public: + Base() : mVectInt(0) {} + Base(Base *b) : mVectInt(0) {} + virtual ~Base() {} + virtual Base& m1(Base &b) { return b; } + virtual Base& m1out() { static Base b; return b; } + virtual Base* m2(Base *b) { return b; } +// virtual Base m3(Base b) { return b; } + vector<int> mVectInt; + int mInt; + enum en { en1, en2 }; + en enummethod(en e) { return e; } +}; +class Derived : public Base { +public: + Derived(Base *b) : Base(b) {} + virtual Base& m1(Base &b) { return b; } + virtual Base* m2(Base *b) { return b; } +// virtual Base m3(Base b) { return b; } + void throwspec() throw (int, Base) {} +}; +#if defined(_MSC_VER) + #pragma warning(default: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) +#endif +%} + +%template(maxint) maximum<int>; +%template(maxdouble) maximum<double>; +%template(vecint) vector<int>; +%template(vecdouble) vector<double>; +%template(maxintp) maximum<int (*)[10]>; +%template(vecintp) vector<int (*)[10]>; + + Deleted: trunk/Examples/test-suite/intermediary_classname.i =================================================================== --- trunk/Examples/test-suite/intermediary_classname.i 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/intermediary_classname.i 2009-07-02 21:59:29 UTC (rev 11348) @@ -1,82 +0,0 @@ - -// This test is to check the intermediary class name can be changed (C# and Java only use intermediary classes at time of writing) -%module(directors="1", jniclassname="intermediary_classname", imclassname="intermediary_classname") "intermediary_classname" - -%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR); - -// change the access to the intermediary class for testing purposes -%pragma(java) jniclassclassmodifiers="public class"; -%pragma(csharp) imclassclassmodifiers="public class"; - -%feature("director") Base; -%feature("director") Derived; - -// Test the throws attribute in these typemaps -%typemap(javadirectorout, throws="InstantiationException/*javadirectorout Base&*/") Base& - "$javaclassname.getCPtr($javacall)/* XYZ& typemap directorout*/" -%typemap(javadirectorin, throws="ClassNotFoundException/*javadirectorin Base&*/") Base& - "new $javaclassname($jniinput, false)/*javadirectorin*/" -%typemap(out, throws="IllegalAccessException/*out Base&*/") Base& { - // XYZ& typemap out - $result = 0; // remove unused variable warning -} -%inline %{ - -template<class T> T maximum(const T a, const T b) { return a>b ? a : b; } - -template<class T> class vector { - T *v; - int sz; - public: - vector(int _sz) { - v = new T[_sz]; - sz = _sz; - } - T &get(int index) { - return v[index]; - } - void set(int index, T &val) { - v[index] = val; - } - void testconst(const T x) { } -}; - -#if defined(_MSC_VER) - #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif - -class Base { -public: - Base() : mVectInt(0) {} - Base(Base *b) : mVectInt(0) {} - virtual ~Base() {} - virtual Base& m1(Base &b) { return b; } - virtual Base& m1out() { static Base b; return b; } - virtual Base* m2(Base *b) { return b; } -// virtual Base m3(Base b) { return b; } - vector<int> mVectInt; - int mInt; - enum en { en1, en2 }; - en enummethod(en e) { return e; } -}; -class Derived : public Base { -public: - Derived(Base *b) : Base(b) {} - virtual Base& m1(Base &b) { return b; } - virtual Base* m2(Base *b) { return b; } -// virtual Base m3(Base b) { return b; } - void throwspec() throw (int, Base) {} -}; -#if defined(_MSC_VER) - #pragma warning(default: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif -%} - -%template(maxint) maximum<int>; -%template(maxdouble) maximum<double>; -%template(vecint) vector<int>; -%template(vecdouble) vector<double>; -%template(maxintp) maximum<int (*)[10]>; -%template(vecintp) vector<int (*)[10]>; - - Modified: trunk/Examples/test-suite/java/Makefile.in =================================================================== --- trunk/Examples/test-suite/java/Makefile.in 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/java/Makefile.in 2009-07-02 21:59:29 UTC (rev 11348) @@ -19,7 +19,7 @@ enum_thorough_simple \ enum_thorough_typeunsafe \ exception_partial_info \ - intermediary_classname \ + custom_intermediary_classname \ java_constants \ java_director \ java_enums \ Copied: trunk/Examples/test-suite/java/custom_intermediary_classname_runme.java (from rev 11346, trunk/Examples/test-suite/java/intermediary_classname_runme.java) =================================================================== --- trunk/Examples/test-suite/java/custom_intermediary_classname_runme.java (rev 0) +++ trunk/Examples/test-suite/java/custom_intermediary_classname_runme.java 2009-07-02 21:59:29 UTC (rev 11348) @@ -0,0 +1,24 @@ + +import custom_intermediary_classname.*; + +public class custom_intermediary_classname_runme { + static { + try { + System.loadLibrary("custom_intermediary_classname"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) + { + // test the renamed module class is correctly named + double d = custom_intermediary_classnameModule.maxdouble(10.0, 20.0); + if (d!=20.0) throw new RuntimeException("Test failed"); + + // test the renamed intermediary class is correctly named + long ptr = custom_intermediary_classname.new_vecdouble(10); + custom_intermediary_classname.delete_vecdouble(ptr); + } +} Deleted: trunk/Examples/test-suite/java/intermediary_classname_runme.java =================================================================== --- trunk/Examples/test-suite/java/intermediary_classname_runme.java 2009-07-02 21:35:41 UTC (rev 11347) +++ trunk/Examples/test-suite/java/intermediary_classname_runme.java 2009-07-02 21:59:29 UTC (rev 11348) @@ -1,24 +0,0 @@ - -import intermediary_classname.*; - -public class intermediary_classname_runme { - static { - try { - System.loadLibrary("intermediary_classname"); - } catch (UnsatisfiedLinkError e) { - System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); - System.exit(1); - } - } - - public static void main(String argv[]) - { - // test the renamed module class is correctly named - double d = intermediary_classnameModule.maxdouble(10.0, 20.0); - if (d!=20.0) throw new RuntimeException("Test failed"); - - // test the renamed intermediary class is correctly named - long ptr = intermediary_classname.new_vecdouble(10); - intermediary_classname.delete_vecdouble(ptr); - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-03 22:23:46
|
Revision: 11356 http://swig.svn.sourceforge.net/swig/?rev=11356&view=rev Author: wsfulton Date: 2009-07-03 22:23:43 +0000 (Fri, 03 Jul 2009) Log Message: ----------- better way to provide custom commandline options for individual tests Modified Paths: -------------- trunk/Examples/test-suite/allegrocl/Makefile.in trunk/Examples/test-suite/cffi/Makefile.in trunk/Examples/test-suite/chicken/Makefile.in trunk/Examples/test-suite/clisp/Makefile.in trunk/Examples/test-suite/common.mk trunk/Examples/test-suite/csharp/Makefile.in trunk/Examples/test-suite/guile/Makefile.in trunk/Examples/test-suite/guilescm/Makefile.in trunk/Examples/test-suite/java/Makefile.in trunk/Examples/test-suite/lua/Makefile.in trunk/Examples/test-suite/mzscheme/Makefile.in trunk/Examples/test-suite/ocaml/Makefile.in trunk/Examples/test-suite/octave/Makefile.in trunk/Examples/test-suite/perl5/Makefile.in trunk/Examples/test-suite/php/Makefile.in trunk/Examples/test-suite/pike/Makefile.in trunk/Examples/test-suite/python/Makefile.in trunk/Examples/test-suite/r/Makefile.in trunk/Examples/test-suite/ruby/Makefile.in trunk/Examples/test-suite/tcl/Makefile.in trunk/Examples/test-suite/uffi/Makefile.in Modified: trunk/Examples/test-suite/allegrocl/Makefile.in =================================================================== --- trunk/Examples/test-suite/allegrocl/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/allegrocl/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -89,8 +89,12 @@ include $(srcdir)/../common.mk +# Overridden variables here # SWIGOPT += -debug-module 4 +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/cffi/Makefile.in =================================================================== --- trunk/Examples/test-suite/cffi/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/cffi/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -11,10 +11,14 @@ include $(srcdir)/../common.mk +# Overridden variables here # no C++ tests for now CPP_TEST_CASES = #C_TEST_CASES += +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/chicken/Makefile.in =================================================================== --- trunk/Examples/test-suite/chicken/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/chicken/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -23,10 +23,12 @@ include $(srcdir)/../common.mk - # Overridden variables here SWIGOPT += -nounit +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/clisp/Makefile.in =================================================================== --- trunk/Examples/test-suite/clisp/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/clisp/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -11,10 +11,14 @@ include $(srcdir)/../common.mk +# Overridden variables here # no C++ tests for now CPP_TEST_CASES = #C_TEST_CASES += +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/common.mk 2009-07-03 22:23:43 UTC (rev 11356) @@ -16,8 +16,8 @@ # b) Define rules for %.ctest, %.cpptest, %.multicpptest and %.clean. # c) Define srcdir, top_srcdir and top_builddir (these are the # equivalent to configure's variables of the same name). -# 3) One off special commandline options can be achieved by adding a -# test case to CUSTOM_TEST_CASES and defining rules to run and test. +# 3) One off special commandline options for a testcase can be added. +# See custom tests below. # # The 'check' target runs the testcases including SWIG invocation, # C/C++ compilation, target language compilation (if any) and runtime @@ -60,7 +60,6 @@ TARGETPREFIX = TARGETSUFFIX = SWIGOPT = -outcurrentdir -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE) -SWIGOPTCUSTOM = INCLUDES = -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE) LIBS = -L. LIBPREFIX = lib @@ -72,7 +71,7 @@ # Note that any whitespace after the last entry in each list will break make # -# Broken C++ test cases. (Can be run individually using make testcase.cpptest.) +# Broken C++ test cases. (Can be run individually using: make testcase.cpptest) CPP_TEST_BROKEN += \ constants \ cpp_broken \ @@ -86,12 +85,12 @@ template_expr -# Broken C test cases. (Can be run individually using make testcase.ctest.) +# Broken C test cases. (Can be run individually using: make testcase.ctest) C_TEST_BROKEN += \ tag_no_clash_with_variable -# C++ test cases. (Can be run individually using make testcase.cpptest.) +# C++ test cases. (Can be run individually using: make testcase.cpptest) CPP_TEST_CASES += \ abstract_access \ abstract_inherit \ @@ -143,6 +142,7 @@ cpp_nodefault \ cpp_static \ cpp_typedef \ + custom_wallkw \ default_args \ default_constructor \ defvalue_constructor \ @@ -421,7 +421,7 @@ endif -# C test cases. (Can be run individually using make testcase.ctest.) +# C test cases. (Can be run individually using: make testcase.ctest) C_TEST_CASES += \ arrays \ char_constant \ @@ -460,7 +460,7 @@ unions -# Multi-module C++ test cases . (Can be run individually using make testcase.multicpptest.) +# Multi-module C++ test cases . (Can be run individually using make testcase.multicpptest) MULTI_CPP_TEST_CASES += \ clientdata_prop \ imports \ @@ -469,20 +469,13 @@ template_typedef_import \ multi_import -# Non standard testcases, usually using custom commandline options -# Testcase names are prefixed with custom_ and can be run individually using make testcase.customtest -CUSTOM_TEST_CASES = \ - custom_wallkw \ +# Custom tests - tests with additional commandline options +custom_wallkw.cpptest: SWIGOPT += -Wallkw -# individual custom tests - any kind of customisation allowed here -# Note: $(basename $@) strips everything after and including the . in the target name -custom_wallkw.customtest: - $(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-Wallkw" NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \ $(C_TEST_CASES:=.ctest) \ $(MULTI_CPP_TEST_CASES:=.multicpptest) \ - $(CUSTOM_TEST_CASES:=.customtest) \ $(EXTRA_TEST_CASES) BROKEN_TEST_CASES = $(CPP_TEST_BROKEN:=.cpptest) \ @@ -491,7 +484,6 @@ ALL_CLEAN = $(CPP_TEST_CASES:=.clean) \ $(C_TEST_CASES:=.clean) \ $(MULTI_CPP_TEST_CASES:=.clean) \ - $(CUSTOM_TEST_CASES:=.clean) \ $(CPP_TEST_BROKEN:=.clean) \ $(C_TEST_BROKEN:=.clean) @@ -511,14 +503,14 @@ swig_and_compile_cpp = \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ $(LANGUAGE)$(VARIANT)_cpp swig_and_compile_c = \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CSRCS="$(CSRCS)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ $(LANGUAGE)$(VARIANT) @@ -526,7 +518,7 @@ for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" LIBS='$(LIBS)' \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ TARGET="$(TARGETPREFIX)$${f}$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$$f.i" \ $(LANGUAGE)$(VARIANT)_cpp; \ done @@ -538,7 +530,7 @@ $(LANGUAGE)$(VARIANT)_externalhdr; \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS) $*_external.cxx" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ - INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ + INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ $(LANGUAGE)$(VARIANT)_cpp Modified: trunk/Examples/test-suite/csharp/Makefile.in =================================================================== --- trunk/Examples/test-suite/csharp/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/csharp/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -15,14 +15,12 @@ csharp_attributes \ csharp_exceptions \ csharp_features \ + csharp_lib_arrays \ csharp_prepost \ csharp_typemaps \ enum_thorough_simple \ enum_thorough_typesafe \ - exception_partial_info - -CUSTOM_TEST_CASES = \ - csharp_lib_arrays \ + exception_partial_info \ intermediary_classname include $(srcdir)/../common.mk @@ -33,6 +31,10 @@ CSHARPFLAGSSPECIAL = +# Custom tests - tests with additional commandline options +intermediary_classname.cpptest: SWIGOPT += -dllimport intermediary_classname +csharp_lib_arrays.cpptest: CSHARPFLAGSSPECIAL = -unsafe + # Rules for the different types of tests %.cpptest: $(setup) @@ -49,12 +51,6 @@ +(cd $* && $(swig_and_compile_multi_cpp)) +$(run_testcase) -# Rules for custom tests -intermediary_classname.customtest: - $(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-dllimport intermediary_classname" -csharp_lib_arrays.customtest: - $(MAKE) $(basename $@).cpptest CSHARPFLAGSSPECIAL="-unsafe" - # Makes a directory for the testcase if it does not exist setup = \ if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ Modified: trunk/Examples/test-suite/guile/Makefile.in =================================================================== --- trunk/Examples/test-suite/guile/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/guile/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -17,6 +17,9 @@ # Overridden variables here # none! +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/guilescm/Makefile.in =================================================================== --- trunk/Examples/test-suite/guilescm/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/guilescm/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -6,12 +6,15 @@ include ../guile/Makefile +# Overridden variables here INCLUDES += -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/guilescm - VARIANT = # Refer to the guile directory for the run scripts SCRIPTPREFIX = ../guile/ +# Custom tests - tests with additional commandline options +# none! + # Runs the testcase. A testcase is only run if # a file is found which has _runme.scm appended after the testcase name. run_testcase = \ Modified: trunk/Examples/test-suite/java/Makefile.in =================================================================== --- trunk/Examples/test-suite/java/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/java/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -40,6 +40,9 @@ SWIGOPT += -package $* INTERFACEDIR = ../../ +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/lua/Makefile.in =================================================================== --- trunk/Examples/test-suite/lua/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/lua/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -24,6 +24,9 @@ # Overridden variables here LIBS = -L. +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/mzscheme/Makefile.in =================================================================== --- trunk/Examples/test-suite/mzscheme/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/mzscheme/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -14,6 +14,9 @@ # Overridden variables here # none! +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/ocaml/Makefile.in =================================================================== --- trunk/Examples/test-suite/ocaml/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/ocaml/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -44,6 +44,9 @@ # Overridden variables here # none! +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: echo $@ >> testing Modified: trunk/Examples/test-suite/octave/Makefile.in =================================================================== --- trunk/Examples/test-suite/octave/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/octave/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -34,6 +34,9 @@ # Overridden variables here LIBS = -L. +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/perl5/Makefile.in =================================================================== --- trunk/Examples/test-suite/perl5/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/perl5/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -27,6 +27,9 @@ # Overridden variables here # none! +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/php/Makefile.in =================================================================== --- trunk/Examples/test-suite/php/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/php/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -16,6 +16,9 @@ # Overridden variables here TARGETPREFIX =# Should be php_ for Windows, empty otherwise +# Custom tests - tests with additional commandline options +# none! + # write out tests without a _runme.php missingcpptests: for test in $(CPP_TEST_CASES) ; do test -f $${test}_runme.php || echo $${test}; done Modified: trunk/Examples/test-suite/pike/Makefile.in =================================================================== --- trunk/Examples/test-suite/pike/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/pike/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -14,6 +14,9 @@ # Overridden variables here # none! +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/python/Makefile.in =================================================================== --- trunk/Examples/test-suite/python/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/python/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -89,6 +89,9 @@ LIBS = -L. VALGRIND_OPT += --suppressions=pythonswig.supp +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/r/Makefile.in =================================================================== --- trunk/Examples/test-suite/r/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/r/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -16,7 +16,11 @@ include $(srcdir)/../common.mk # Overridden variables here +# none! +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/ruby/Makefile.in =================================================================== --- trunk/Examples/test-suite/ruby/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/ruby/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -38,12 +38,10 @@ # Overridden variables here SWIGOPT += -w801 -noautorename -features autodoc=4 - -# Rules for the different types of tests - -# make sure -autorename is true for the naming test +# Custom tests - tests with additional commandline options ruby_naming.cpptest: SWIGOPT += -autorename +# Rules for the different types of tests %.cpptest: $(setup) +$(swig_and_compile_cpp) Modified: trunk/Examples/test-suite/tcl/Makefile.in =================================================================== --- trunk/Examples/test-suite/tcl/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/tcl/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -23,6 +23,9 @@ # Overridden variables here # none! +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) Modified: trunk/Examples/test-suite/uffi/Makefile.in =================================================================== --- trunk/Examples/test-suite/uffi/Makefile.in 2009-07-03 21:23:34 UTC (rev 11355) +++ trunk/Examples/test-suite/uffi/Makefile.in 2009-07-03 22:23:43 UTC (rev 11356) @@ -11,10 +11,14 @@ include $(srcdir)/../common.mk +# Overridden variables here # no C++ tests for now CPP_TEST_CASES = #C_TEST_CASES += +# Custom tests - tests with additional commandline options +# none! + # Rules for the different types of tests %.cpptest: $(setup) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-03 22:28:08
|
Revision: 11357 http://swig.svn.sourceforge.net/swig/?rev=11357&view=rev Author: wsfulton Date: 2009-07-03 22:28:07 +0000 (Fri, 03 Jul 2009) Log Message: ----------- rename custom_wallkw to wallkw - custom commandline tests needn't start with custom_ Modified Paths: -------------- trunk/Examples/test-suite/common.mk Added Paths: ----------- trunk/Examples/test-suite/java/wallkw_runme.java trunk/Examples/test-suite/wallkw.i Removed Paths: ------------- trunk/Examples/test-suite/custom_wallkw.i trunk/Examples/test-suite/java/custom_wallkw_runme.java Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-07-03 22:23:43 UTC (rev 11356) +++ trunk/Examples/test-suite/common.mk 2009-07-03 22:28:07 UTC (rev 11357) @@ -142,7 +142,6 @@ cpp_nodefault \ cpp_static \ cpp_typedef \ - custom_wallkw \ default_args \ default_constructor \ defvalue_constructor \ @@ -395,6 +394,7 @@ virtual_destructor \ virtual_poly \ voidtest \ + wallkw \ wrapmacro # @@ -470,7 +470,7 @@ multi_import # Custom tests - tests with additional commandline options -custom_wallkw.cpptest: SWIGOPT += -Wallkw +wallkw.cpptest: SWIGOPT += -Wallkw NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \ Deleted: trunk/Examples/test-suite/custom_wallkw.i =================================================================== --- trunk/Examples/test-suite/custom_wallkw.i 2009-07-03 22:23:43 UTC (rev 11356) +++ trunk/Examples/test-suite/custom_wallkw.i 2009-07-03 22:28:07 UTC (rev 11357) @@ -1,16 +0,0 @@ -%module custom_wallkw - -// test the -Wallkw option - -%warnfilter(SWIGWARN_PARSE_KEYWORD) clone; // 'clone' is a php keyword, renamed as 'c_clone' -%warnfilter(SWIGWARN_PARSE_KEYWORD) delegate; // 'delegate' is a C# keyword, renaming to '_delegate' -%warnfilter(SWIGWARN_PARSE_KEYWORD) pass; // 'pass' is a python keyword, renaming to '_pass' -%warnfilter(SWIGWARN_PARSE_KEYWORD) alias; // 'alias' is a ruby keyword, renaming to 'C_alias' - -%inline %{ -const char * clone() { return "clone"; } -const char * delegate() { return "delegate"; } -const char * pass() { return "pass"; } -const char * alias() { return "alias"; } -%} - Deleted: trunk/Examples/test-suite/java/custom_wallkw_runme.java =================================================================== --- trunk/Examples/test-suite/java/custom_wallkw_runme.java 2009-07-03 22:23:43 UTC (rev 11356) +++ trunk/Examples/test-suite/java/custom_wallkw_runme.java 2009-07-03 22:28:07 UTC (rev 11357) @@ -1,25 +0,0 @@ - -import custom_wallkw.*; - -public class custom_wallkw_runme { - - static { - try { - System.loadLibrary("custom_wallkw"); - } catch (UnsatisfiedLinkError e) { - System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); - System.exit(1); - } - } - - public static void main(String argv[]) { - if (!custom_wallkw.c_clone().equals("clone")) - throw new RuntimeException("clone_c keyword fail"); - if (!custom_wallkw._delegate().equals("delegate")) - throw new RuntimeException("delegate keyword fail"); - if (!custom_wallkw._pass().equals("pass")) - throw new RuntimeException("pass keyword fail"); - if (!custom_wallkw.C_alias().equals("alias")) - throw new RuntimeException("alias keyword fail"); - } -} Copied: trunk/Examples/test-suite/java/wallkw_runme.java (from rev 11349, trunk/Examples/test-suite/java/custom_wallkw_runme.java) =================================================================== --- trunk/Examples/test-suite/java/wallkw_runme.java (rev 0) +++ trunk/Examples/test-suite/java/wallkw_runme.java 2009-07-03 22:28:07 UTC (rev 11357) @@ -0,0 +1,25 @@ + +import wallkw.*; + +public class wallkw_runme { + + static { + try { + System.loadLibrary("wallkw"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) { + if (!wallkw.c_clone().equals("clone")) + throw new RuntimeException("clone_c keyword fail"); + if (!wallkw._delegate().equals("delegate")) + throw new RuntimeException("delegate keyword fail"); + if (!wallkw._pass().equals("pass")) + throw new RuntimeException("pass keyword fail"); + if (!wallkw.C_alias().equals("alias")) + throw new RuntimeException("alias keyword fail"); + } +} Copied: trunk/Examples/test-suite/wallkw.i (from rev 11355, trunk/Examples/test-suite/custom_wallkw.i) =================================================================== --- trunk/Examples/test-suite/wallkw.i (rev 0) +++ trunk/Examples/test-suite/wallkw.i 2009-07-03 22:28:07 UTC (rev 11357) @@ -0,0 +1,16 @@ +%module wallkw + +// test the -Wallkw option + +%warnfilter(SWIGWARN_PARSE_KEYWORD) clone; // 'clone' is a php keyword, renamed as 'c_clone' +%warnfilter(SWIGWARN_PARSE_KEYWORD) delegate; // 'delegate' is a C# keyword, renaming to '_delegate' +%warnfilter(SWIGWARN_PARSE_KEYWORD) pass; // 'pass' is a python keyword, renaming to '_pass' +%warnfilter(SWIGWARN_PARSE_KEYWORD) alias; // 'alias' is a ruby keyword, renaming to 'C_alias' + +%inline %{ +const char * clone() { return "clone"; } +const char * delegate() { return "delegate"; } +const char * pass() { return "pass"; } +const char * alias() { return "alias"; } +%} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-09 19:56:51
|
Revision: 11382 http://swig.svn.sourceforge.net/swig/?rev=11382&view=rev Author: wsfulton Date: 2009-07-09 19:56:47 +0000 (Thu, 09 Jul 2009) Log Message: ----------- add test for %extend on member variable Modified Paths: -------------- trunk/Examples/test-suite/common.mk Added Paths: ----------- trunk/Examples/test-suite/java/memberin_extend_runme.java trunk/Examples/test-suite/memberin_extend.i Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-07-08 23:54:15 UTC (rev 11381) +++ trunk/Examples/test-suite/common.mk 2009-07-09 19:56:47 UTC (rev 11382) @@ -79,7 +79,7 @@ extend_variable \ li_std_vector_ptr \ namespace_union \ - nested_struct \ + nested_structs \ overload_complicated \ template_default_pointer \ template_expr @@ -220,6 +220,7 @@ li_typemaps \ li_windows \ long_long_apply \ + memberin_extend \ member_pointer \ member_template \ minherit \ Added: trunk/Examples/test-suite/java/memberin_extend_runme.java =================================================================== --- trunk/Examples/test-suite/java/memberin_extend_runme.java (rev 0) +++ trunk/Examples/test-suite/java/memberin_extend_runme.java 2009-07-09 19:56:47 UTC (rev 11382) @@ -0,0 +1,26 @@ + +import memberin_extend.*; + +public class memberin_extend_runme { + static { + try { + System.loadLibrary("memberin_extend"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) + { + ExtendMe em1 = new ExtendMe(); + ExtendMe em2 = new ExtendMe(); + em1.setThing("em1thing"); + em2.setThing("em2thing"); + if (!em1.getThing().equals("em1thing")) + throw new RuntimeException("wrong: " + em1.getThing()); + if (!em2.getThing().equals("em2thing")) + throw new RuntimeException("wrong: " + em2.getThing()); + } +} + Added: trunk/Examples/test-suite/memberin_extend.i =================================================================== --- trunk/Examples/test-suite/memberin_extend.i (rev 0) +++ trunk/Examples/test-suite/memberin_extend.i 2009-07-09 19:56:47 UTC (rev 11382) @@ -0,0 +1,22 @@ +%module memberin_extend + +// Tests memberin typemap. The default char * memberin typemap will be used. +// The test extends the struct with a pseudo member variable + +%inline %{ +#include <string> +struct ExtendMe { +}; +%} + +%{ +#include <map> +std::map<ExtendMe*, char *> ExtendMeStringMap; +#define ExtendMe_thing_set(self_, val_) ExtendMeStringMap[self_] +#define ExtendMe_thing_get(self_) ExtendMeStringMap[self_] +%} + +%extend ExtendMe { + char *thing; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-30 06:16:01
|
Revision: 11475 http://swig.svn.sourceforge.net/swig/?rev=11475&view=rev Author: wsfulton Date: 2009-07-30 06:15:50 +0000 (Thu, 30 Jul 2009) Log Message: ----------- rename special_variable_functions testcase to special_variable_macros Modified Paths: -------------- trunk/Examples/test-suite/common.mk Added Paths: ----------- trunk/Examples/test-suite/csharp/special_variable_macros_runme.cs trunk/Examples/test-suite/java/special_variable_macros_runme.java trunk/Examples/test-suite/python/special_variable_macros_runme.py trunk/Examples/test-suite/special_variable_macros.i Removed Paths: ------------- trunk/Examples/test-suite/csharp/special_variable_functions_runme.cs trunk/Examples/test-suite/java/special_variable_functions_runme.java trunk/Examples/test-suite/python/special_variable_functions_runme.py trunk/Examples/test-suite/special_variable_functions.i Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-07-30 06:08:36 UTC (rev 11474) +++ trunk/Examples/test-suite/common.mk 2009-07-30 06:15:50 UTC (rev 11475) @@ -292,7 +292,7 @@ smart_pointer_templatevariables \ smart_pointer_typedef \ special_variables \ - special_variable_functions \ + special_variable_macros \ static_array_member \ static_const_member \ static_const_member_2 \ Deleted: trunk/Examples/test-suite/csharp/special_variable_functions_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/special_variable_functions_runme.cs 2009-07-30 06:08:36 UTC (rev 11474) +++ trunk/Examples/test-suite/csharp/special_variable_functions_runme.cs 2009-07-30 06:15:50 UTC (rev 11475) @@ -1,18 +0,0 @@ -using System; -using special_variable_functionsNamespace; - -public class runme { - static void Main() { - Name name = new Name(); - if (special_variable_functions.testFred(name) != "none") - throw new Exception("test failed"); - if (special_variable_functions.testJack(name) != "$specialname") - throw new Exception("test failed"); - if (special_variable_functions.testJill(name) != "jilly") - throw new Exception("test failed"); - if (special_variable_functions.testMary(name) != "SWIGTYPE_p_NameWrap") - throw new Exception("test failed"); - NewName newName = NewName.factory("factoryname"); - name = newName.getStoredName(); - } -} Copied: trunk/Examples/test-suite/csharp/special_variable_macros_runme.cs (from rev 11470, trunk/Examples/test-suite/csharp/special_variable_functions_runme.cs) =================================================================== --- trunk/Examples/test-suite/csharp/special_variable_macros_runme.cs (rev 0) +++ trunk/Examples/test-suite/csharp/special_variable_macros_runme.cs 2009-07-30 06:15:50 UTC (rev 11475) @@ -0,0 +1,18 @@ +using System; +using special_variable_macrosNamespace; + +public class runme { + static void Main() { + Name name = new Name(); + if (special_variable_macros.testFred(name) != "none") + throw new Exception("test failed"); + if (special_variable_macros.testJack(name) != "$specialname") + throw new Exception("test failed"); + if (special_variable_macros.testJill(name) != "jilly") + throw new Exception("test failed"); + if (special_variable_macros.testMary(name) != "SWIGTYPE_p_NameWrap") + throw new Exception("test failed"); + NewName newName = NewName.factory("factoryname"); + name = newName.getStoredName(); + } +} Property changes on: trunk/Examples/test-suite/csharp/special_variable_macros_runme.cs ___________________________________________________________________ Added: svn:mergeinfo + Deleted: trunk/Examples/test-suite/java/special_variable_functions_runme.java =================================================================== --- trunk/Examples/test-suite/java/special_variable_functions_runme.java 2009-07-30 06:08:36 UTC (rev 11474) +++ trunk/Examples/test-suite/java/special_variable_functions_runme.java 2009-07-30 06:15:50 UTC (rev 11475) @@ -1,28 +0,0 @@ - -import special_variable_functions.*; - -public class special_variable_functions_runme { - - static { - try { - System.loadLibrary("special_variable_functions"); - } catch (UnsatisfiedLinkError e) { - System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); - System.exit(1); - } - } - - public static void main(String argv[]) { - Name name = new Name(); - if (!special_variable_functions.testFred(name).equals("none")) - throw new RuntimeException("test failed"); - if (!special_variable_functions.testJack(name).equals("$specialname")) - throw new RuntimeException("test failed"); - if (!special_variable_functions.testJill(name).equals("jilly")) - throw new RuntimeException("test failed"); - if (!special_variable_functions.testMary(name).equals("SWIGTYPE_p_NameWrap")) - throw new RuntimeException("test failed"); - NewName newName = NewName.factory("factoryname"); - name = newName.getStoredName(); - } -} Copied: trunk/Examples/test-suite/java/special_variable_macros_runme.java (from rev 11470, trunk/Examples/test-suite/java/special_variable_functions_runme.java) =================================================================== --- trunk/Examples/test-suite/java/special_variable_macros_runme.java (rev 0) +++ trunk/Examples/test-suite/java/special_variable_macros_runme.java 2009-07-30 06:15:50 UTC (rev 11475) @@ -0,0 +1,28 @@ + +import special_variable_macros.*; + +public class special_variable_macros_runme { + + static { + try { + System.loadLibrary("special_variable_macros"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) { + Name name = new Name(); + if (!special_variable_macros.testFred(name).equals("none")) + throw new RuntimeException("test failed"); + if (!special_variable_macros.testJack(name).equals("$specialname")) + throw new RuntimeException("test failed"); + if (!special_variable_macros.testJill(name).equals("jilly")) + throw new RuntimeException("test failed"); + if (!special_variable_macros.testMary(name).equals("SWIGTYPE_p_NameWrap")) + throw new RuntimeException("test failed"); + NewName newName = NewName.factory("factoryname"); + name = newName.getStoredName(); + } +} Property changes on: trunk/Examples/test-suite/java/special_variable_macros_runme.java ___________________________________________________________________ Added: svn:mergeinfo + Deleted: trunk/Examples/test-suite/python/special_variable_functions_runme.py =================================================================== --- trunk/Examples/test-suite/python/special_variable_functions_runme.py 2009-07-30 06:08:36 UTC (rev 11474) +++ trunk/Examples/test-suite/python/special_variable_functions_runme.py 2009-07-30 06:15:50 UTC (rev 11475) @@ -1,12 +0,0 @@ -import special_variable_functions - -name = special_variable_functions.Name() -if special_variable_functions.testFred(name) != "none": - raise "test failed" -if special_variable_functions.testJack(name) != "$specialname": - raise "test failed" -if special_variable_functions.testJill(name) != "jilly": - raise "test failed" -if special_variable_functions.testMary(name) != "SWIGTYPE_p_NameWrap": - raise "test failed" - Copied: trunk/Examples/test-suite/python/special_variable_macros_runme.py (from rev 11470, trunk/Examples/test-suite/python/special_variable_functions_runme.py) =================================================================== --- trunk/Examples/test-suite/python/special_variable_macros_runme.py (rev 0) +++ trunk/Examples/test-suite/python/special_variable_macros_runme.py 2009-07-30 06:15:50 UTC (rev 11475) @@ -0,0 +1,12 @@ +import special_variable_macros + +name = special_variable_macros.Name() +if special_variable_macros.testFred(name) != "none": + raise "test failed" +if special_variable_macros.testJack(name) != "$specialname": + raise "test failed" +if special_variable_macros.testJill(name) != "jilly": + raise "test failed" +if special_variable_macros.testMary(name) != "SWIGTYPE_p_NameWrap": + raise "test failed" + Property changes on: trunk/Examples/test-suite/python/special_variable_macros_runme.py ___________________________________________________________________ Added: svn:mergeinfo + Deleted: trunk/Examples/test-suite/special_variable_functions.i =================================================================== --- trunk/Examples/test-suite/special_variable_functions.i 2009-07-30 06:08:36 UTC (rev 11474) +++ trunk/Examples/test-suite/special_variable_functions.i 2009-07-30 06:15:50 UTC (rev 11475) @@ -1,121 +0,0 @@ -%module special_variable_functions - -// test $typemap() special variable function -// these tests are not typical of how $typemap() should be used, but it checks that it is mostly working - -%inline %{ -struct Name { - Name(const char *n="none") : name(n) {} - const char *getName() const { return name; }; - Name *getNamePtr() { return this; }; -private: - const char *name; -}; -struct NameWrap { - NameWrap(const char *n="casternone") : name(n) {} - Name *getNamePtr() { return &name; }; -private: - Name name; -}; -%} - -// check $1 and $input get expanded properly when used from $typemap() -%typemap(in) Name *GENERIC ($*1_type temp) -%{ - /*%typemap(in) Name *GENERIC start */ - temp = Name("$specialname"); - (void)$input; - $1 = ($1_ltype) &temp; - /*%typemap(in) Name *GENERIC end */ -%} - -// This would never be done in real code, it is just a test of what madness can be done. -// Note that the special variable substitutions $*1_type, $descriptor etc are for NameWrap -// even when used within the Name typemap via $typemap. I can't think of any useful use cases -// for this behaviour in the C/C++ typemaps, but it is possible. -%typemap(in) NameWrap *NAMEWRAP ($*1_type temp) -%{ - /*%typemap(in) NameWrap *NAMEWRAP start */ - temp = $*1_ltype("$descriptor"); - (void)$input; - $1 = temp.getNamePtr(); - /*%typemap(in) NameWrap *NAMEWRAP end */ -%} - - -////////////////////////////////////////////////////////////////////////////////////// - -// This should use Name *GENERIC typemap which ignores passed in Name * and instead uses a newly a newly constructed Name -// held in a typemap variable with name="$specialname" -%typemap(in) Name *jack { -// %typemap(in) Name *jack start -$typemap(in, Name *GENERIC) -// %typemap(in) Name *jack end -} - -// as above, but also perform variable substitution -%typemap(in) Name *jill { -// %typemap(in) Name *jill start -$typemap(in, Name *GENERIC, specialname=jilly) -// %typemap(in) Name *jill end -} - -%typemap(in) Name *mary { -// %typemap(in) Name *mary start -$typemap(in, NameWrap *NAMEWRAP) -// %typemap(in) Name *mary end -} - -%inline %{ -const char * testFred(Name *fred) { - return fred->getName(); -} -const char * testJack(Name *jack) { - return jack->getName(); -} -const char * testJill(Name *jill) { - return jill->getName(); -} -const char * testMary(Name *mary) { - return mary->getName(); -} -%} - -////////////////////////////////////////////////////////////////////////////////////// -// Multi-arg typemap lookup -#warning TODO!!! - - -////////////////////////////////////////////////////////////////////////////////////// -// A real use case for $typemap - -#if defined(SWIGCSHARP) -%typemap(cscode) Space::RenameMe %{ - public static NewName factory(String s) { - //below should expand to: - //return new NewName( new Name(s) ); - return new $typemap(cstype, Space::RenameMe)( new $typemap(cstype, Name)(s) ); - } -%} -#elif defined(SWIGJAVA) -%typemap(javacode) Space::RenameMe %{ - public static NewName factory(String s) { - //below should expand to: - //return new NewName( new Name(s) ); - return new $typemap(jstype, Space::RenameMe)( new $typemap(jstype, Name)(s) ); - } -%} -#endif - -%rename(NewName) Space::RenameMe; -%inline %{ -namespace Space { - struct RenameMe { - RenameMe(Name n) : storedName(n) {} - Name getStoredName() { return storedName; } - private: - Name storedName; - }; -} -%} - Copied: trunk/Examples/test-suite/special_variable_macros.i (from rev 11470, trunk/Examples/test-suite/special_variable_functions.i) =================================================================== --- trunk/Examples/test-suite/special_variable_macros.i (rev 0) +++ trunk/Examples/test-suite/special_variable_macros.i 2009-07-30 06:15:50 UTC (rev 11475) @@ -0,0 +1,121 @@ +%module special_variable_macros + +// test $typemap() special variable function +// these tests are not typical of how $typemap() should be used, but it checks that it is mostly working + +%inline %{ +struct Name { + Name(const char *n="none") : name(n) {} + const char *getName() const { return name; }; + Name *getNamePtr() { return this; }; +private: + const char *name; +}; +struct NameWrap { + NameWrap(const char *n="casternone") : name(n) {} + Name *getNamePtr() { return &name; }; +private: + Name name; +}; +%} + +// check $1 and $input get expanded properly when used from $typemap() +%typemap(in) Name *GENERIC ($*1_type temp) +%{ + /*%typemap(in) Name *GENERIC start */ + temp = Name("$specialname"); + (void)$input; + $1 = ($1_ltype) &temp; + /*%typemap(in) Name *GENERIC end */ +%} + +// This would never be done in real code, it is just a test of what madness can be done. +// Note that the special variable substitutions $*1_type, $descriptor etc are for NameWrap +// even when used within the Name typemap via $typemap. I can't think of any useful use cases +// for this behaviour in the C/C++ typemaps, but it is possible. +%typemap(in) NameWrap *NAMEWRAP ($*1_type temp) +%{ + /*%typemap(in) NameWrap *NAMEWRAP start */ + temp = $*1_ltype("$descriptor"); + (void)$input; + $1 = temp.getNamePtr(); + /*%typemap(in) NameWrap *NAMEWRAP end */ +%} + + +////////////////////////////////////////////////////////////////////////////////////// + +// This should use Name *GENERIC typemap which ignores passed in Name * and instead uses a newly a newly constructed Name +// held in a typemap variable with name="$specialname" +%typemap(in) Name *jack { +// %typemap(in) Name *jack start +$typemap(in, Name *GENERIC) +// %typemap(in) Name *jack end +} + +// as above, but also perform variable substitution +%typemap(in) Name *jill { +// %typemap(in) Name *jill start +$typemap(in, Name *GENERIC, specialname=jilly) +// %typemap(in) Name *jill end +} + +%typemap(in) Name *mary { +// %typemap(in) Name *mary start +$typemap(in, NameWrap *NAMEWRAP) +// %typemap(in) Name *mary end +} + +%inline %{ +const char * testFred(Name *fred) { + return fred->getName(); +} +const char * testJack(Name *jack) { + return jack->getName(); +} +const char * testJill(Name *jill) { + return jill->getName(); +} +const char * testMary(Name *mary) { + return mary->getName(); +} +%} + +////////////////////////////////////////////////////////////////////////////////////// +// Multi-arg typemap lookup +#warning TODO!!! + + +////////////////////////////////////////////////////////////////////////////////////// +// A real use case for $typemap + +#if defined(SWIGCSHARP) +%typemap(cscode) Space::RenameMe %{ + public static NewName factory(String s) { + //below should expand to: + //return new NewName( new Name(s) ); + return new $typemap(cstype, Space::RenameMe)( new $typemap(cstype, Name)(s) ); + } +%} +#elif defined(SWIGJAVA) +%typemap(javacode) Space::RenameMe %{ + public static NewName factory(String s) { + //below should expand to: + //return new NewName( new Name(s) ); + return new $typemap(jstype, Space::RenameMe)( new $typemap(jstype, Name)(s) ); + } +%} +#endif + +%rename(NewName) Space::RenameMe; +%inline %{ +namespace Space { + struct RenameMe { + RenameMe(Name n) : storedName(n) {} + Name getStoredName() { return storedName; } + private: + Name storedName; + }; +} +%} + Property changes on: trunk/Examples/test-suite/special_variable_macros.i ___________________________________________________________________ Added: svn:mergeinfo + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vm...@us...> - 2009-08-04 09:32:18
|
Revision: 11495 http://swig.svn.sourceforge.net/swig/?rev=11495&view=rev Author: vmiklos Date: 2009-08-04 09:32:12 +0000 (Tue, 04 Aug 2009) Log Message: ----------- PHP: fix for the wrapmacro testcase 'max' is a built-in function in PHP, so let's rename it to 'maximum' instead. Modified Paths: -------------- trunk/Examples/test-suite/octave/wrapmacro_runme.m trunk/Examples/test-suite/perl5/wrapmacro_runme.pl trunk/Examples/test-suite/python/wrapmacro_runme.py trunk/Examples/test-suite/wrapmacro.i Modified: trunk/Examples/test-suite/octave/wrapmacro_runme.m =================================================================== --- trunk/Examples/test-suite/octave/wrapmacro_runme.m 2009-08-04 00:51:21 UTC (rev 11494) +++ trunk/Examples/test-suite/octave/wrapmacro_runme.m 2009-08-04 09:32:12 UTC (rev 11495) @@ -2,7 +2,7 @@ a = 2; b = -1; -wrapmacro.max(a,b); -wrapmacro.max(a/7.0, -b*256); +wrapmacro.maximum(a,b); +wrapmacro.maximum(a/7.0, -b*256); wrapmacro.GUINT16_SWAP_LE_BE_CONSTANT(1); Modified: trunk/Examples/test-suite/perl5/wrapmacro_runme.pl =================================================================== --- trunk/Examples/test-suite/perl5/wrapmacro_runme.pl 2009-08-04 00:51:21 UTC (rev 11494) +++ trunk/Examples/test-suite/perl5/wrapmacro_runme.pl 2009-08-04 09:32:12 UTC (rev 11495) @@ -9,6 +9,6 @@ my $a = 2; my $b = -1; -is(wrapmacro::max($a,$b), 2); -is(wrapmacro::max($a/7.0, -$b*256), 256); +is(wrapmacro::maximum($a,$b), 2); +is(wrapmacro::maximum($a/7.0, -$b*256), 256); is(wrapmacro::GUINT16_SWAP_LE_BE_CONSTANT(1), 256); Modified: trunk/Examples/test-suite/python/wrapmacro_runme.py =================================================================== --- trunk/Examples/test-suite/python/wrapmacro_runme.py 2009-08-04 00:51:21 UTC (rev 11494) +++ trunk/Examples/test-suite/python/wrapmacro_runme.py 2009-08-04 09:32:12 UTC (rev 11495) @@ -2,6 +2,6 @@ a = 2 b = -1 -wrapmacro.max(a,b) -wrapmacro.max(a/7.0, -b*256) +wrapmacro.maximum(a,b) +wrapmacro.maximum(a/7.0, -b*256) wrapmacro.GUINT16_SWAP_LE_BE_CONSTANT(1) Modified: trunk/Examples/test-suite/wrapmacro.i =================================================================== --- trunk/Examples/test-suite/wrapmacro.i 2009-08-04 00:51:21 UTC (rev 11494) +++ trunk/Examples/test-suite/wrapmacro.i 2009-08-04 09:32:12 UTC (rev 11495) @@ -21,7 +21,8 @@ (guint16) ((guint16) (val) >> 8) | \ (guint16) ((guint16) (val) << 8))) -#define max(a,b) ((a) > (b) ? (a) : (b)) +/* Don't use max(), it's a builtin function for PHP. */ +#define maximum(a,b) ((a) > (b) ? (a) : (b)) %} @@ -41,8 +42,8 @@ /* Here, wrapping the macros */ %wrapmacro(guint16, GUINT16_SWAP_LE_BE_CONSTANT, guint16 val, val); -%wrapmacro(size_t, max, PLIST(size_t a, const size_t& b), PLIST(a, b)); -%wrapmacro(double, max, PLIST(double a, double b), PLIST(a, b)); +%wrapmacro(size_t, maximum, PLIST(size_t a, const size_t& b), PLIST(a, b)); +%wrapmacro(double, maximum, PLIST(double a, double b), PLIST(a, b)); /* Maybe in the future, a swig directive will make this easier: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-08-05 22:19:24
|
Revision: 11509 http://swig.svn.sourceforge.net/swig/?rev=11509&view=rev Author: wsfulton Date: 2009-08-05 22:19:04 +0000 (Wed, 05 Aug 2009) Log Message: ----------- add a new testcase testing combinations of STL types... just vector and pair at the moment Modified Paths: -------------- trunk/Examples/test-suite/common.mk Added Paths: ----------- trunk/Examples/test-suite/li_std_combinations.i Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-08-05 22:17:06 UTC (rev 11508) +++ trunk/Examples/test-suite/common.mk 2009-08-05 22:19:04 UTC (rev 11509) @@ -405,6 +405,7 @@ CPP_STD_TEST_CASES += \ director_string \ ignore_template_constructor \ + li_std_combinations \ li_std_deque \ li_std_except \ li_std_pair \ Added: trunk/Examples/test-suite/li_std_combinations.i =================================================================== --- trunk/Examples/test-suite/li_std_combinations.i (rev 0) +++ trunk/Examples/test-suite/li_std_combinations.i 2009-08-05 22:19:04 UTC (rev 11509) @@ -0,0 +1,15 @@ +%module li_std_combinations + +%include <std_vector.i> +%include <std_string.i> +%include <std_pair.i> + +%template(VectorInt) std::vector<int>; +%template(VectorString) std::vector<std::string>; +%template(PairIntString) std::pair<int, std::string>; + +%template(VectorPairIntString) std::vector< std::pair<int, std::string> >; +%template(PairIntVectorString) std::pair< int, std::vector<std::string> >; + +%template(VectorVectorString) std::vector< std::vector<std::string> >; +%template(PairIntPairIntString) std::pair< int, std::pair<int, std::string> >; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ol...@us...> - 2009-08-13 03:58:15
|
Revision: 11545 http://swig.svn.sourceforge.net/swig/?rev=11545&view=rev Author: olly Date: 2009-08-13 03:58:09 +0000 (Thu, 13 Aug 2009) Log Message: ----------- Change class names in test code which clash with PHP reserved words (Interface, Class, and Function - these are case insensitive reserved words in PHP). Fix lists of expected methods in rename_scope_runme.php to match those which we expect with PHP5. With this and the change above, this testcase now passes. Modified Paths: -------------- trunk/Examples/test-suite/php/rename_scope_runme.php trunk/Examples/test-suite/rename_scope.i trunk/Examples/test-suite/template_default_qualify.i trunk/Examples/test-suite/template_enum_ns_inherit.i trunk/Examples/test-suite/template_enum_typedef.i trunk/Examples/test-suite/template_ns4.i trunk/Examples/test-suite/valuewrapper_base.i Modified: trunk/Examples/test-suite/php/rename_scope_runme.php =================================================================== --- trunk/Examples/test-suite/php/rename_scope_runme.php 2009-08-13 03:35:48 UTC (rev 11544) +++ trunk/Examples/test-suite/php/rename_scope_runme.php 2009-08-13 03:58:09 UTC (rev 11545) @@ -6,10 +6,10 @@ check::classes(array("rename_scope","Interface_UP","Interface_BP","Natural_UP","Natural_BP","Bucket")); -check::classmethods("Interface_UP",array("__construct")); -check::classmethods("Interface_BP",array("__construct")); -check::classmethods("Natural_UP",array("__construct","rtest")); -check::classmethods("Natural_BP",array("__construct","rtest")); +check::classmethods("Interface_UP",array("__construct","__set","__isset","__get")); +check::classmethods("Interface_BP",array("__construct","__set","__isset","__get")); +check::classmethods("Natural_UP",array("__construct","__set","__isset","__get","rtest")); +check::classmethods("Natural_BP",array("__construct","__set","__isset","__get","rtest")); check::classparent("Natural_UP","Interface_UP"); check::classparent("Natural_BP","Interface_BP"); Modified: trunk/Examples/test-suite/rename_scope.i =================================================================== --- trunk/Examples/test-suite/rename_scope.i 2009-08-13 03:35:48 UTC (rev 11544) +++ trunk/Examples/test-suite/rename_scope.i 2009-08-13 03:58:09 UTC (rev 11545) @@ -7,7 +7,7 @@ enum Polarization { UnaryPolarization, BinaryPolarization }; template <Polarization P> - struct Interface + struct Interface_ { }; } @@ -15,9 +15,9 @@ namespace oss { - // Interface - %template(Interface_UP) Interface<UnaryPolarization>; - %template(Interface_BP) Interface<BinaryPolarization>; + // Interface_ + %template(Interface_UP) Interface_<UnaryPolarization>; + %template(Interface_BP) Interface_<BinaryPolarization>; } %inline @@ -27,7 +27,7 @@ namespace interfaces { template <Polarization P> - struct Natural : Interface<P> + struct Natural : Interface_<P> { int test(void) { return 1; } }; Modified: trunk/Examples/test-suite/template_default_qualify.i =================================================================== --- trunk/Examples/test-suite/template_default_qualify.i 2009-08-13 03:35:48 UTC (rev 11544) +++ trunk/Examples/test-suite/template_default_qualify.i 2009-08-13 03:58:09 UTC (rev 11545) @@ -12,14 +12,14 @@ enum Polarization { UnaryPolarization, BinaryPolarization }; template <Polarization P> - struct Interface + struct Interface_ { }; namespace modules { - template <class traits, class base = Interface<traits::pmode> > + template <class traits, class base = Interface_<traits::pmode> > // *** problem here **** struct Module : base { @@ -35,7 +35,7 @@ namespace oss { - %template(Interface_UP) Interface<UnaryPolarization>; + %template(Interface_UP) Interface_<UnaryPolarization>; namespace modules { %template(Module_etraits) Module<etraits>; Modified: trunk/Examples/test-suite/template_enum_ns_inherit.i =================================================================== --- trunk/Examples/test-suite/template_enum_ns_inherit.i 2009-08-13 03:35:48 UTC (rev 11544) +++ trunk/Examples/test-suite/template_enum_ns_inherit.i 2009-08-13 03:58:09 UTC (rev 11545) @@ -6,7 +6,7 @@ enum Polarization { UnaryPolarization, BinaryPolarization }; template <Polarization P> - struct Interface + struct Interface_ { }; @@ -21,8 +21,8 @@ namespace oss { - %template(Interface_UP) Interface<UnaryPolarization>; - %template(Module_UPIUP) Module<UnaryPolarization,Interface<UnaryPolarization> >; + %template(Interface_UP) Interface_<UnaryPolarization>; + %template(Module_UPIUP) Module<UnaryPolarization,Interface_<UnaryPolarization> >; } %inline %{ @@ -31,18 +31,18 @@ namespace hello { struct HInterface1 : - Interface<oss::UnaryPolarization> // this works (with fullns qualification) + Interface_<oss::UnaryPolarization> // this works (with fullns qualification) { }; struct HInterface2 : - Interface<UnaryPolarization> // this doesn't work + Interface_<UnaryPolarization> // this doesn't work { }; - struct HModule1 : Module<UnaryPolarization, Interface<UnaryPolarization> > { + struct HModule1 : Module<UnaryPolarization, Interface_<UnaryPolarization> > { }; } } -%} \ No newline at end of file +%} Modified: trunk/Examples/test-suite/template_enum_typedef.i =================================================================== --- trunk/Examples/test-suite/template_enum_typedef.i 2009-08-13 03:35:48 UTC (rev 11544) +++ trunk/Examples/test-suite/template_enum_typedef.i 2009-08-13 03:58:09 UTC (rev 11545) @@ -9,7 +9,7 @@ enum Polarization { UnaryPolarization, BinaryPolarization }; template <Polarization P> - struct Interface + struct Interface_ { }; @@ -25,7 +25,7 @@ typedef Traits traits; static const Polarization P = traits::pmode; - void get(Interface<P> arg) { }; // Here P is only replace by traits::pmode + void get(Interface_<P> arg) { }; // Here P is only replace by traits::pmode }; } @@ -34,6 +34,6 @@ namespace oss { - %template(Interface_UP) Interface<UnaryPolarization>; + %template(Interface_UP) Interface_<UnaryPolarization>; %template(Module_UP) Module<etraits>; } Modified: trunk/Examples/test-suite/template_ns4.i =================================================================== --- trunk/Examples/test-suite/template_ns4.i 2009-08-13 03:35:48 UTC (rev 11544) +++ trunk/Examples/test-suite/template_ns4.i 2009-08-13 03:58:09 UTC (rev 11545) @@ -8,13 +8,13 @@ }; template <class ArgType, class ResType> - struct Function + struct Function_ { char *test() { return (char *) "test"; } }; template <class AF, class RF> - struct ArithFunction : Function<AF, RF> + struct ArithFunction : Function_<AF, RF> { }; @@ -40,7 +40,7 @@ }; template <class AF, class RF> - class Class : public ArithFunction< typename traits<AF, RF>::arg_type, + class Class_ : public ArithFunction< typename traits<AF, RF>::arg_type, typename traits<AF, RF>::res_type > { }; @@ -49,7 +49,7 @@ typename traits<AF, RF>::base make_Class() { - return Class<AF, RF>(); + return Class_<AF, RF>(); } @@ -58,9 +58,9 @@ %{ namespace hello { - template struct Function <Double, Double>; + template struct Function_ <Double, Double>; template struct ArithFunction <Double, Double>; - template class Class <Double, Double>; + template class Class_ <Double, Double>; } %} @@ -69,9 +69,9 @@ // This complains only when using a namespace // %template() traits<Double,Double>; - %template(Function_DD) Function <Double, Double>; + %template(Function_DD) Function_ <Double, Double>; %template(ArithFunction_DD) ArithFunction <Double, Double>; - %template(Class_DD) Class <Double, Double>; + %template(Class_DD) Class_ <Double, Double>; %template(make_Class_DD) make_Class <Double, Double>; } Modified: trunk/Examples/test-suite/valuewrapper_base.i =================================================================== --- trunk/Examples/test-suite/valuewrapper_base.i 2009-08-13 03:35:48 UTC (rev 11544) +++ trunk/Examples/test-suite/valuewrapper_base.i 2009-08-13 03:58:09 UTC (rev 11545) @@ -10,9 +10,9 @@ }; template <Polarization P> - struct Interface : Base + struct Interface_ : Base { - Interface(const Base& b) { }; + Interface_(const Base& b) { }; }; template <class Result> @@ -23,6 +23,6 @@ namespace oss { // Interface - %template(Interface_BP) Interface<BinaryPolarization>; - %template(make_Interface_BP) make<Interface<BinaryPolarization> >; + %template(Interface_BP) Interface_<BinaryPolarization>; + %template(make_Interface_BP) make<Interface_<BinaryPolarization> >; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-08-13 23:37:17
|
Revision: 11553 http://swig.svn.sourceforge.net/swig/?rev=11553&view=rev Author: wsfulton Date: 2009-08-13 23:37:05 +0000 (Thu, 13 Aug 2009) Log Message: ----------- Add non-const char *& runtime tests Modified Paths: -------------- trunk/Examples/test-suite/csharp/char_strings_runme.cs trunk/Examples/test-suite/java/char_strings_runme.java Modified: trunk/Examples/test-suite/csharp/char_strings_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/char_strings_runme.cs 2009-08-13 23:31:19 UTC (rev 11552) +++ trunk/Examples/test-suite/csharp/char_strings_runme.cs 2009-08-13 23:37:05 UTC (rev 11553) @@ -120,15 +120,26 @@ // char *& tests for (i=0; i<count; i++) { - String str = char_strings.GetConstCharPointerRef(); + String str = char_strings.GetCharPointerRef(); if (str != CPLUSPLUS_MSG) throw new Exception("Test char pointer ref get failed, iteration " + i); } for (i=0; i<count; i++) { - if (!char_strings.SetConstCharPointerRef(OTHERLAND_MSG + i, i)) + if (!char_strings.SetCharPointerRef(OTHERLAND_MSG + i, i)) throw new Exception("Test char pointer ref set failed, iteration " + i); } + + for (i=0; i<count; i++) { + String str = char_strings.GetConstCharPointerRef(); + if (str != CPLUSPLUS_MSG) + throw new Exception("Test const char pointer ref get failed, iteration " + i); + } + + for (i=0; i<count; i++) { + if (!char_strings.SetConstCharPointerRef(OTHERLAND_MSG + i, i)) + throw new Exception("Test const char pointer ref set failed, iteration " + i); + } } } Modified: trunk/Examples/test-suite/java/char_strings_runme.java =================================================================== --- trunk/Examples/test-suite/java/char_strings_runme.java 2009-08-13 23:31:19 UTC (rev 11552) +++ trunk/Examples/test-suite/java/char_strings_runme.java 2009-08-13 23:37:05 UTC (rev 11553) @@ -127,15 +127,26 @@ // char *& tests for (i=0; i<count; i++) { - String str = char_strings.GetConstCharPointerRef(); + String str = char_strings.GetCharPointerRef(); if (!str.equals(CPLUSPLUS_MSG)) throw new RuntimeException("Test char pointer ref get failed, iteration " + i); } for (i=0; i<count; i++) { - if (!char_strings.SetConstCharPointerRef(OTHERLAND_MSG + i, i)) + if (!char_strings.SetCharPointerRef(OTHERLAND_MSG + i, i)) throw new RuntimeException("Test char pointer ref set failed, iteration " + i); } + + for (i=0; i<count; i++) { + String str = char_strings.GetConstCharPointerRef(); + if (!str.equals(CPLUSPLUS_MSG)) + throw new RuntimeException("Test const char pointer ref get failed, iteration " + i); + } + + for (i=0; i<count; i++) { + if (!char_strings.SetConstCharPointerRef(OTHERLAND_MSG + i, i)) + throw new RuntimeException("Test const char pointer ref set failed, iteration " + i); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ol...@us...> - 2009-08-14 02:22:20
|
Revision: 11557 http://swig.svn.sourceforge.net/swig/?rev=11557&view=rev Author: olly Date: 2009-08-14 01:33:23 +0000 (Fri, 14 Aug 2009) Log Message: ----------- Rename max() to maximum() as max() is a built-in function in PHP. Testcases overload_template and overload_template_fast now pass for PHP. Modified Paths: -------------- trunk/Examples/test-suite/csharp/overload_template_runme.cs trunk/Examples/test-suite/java/overload_template_runme.java trunk/Examples/test-suite/lua/overload_template_runme.lua trunk/Examples/test-suite/octave/overload_template_runme.m trunk/Examples/test-suite/overload_template.i trunk/Examples/test-suite/python/overload_template_runme.py trunk/Examples/test-suite/ruby/overload_template_runme.rb Modified: trunk/Examples/test-suite/csharp/overload_template_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/overload_template_runme.cs 2009-08-14 01:14:49 UTC (rev 11556) +++ trunk/Examples/test-suite/csharp/overload_template_runme.cs 2009-08-14 01:33:23 UTC (rev 11557) @@ -7,8 +7,8 @@ { int f = overload_template.foo(); - f += overload_template.max(3,4); - double b = overload_template.max(3.4,5.2); + f += overload_template.maximum(3,4); + double b = overload_template.maximum(3.4,5.2); b++; // warning suppression // mix 1 Modified: trunk/Examples/test-suite/java/overload_template_runme.java =================================================================== --- trunk/Examples/test-suite/java/overload_template_runme.java 2009-08-14 01:14:49 UTC (rev 11556) +++ trunk/Examples/test-suite/java/overload_template_runme.java 2009-08-14 01:33:23 UTC (rev 11557) @@ -16,8 +16,8 @@ public static void main(String argv[]) { int f = overload_template.foo(); - int a = overload_template.max(3,4); - double b = overload_template.max(3.4,5.2); + int a = overload_template.maximum(3,4); + double b = overload_template.maximum(3.4,5.2); // mix 1 if (overload_template.mix1("hi") != 101) Modified: trunk/Examples/test-suite/lua/overload_template_runme.lua =================================================================== --- trunk/Examples/test-suite/lua/overload_template_runme.lua 2009-08-14 01:14:49 UTC (rev 11556) +++ trunk/Examples/test-suite/lua/overload_template_runme.lua 2009-08-14 01:33:23 UTC (rev 11557) @@ -2,12 +2,12 @@ import("overload_template") -- import code for k,v in pairs(overload_template) do _G[k]=v end -- move to global --- lua has only one numeric type, so max(int,int) and max(double,double) are the same +-- lua has only one numeric type, so maximum(int,int) and maximum(double,double) are the same -- whichever one was wrapper first will be used (which is int) f = foo() -a = max(3,4) +a = maximum(3,4) -- mix 1 assert(mix1("hi") == 101) Modified: trunk/Examples/test-suite/octave/overload_template_runme.m =================================================================== --- trunk/Examples/test-suite/octave/overload_template_runme.m 2009-08-14 01:14:49 UTC (rev 11556) +++ trunk/Examples/test-suite/octave/overload_template_runme.m 2009-08-14 01:33:23 UTC (rev 11557) @@ -1,8 +1,8 @@ overload_template f = foo(); -a = max(3,4); -b = max(3.4,5.2); +a = maximum(3,4); +b = maximum(3.4,5.2); # mix 1 if (mix1("hi") != 101) Modified: trunk/Examples/test-suite/overload_template.i =================================================================== --- trunk/Examples/test-suite/overload_template.i 2009-08-14 01:14:49 UTC (rev 11556) +++ trunk/Examples/test-suite/overload_template.i 2009-08-14 01:33:23 UTC (rev 11557) @@ -3,7 +3,7 @@ #ifdef SWIGLUA // lua only has one numeric type, so most of the overloads shadow each other creating warnings %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) foo; -%warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) max; +%warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) maximum; %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) specialization; %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) overload; %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) space::nsoverload; @@ -11,12 +11,6 @@ %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) barT; #endif -%{ -#ifdef max -#undef max -#endif -%} - %inline %{ int foo() { @@ -29,15 +23,15 @@ } template<class T> - T max(T a, T b) { return (a > b) ? a : b; } + T maximum(T a, T b) { return (a > b) ? a : b; } %} %template(foo) foo<int>; %template(foo) foo<double>; -%template(max) max<int>; -%template(max) max<double>; +%template(maximum) maximum<int>; +%template(maximum) maximum<double>; // Mix template overloading with plain function overload // Mix 1 Modified: trunk/Examples/test-suite/python/overload_template_runme.py =================================================================== --- trunk/Examples/test-suite/python/overload_template_runme.py 2009-08-14 01:14:49 UTC (rev 11556) +++ trunk/Examples/test-suite/python/overload_template_runme.py 2009-08-14 01:33:23 UTC (rev 11557) @@ -1,8 +1,8 @@ from overload_template import * f = foo() -a = max(3,4) -b = max(3.4,5.2) +a = maximum(3,4) +b = maximum(3.4,5.2) # mix 1 if (mix1("hi") != 101): Modified: trunk/Examples/test-suite/ruby/overload_template_runme.rb =================================================================== --- trunk/Examples/test-suite/ruby/overload_template_runme.rb 2009-08-14 01:14:49 UTC (rev 11556) +++ trunk/Examples/test-suite/ruby/overload_template_runme.rb 2009-08-14 01:33:23 UTC (rev 11557) @@ -13,5 +13,5 @@ f = Overload_template.foo() -a = Overload_template.max(3,4) -b = Overload_template.max(3.4,5.2) +a = Overload_template.maximum(3,4) +b = Overload_template.maximum(3.4,5.2) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-08-17 23:07:24
|
Revision: 11628 http://swig.svn.sourceforge.net/swig/?rev=11628&view=rev Author: wsfulton Date: 2009-08-17 23:07:16 +0000 (Mon, 17 Aug 2009) Log Message: ----------- Fix for r11557 rename of max to maximum Modified Paths: -------------- trunk/Examples/test-suite/lua/overload_template_fast_runme.lua trunk/Examples/test-suite/octave/overload_template_fast_runme.m trunk/Examples/test-suite/python/overload_template_fast_runme.py Modified: trunk/Examples/test-suite/lua/overload_template_fast_runme.lua =================================================================== --- trunk/Examples/test-suite/lua/overload_template_fast_runme.lua 2009-08-17 16:29:31 UTC (rev 11627) +++ trunk/Examples/test-suite/lua/overload_template_fast_runme.lua 2009-08-17 23:07:16 UTC (rev 11628) @@ -2,12 +2,12 @@ import("overload_template_fast") -- import code for k,v in pairs(overload_template_fast) do _G[k]=v end -- move to global --- lua has only one numeric type, so max(int,int) and max(double,double) are the same +-- lua has only one numeric type, so maximum(int,int) and maximum(double,double) are the same -- whichever one was wrapper first will be used (which is int) f = foo() -a = max(3,4) +a = maximum(3,4) -- mix 1 assert(mix1("hi") == 101) Modified: trunk/Examples/test-suite/octave/overload_template_fast_runme.m =================================================================== --- trunk/Examples/test-suite/octave/overload_template_fast_runme.m 2009-08-17 16:29:31 UTC (rev 11627) +++ trunk/Examples/test-suite/octave/overload_template_fast_runme.m 2009-08-17 23:07:16 UTC (rev 11628) @@ -5,8 +5,8 @@ f = foo(); -a = max(3,4); -b = max(3.4,5.2); +a = maximum(3,4); +b = maximum(3.4,5.2); # mix 1 if (mix1("hi") != 101) Modified: trunk/Examples/test-suite/python/overload_template_fast_runme.py =================================================================== --- trunk/Examples/test-suite/python/overload_template_fast_runme.py 2009-08-17 16:29:31 UTC (rev 11627) +++ trunk/Examples/test-suite/python/overload_template_fast_runme.py 2009-08-17 23:07:16 UTC (rev 11628) @@ -1,8 +1,8 @@ from overload_template_fast import * f = foo() -a = max(3,4) -b = max(3.4,5.2) +a = maximum(3,4) +b = maximum(3.4,5.2) # mix 1 if (mix1("hi") != 101): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |