add more cases and flag for valgrind
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@8098 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
c23dd13d92
commit
70bb5455a6
2 changed files with 58 additions and 2 deletions
|
|
@ -4,8 +4,11 @@
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
LANGUAGE = python
|
LANGUAGE = python
|
||||||
#PYTHON = valgrind --leak-check=full --show-reachable=yes @PYTHON@
|
ifneq (,$(USE_VALGRIND))
|
||||||
|
PYTHON = valgrind --leak-check=full --suppressions=pyswig.supp @PYTHON@
|
||||||
|
else
|
||||||
PYTHON = @PYTHON@
|
PYTHON = @PYTHON@
|
||||||
|
endif
|
||||||
SCRIPTSUFFIX = _runme.py
|
SCRIPTSUFFIX = _runme.py
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
|
|
@ -24,6 +27,7 @@ CPP_TEST_CASES += \
|
||||||
inout \
|
inout \
|
||||||
input \
|
input \
|
||||||
inplaceadd \
|
inplaceadd \
|
||||||
|
implicittest \
|
||||||
kwargs \
|
kwargs \
|
||||||
li_cstring \
|
li_cstring \
|
||||||
li_cwstring \
|
li_cwstring \
|
||||||
|
|
@ -40,7 +44,8 @@ CPP_TEST_CASES += \
|
||||||
std_containers \
|
std_containers \
|
||||||
swigobject \
|
swigobject \
|
||||||
template_matrix \
|
template_matrix \
|
||||||
simutry
|
simutry \
|
||||||
|
vector
|
||||||
|
|
||||||
|
|
||||||
C_TEST_CASES += \
|
C_TEST_CASES += \
|
||||||
|
|
|
||||||
51
SWIG/Examples/test-suite/python/vector.i
Normal file
51
SWIG/Examples/test-suite/python/vector.i
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
%module vector
|
||||||
|
%{
|
||||||
|
#include <vector>
|
||||||
|
%}
|
||||||
|
|
||||||
|
%define SWIG_STD_VECTOR_MINIMUM(CSTYPE, CTYPE...)
|
||||||
|
public:
|
||||||
|
typedef size_t size_type;
|
||||||
|
typedef CTYPE value_type;
|
||||||
|
size_type size() const;
|
||||||
|
vector();
|
||||||
|
%extend {
|
||||||
|
static std::vector<CTYPE > *Repeat(const value_type& value, int count) /*throw (std::out_of_range)*/ {
|
||||||
|
// if (count < 0)
|
||||||
|
// throw std::out_of_range("count");
|
||||||
|
return new std::vector<CTYPE >(count, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%enddef
|
||||||
|
|
||||||
|
namespace std {
|
||||||
|
// primary (unspecialized) class template for std::vector
|
||||||
|
// does not require operator== to be defined
|
||||||
|
template<class T> class vector {
|
||||||
|
SWIG_STD_VECTOR_MINIMUM(T, T)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
%define SWIG_STD_VECTOR_SPECIALIZE(CSTYPE, CTYPE...)
|
||||||
|
namespace std {
|
||||||
|
template<> class vector<CTYPE > {
|
||||||
|
SWIG_STD_VECTOR_MINIMUM(CSTYPE, CTYPE)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
%enddef
|
||||||
|
|
||||||
|
SWIG_STD_VECTOR_SPECIALIZE(float, float)
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
typedef float Real;
|
||||||
|
%}
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
//fails
|
||||||
|
namespace std {
|
||||||
|
%template(RealVector) vector<int>;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
//works
|
||||||
|
%template(RealVector) std::vector<Real>;
|
||||||
|
#endif
|
||||||
Loading…
Add table
Add a link
Reference in a new issue