add test for wstring

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5828 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-04-05 20:08:55 +00:00
commit 39e2071d68
2 changed files with 150 additions and 0 deletions

View file

@ -0,0 +1,78 @@
%module lib_std_wstring
%include "std_wstring.i"
%template(wstring) std::basic_string<wchar_t>;
%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;
};
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;
}
void test_throw() throw(std::wstring){
static std::wstring x = L"x";
throw x;
}
%}

View file

@ -0,0 +1,72 @@
import lib_std_wstring
x=u"hello"
if lib_std_wstring.test_ccvalue(x) != x:
raise RuntimeError, "bad string mapping"
if lib_std_wstring.test_cvalue(x) != x:
raise RuntimeError, "bad string mapping"
if lib_std_wstring.test_value(x) != x:
print x, lib_std_wstring.test_value(x)
raise RuntimeError, "bad string mapping"
if lib_std_wstring.test_const_reference(x) != x:
raise RuntimeError, "bad string mapping"
s = lib_std_wstring.wstring(u"he")
s += u"llo"
if s != x:
print s, x
raise RuntimeError, "bad string mapping"
if s[1:4] != x[1:4]:
raise RuntimeError, "bad string mapping"
if lib_std_wstring.test_value(s) != x:
raise RuntimeError, "bad string mapping"
if lib_std_wstring.test_const_reference(s) != x:
raise RuntimeError, "bad string mapping"
a = lib_std_wstring.A(s)
if lib_std_wstring.test_value(a) != x:
raise RuntimeError, "bad string mapping"
if lib_std_wstring.test_const_reference(a) != x:
raise RuntimeError, "bad string mapping"
b = lib_std_wstring.wstring(" world")
if a + b != "hello world":
raise RuntimeError, "bad string mapping"
if a + " world" != "hello world":
raise RuntimeError, "bad string mapping"
if "hello" + b != "hello world":
raise RuntimeError, "bad string mapping"
c = "hello" + b
if c.find_last_of("l") != 9:
raise RuntimeError, "bad string mapping"
s = "hello world"
b = lib_std_wstring.B("hi")
b.name = u"hello"
if b.name != "hello":
raise RuntimeError, "bad string mapping"
b.a = lib_std_wstring.A("hello")
if b.a != u"hello":
raise RuntimeError, "bad string mapping"