adding more cases

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6814 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-12-01 01:17:56 +00:00
commit 52fe09a938
10 changed files with 79 additions and 14 deletions

View file

@ -406,3 +406,5 @@ voidtest_runme.py
wrapmacro.py
wrapmacro_runme.py
li_std_stream.py
swigobject.py
smart_pointer_member.py

View file

@ -51,8 +51,8 @@ p = li_std_pair.IntPair(1,10)
p.first = 1
p = li_std_pair.paircA1(1,a)
print 'f', p.first
print 's', p.second
p.first
p.second
p = li_std_pair.paircA2(1,a)
pp = li_std_pair.pairiiA(1,p)

View file

@ -1,13 +1,26 @@
%module li_std_stream
%inline %{
struct A;
%}
%include <std_iostream.i>
%include <std_sstream.i>
%pythoncallback(1) A::bar;
%callback(1) A::bar;
%inline %{
struct A
struct B {
virtual ~B()
{
}
};
struct A : B
{
void __add__(int a)
{
@ -25,8 +38,22 @@
{
return pf(a);
}
};
std::ostream& __rlshift__(std::ostream& out)
{
out << "A class";
return out;
}
};
%}
%extend std::basic_ostream<char, std::char_traits<char> >{
std::basic_ostream<char, std::char_traits<char> >&
operator<<(const A& a)
{
*self << "A class";
return *self;
}
}

View file

@ -1,10 +1,14 @@
import li_std_stream as std
std.cout << 2345 << " " << 1.435 << std.endl
std.endl(std.cout)
a = std.A()
a.bar(2)
a.foo(4, a.bar)
o = std.ostringstream()
o << a << " " << 2345 << " " << 1.435
if o.str() != "A class 2345 1.435":
print "\"%s\"" % (o.str(),)
raise RuntimeError

View file

@ -2,7 +2,6 @@
%include <std_basic_string.i>
%include <std_string.i>
%template(string) std::basic_string<char>;
%inline %{
struct A : std::string
@ -72,6 +71,19 @@ void test_throw() throw(std::string){
throw x;
}
std::basic_string<char> test_value_basic1(std::basic_string<char> x) {
return x;
}
std::basic_string<char,std::char_traits<char> > test_value_basic2(std::basic_string<char,std::char_traits<char> > x) {
return x;
}
std::basic_string<char,std::char_traits<char>,std::allocator<char> > test_value_basic3(std::basic_string<char,std::char_traits<char>,std::allocator<char> > x) {
return x;
}
%}

View file

@ -45,7 +45,9 @@ if li_std_string.test_const_reference(a) != x:
b = li_std_string.string(" world")
s = a + b
if a + b != "hello world":
print a + b
raise RuntimeError, "bad string mapping"
if a + " world" != "hello world":
@ -72,3 +74,12 @@ if b.a != "hello":
raise RuntimeError, "bad string mapping"
if li_std_string.test_value_basic1(x) != x:
raise RuntimeError, "bad string mapping"
if li_std_string.test_value_basic2(x) != x:
raise RuntimeError, "bad string mapping"
if li_std_string.test_value_basic3(x) != x:
raise RuntimeError, "bad string mapping"

View file

@ -3,7 +3,6 @@
%include <std_wstring.i>
%template(wstring) std::basic_string<wchar_t>;
%inline %{
struct A : std::wstring

View file

@ -3,5 +3,5 @@ import _profiletest
a = _profiletest.new_A()
b = _profiletest.new_B()
for i in range(0,1000000):
for i in range(0,10000000):
a = _profiletest.B_fn(b, a)

View file

@ -17,4 +17,9 @@
A *a_ptr(A *a){
return a;
}
void *v_ptr(void *a){
return a;
}
}

View file

@ -19,3 +19,8 @@ if xstr1 != xstr2:
s = str(a.this)
r = repr(a.this)
v1 = v_ptr(a)
v2 = v_ptr(a)
if long(v1) != long(v2):
raise RuntimeError