added more test cases and broken ones
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6726 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
60d7c9aa60
commit
f1ad655a3e
12 changed files with 218 additions and 4 deletions
|
|
@ -57,3 +57,13 @@ void array_pointer_func(int (*x)[10]) {}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
typedef float FLOAT;
|
||||||
|
|
||||||
|
typedef FLOAT cartPosition_t[3];
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
cartPosition_t p;
|
||||||
|
} CartPoseData_t;
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,11 @@ LIBPREFIX = lib
|
||||||
|
|
||||||
# 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 += \
|
CPP_TEST_BROKEN += \
|
||||||
|
cpp_broken \
|
||||||
namespace_union \
|
namespace_union \
|
||||||
overload_complicated
|
nested_comment \
|
||||||
|
overload_complicated \
|
||||||
|
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 += \
|
C_TEST_BROKEN += \
|
||||||
|
|
@ -168,6 +171,7 @@ CPP_TEST_CASES += \
|
||||||
newobject1 \
|
newobject1 \
|
||||||
overload_copy \
|
overload_copy \
|
||||||
overload_extend \
|
overload_extend \
|
||||||
|
overload_rename \
|
||||||
overload_simple \
|
overload_simple \
|
||||||
overload_subtype \
|
overload_subtype \
|
||||||
overload_template \
|
overload_template \
|
||||||
|
|
@ -178,10 +182,12 @@ CPP_TEST_CASES += \
|
||||||
pure_virtual \
|
pure_virtual \
|
||||||
redefined \
|
redefined \
|
||||||
reference_global_vars \
|
reference_global_vars \
|
||||||
|
register_par \
|
||||||
rename_scope \
|
rename_scope \
|
||||||
return_const_value \
|
return_const_value \
|
||||||
return_value_scope \
|
return_value_scope \
|
||||||
rname \
|
rname \
|
||||||
|
sizet \
|
||||||
smart_pointer_const \
|
smart_pointer_const \
|
||||||
smart_pointer_const2 \
|
smart_pointer_const2 \
|
||||||
smart_pointer_multi \
|
smart_pointer_multi \
|
||||||
|
|
|
||||||
26
SWIG/Examples/test-suite/cpp_broken.i
Normal file
26
SWIG/Examples/test-suite/cpp_broken.i
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
%module cpp_broken
|
||||||
|
|
||||||
|
|
||||||
|
// bug #1060789
|
||||||
|
%inline %{
|
||||||
|
#define MASK(shift, size) (((1 << (size)) - 1) << (shift))
|
||||||
|
#define SOME_MASK_DEF (80*MASK(8, 10))
|
||||||
|
%}
|
||||||
|
|
||||||
|
// bug #1060079
|
||||||
|
%inline %{
|
||||||
|
#define FIELD(name, width) unsigned int name:width
|
||||||
|
#define SOME_CONST 2
|
||||||
|
#define NEXT_CONST (2 * SOME_CONST)
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
FIELD(a, SOME_CONST);
|
||||||
|
FIELD(b, NEXT_CONST);
|
||||||
|
} MyStruct_t;
|
||||||
|
%}
|
||||||
|
|
||||||
|
// bug #994301
|
||||||
|
%inline %{
|
||||||
|
#define max(a,b) ((a) > (b) ? (a) : (b))
|
||||||
|
%}
|
||||||
|
|
||||||
|
|
@ -69,9 +69,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class T> struct NameT {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef char name[8];
|
typedef char name[8];
|
||||||
typedef char namea[];
|
typedef char namea[];
|
||||||
|
|
||||||
|
typedef NameT<char> name_t[8];
|
||||||
|
|
||||||
char* test_a(char hello[8],
|
char* test_a(char hello[8],
|
||||||
char hi[],
|
char hi[],
|
||||||
|
|
@ -84,11 +89,26 @@
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* gcc doesn't like this one. Removing until reason resolved.
|
/* gcc doesn't like this one. Removing until reason resolved.*/
|
||||||
int test_c(const name& n1) {
|
int test_c(const name& n1) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
int test_d(name* n1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_e(const name_t& n1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_f(name_t n1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_g(name_t* n1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
struct Foo
|
struct Foo
|
||||||
{
|
{
|
||||||
|
|
|
||||||
21
SWIG/Examples/test-suite/nested_comment.i
Normal file
21
SWIG/Examples/test-suite/nested_comment.i
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
%module nested_comment
|
||||||
|
|
||||||
|
// this example shows a problem with 'dump_nested' (parser.y).
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
typedef struct s1 {
|
||||||
|
union {
|
||||||
|
int fsc; /* genie structure hiding - Conductor
|
||||||
|
*/
|
||||||
|
int fso; /* genie structure hiding - FSOptions
|
||||||
|
*/
|
||||||
|
struct {
|
||||||
|
double *vals;
|
||||||
|
int size;
|
||||||
|
} vector_val; /* matrix values are mainly used
|
||||||
|
in rlgc models */
|
||||||
|
char *name;
|
||||||
|
} n ;
|
||||||
|
} s2;
|
||||||
|
|
||||||
|
%}
|
||||||
28
SWIG/Examples/test-suite/overload_rename.i
Normal file
28
SWIG/Examples/test-suite/overload_rename.i
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
%module overload_rename
|
||||||
|
|
||||||
|
|
||||||
|
%{
|
||||||
|
|
||||||
|
class Foo {
|
||||||
|
public:
|
||||||
|
Foo(float a, float b=1.0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
r
|
||||||
|
Foo(float a, int c, float b=1.0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
||||||
|
%rename(Foo_int) Foo::Foo(float a, int c, float b=1.0);
|
||||||
|
|
||||||
|
class Foo {
|
||||||
|
public:
|
||||||
|
Foo(float a, float b=1.0);
|
||||||
|
Foo(float a, int c, float b=1.0);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -75,3 +75,8 @@ run_testcase = \
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile python_clean
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile python_clean
|
||||||
|
|
||||||
|
cvsignore:
|
||||||
|
@echo '*wrap* *.pyc *.so *.dll *.exp *.lib'
|
||||||
|
@echo Makefile
|
||||||
|
@for i in ${CPP_TEST_CASES} ${C_TEST_CASES}; do echo $$i.py; done
|
||||||
|
@for i in ${CPP_TEST_CASES} ${C_TEST_CASES}; do if grep -q $${i}_runme.py CVS/Entries ; then echo $${i}_runme.py; fi; done
|
||||||
|
|
|
||||||
8
SWIG/Examples/test-suite/python/overload_rename_runme.py
Normal file
8
SWIG/Examples/test-suite/python/overload_rename_runme.py
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import overload_rename
|
||||||
|
|
||||||
|
|
||||||
|
f = overload_rename.Foo(1)
|
||||||
|
f = overload_rename.Foo(1,1)
|
||||||
|
f = overload_rename.Foo_int(1,1)
|
||||||
|
f = overload_rename.Foo_int(1,1,1)
|
||||||
|
|
||||||
6
SWIG/Examples/test-suite/register_par.i
Normal file
6
SWIG/Examples/test-suite/register_par.i
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
%module register_par
|
||||||
|
|
||||||
|
// bug # 924413
|
||||||
|
%inline {
|
||||||
|
void clear_tree_flags(register struct tree *tp, register int i);
|
||||||
|
}
|
||||||
44
SWIG/Examples/test-suite/sizet.i
Normal file
44
SWIG/Examples/test-suite/sizet.i
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
%module sizet
|
||||||
|
%{
|
||||||
|
#include <vector>
|
||||||
|
%}
|
||||||
|
|
||||||
|
%include "std_common.i"
|
||||||
|
%include "std_vector.i"
|
||||||
|
|
||||||
|
%inline
|
||||||
|
{
|
||||||
|
size_t test1(size_t s)
|
||||||
|
{
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::size_t test2(std::size_t s)
|
||||||
|
{
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::size_t& test3(const std::size_t& s)
|
||||||
|
{
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef SWIGPYTHON
|
||||||
|
%template(vectors) std::vector<unsigned long>;
|
||||||
|
|
||||||
|
%inline
|
||||||
|
{
|
||||||
|
std::vector<std::size_t> testv1(std::vector<std::size_t> s)
|
||||||
|
{
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::vector<std::size_t>& testv2(const std::vector<std::size_t>& s)
|
||||||
|
{
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
25
SWIG/Examples/test-suite/template_expr.i
Normal file
25
SWIG/Examples/test-suite/template_expr.i
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
%module template_expr
|
||||||
|
|
||||||
|
// bug #925555
|
||||||
|
%inline %{
|
||||||
|
|
||||||
|
template<int __stride, class __elementTypeSequence,
|
||||||
|
class __dataPtrType, class __elementType>
|
||||||
|
inline const ThisType &
|
||||||
|
ConcatenationOf(const vctFixedLengthConstSequenceBase<_size - 1,
|
||||||
|
__stride, __elementTypeSequence, __dataPtrType> & other,
|
||||||
|
__elementType last);
|
||||||
|
%}
|
||||||
|
|
||||||
|
// bug #956282
|
||||||
|
%inline %{
|
||||||
|
|
||||||
|
|
||||||
|
template<int q>
|
||||||
|
class X {};
|
||||||
|
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
||||||
|
%template(X_1) X<1>;
|
||||||
|
%template(X_m1) X<-1>;
|
||||||
|
|
@ -8,3 +8,18 @@ struct Foo {
|
||||||
};
|
};
|
||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
%ignore jbuf_tag;
|
||||||
|
%inline %{
|
||||||
|
|
||||||
|
typedef struct jbuf_tag
|
||||||
|
{
|
||||||
|
int mask;
|
||||||
|
} jbuf[1];
|
||||||
|
|
||||||
|
struct Ast_channel {
|
||||||
|
jbuf jmp[32];
|
||||||
|
};
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue