Final merge from trunk

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/szager-python-builtin@12595 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Stefan Zager 2011-04-03 07:37:35 +00:00
commit 0cdf8658c7
9 changed files with 114 additions and 165 deletions

View file

@ -526,8 +526,6 @@ wallkw.cpptest: SWIGOPT += -Wallkw
preproc_include.ctest: SWIGOPT += -includeall
NOT_BROKEN_C_TEST_CASES = $(C_TEST_CASES:=.ctest)
NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \
$(C_TEST_CASES:=.ctest) \
$(MULTI_CPP_TEST_CASES:=.multicpptest) \
@ -549,8 +547,6 @@ all: $(BROKEN_TEST_CASES) $(NOT_BROKEN_TEST_CASES)
check: $(NOT_BROKEN_TEST_CASES)
check-c : $(NOT_BROKEN_C_TEST_CASES)
# partialcheck target runs SWIG only, ie no compilation or running of tests (for a subset of languages)
partialcheck:
$(MAKE) check CC=true CXX=true LDSHARED=true CXXSHARED=true RUNTOOL=true COMPILETOOL=true

View file

@ -1,124 +1,83 @@
import default_constructor
# This test is expected to fail with -builtin option.
# It uses the old static syntax (e.g., dc.new_A() rather than dc.A()),
# which is not provided with the -builtin option.
dc = default_constructor
import _default_constructor
# Old static syntax not supported
#a = dc.new_A()
#dc.delete_A(a)
a = dc.A()
del a
dc = _default_constructor
# Old static syntax not supported
#aa = dc.new_AA()
#dc.delete_AA(aa)
aa = dc.AA()
del aa
a = dc.new_A()
dc.delete_A(a)
aa = dc.new_AA()
dc.delete_AA(aa)
try:
# Old static syntax not supported
#b = dc.new_B()
b = dc.B()
b = dc.new_B()
print "Whoa. new_BB created."
except:
pass
# Old static syntax not supported.
# Swig builtin types have no tp_del entry (only tp_dealloc).
#del_b = dc.delete_B
del_b = dc.delete_B
try:
# Old static syntax not supported.
#bb = dc.new_BB();
bb = dc.BB()
bb = dc.new_BB();
print "Whoa. new_BB created."
except:
pass
# Old static syntax not supported.
# Swig builtin types have no tp_del entry (only tp_dealloc).
#del_bb = dc.delete_BB
del_bb = dc.delete_BB
try:
# Old static syntax not supported
#c = dc.new_C()
c = dc.C()
c = dc.new_C()
print "Whoa. new_C created."
except:
pass
# Old static syntax not supported.
# Swig builtin types have no tp_del entry (only tp_dealloc).
#del_c = dc.delete_C
del_c = dc.delete_C
# Old static syntax not supported.
#cc = dc.new_CC()
#dc.delete_CC(cc)
cc = dc.CC()
del cc
cc = dc.new_CC()
dc.delete_CC(cc)
try:
# Old static syntax not supported.
#d = dc.new_D();
d = dc.D()
d = dc.new_D();
print "Whoa. new_D created"
except:
pass
# Old static syntax not supported.
# Swig builtin types have no tp_del entry (only tp_dealloc).
#del_d = dc.delete_D
del_d = dc.delete_D
try:
# Old static syntax not supported.
#dd = dc.new_DD()
dd = dc.DD()
dd = dc.new_DD()
print "Whoa. new_DD created"
except:
pass
# Old static syntax not supported.
# Swig builtin types have no tp_del entry (only tp_dealloc).
#dd = dc.delete_DD
dd = dc.delete_DD
try:
# Old static syntax not supported.
#ad = dc.new_AD()
ad = dc.AD()
ad = dc.new_AD()
print "Whoa. new_AD created"
except:
pass
# Old static syntax not supported.
# Swig builtin types have no tp_del entry (only tp_dealloc).
#del_ad = dc.delete_AD
del_ad = dc.delete_AD
# Old static syntax not supported.
#e = dc.new_E()
#dc.delete_E(e)
e = dc.E()
del e
e = dc.new_E()
dc.delete_E(e)
# Old static syntax not supported.
#ee = dc.new_EE()
#dc.delete_EE(ee)
ee = dc.EE()
del ee
ee = dc.new_EE()
dc.delete_EE(ee)
try:
# Old static syntax not supported.
#eb = dc.new_EB()
eb = dc.EB()
eb = dc.new_EB()
print "Whoa. new_EB created"
except:
pass
# Old static syntax not supported.
# Swig builtin types have no tp_del entry (only tp_dealloc).
#del_eb = dc.delete_EB
del_eb = dc.delete_EB
# Old static syntax not supported.
#f = dc.new_F()
f = dc.F()
f = dc.new_F()
try:
del_f = dc.delete_F
@ -126,27 +85,18 @@ try:
except AttributeError:
pass
# Old static syntax not supported.
#dc.F_destroy(f)
f.destroy()
# Old static syntax not supported.
#ff = dc.new_FFF()
ff = dc.FFF()
dc.F_destroy(f)
ff = dc.new_FFF()
try:
del_ff = dc.delete_FFF
print "Whoa. delete_FFF created"
except AttributeError:
pass
# Old static syntax not supported.
#dc.F_destroy(ff)
ff.destroy()
dc.F_destroy(ff)
# Old static syntax not supported.
#g = dc.new_G()
g = dc.G()
g = dc.new_G()
try:
del_g = dc.delete_G
@ -154,13 +104,11 @@ try:
except AttributeError:
pass
dc.G.destroy(g)
dc.G_destroy(g)
gg = dc.new_GG()
dc.delete_GG(gg)
# Old static syntax not supported.
#gg = dc.new_GG()
#dc.delete_GG(gg)
gg = dc.GG()
del gg
import default_constructor
hh = default_constructor.HH(1,1)

View file

@ -66,14 +66,16 @@ except MyException, e:
if not ok:
raise RuntimeError
# This is expected to fail with -builtin option
# Throwing builtin classes as exceptions not supported
#try:
# raise Exception2()
#except Exception2:
# pass
try:
raise Exception2()
except Exception2:
pass
# This is expected to fail with -builtin option
# Throwing builtin classes as exceptions not supported
#try:
# raise Exception1()
#except Exception1:
# pass
try:
raise Exception1()
except Exception1:
pass

View file

@ -1,25 +1,23 @@
from exception_order import *
# This test is expected to fail with -builtin option.
# Throwing builtin classes as exceptions not supported
a = A()
try:
a.foo()
# Throwing builtin classes as exceptions not supported
#except E1,e:
# pass
except:
# raise RuntimeError, "bad exception order"
except E1,e:
pass
except:
raise RuntimeError, "bad exception order"
try:
a.bar()
# Throwing builtin classes as exceptions not supported
#except E2,e:
# pass
except:
# raise RuntimeError, "bad exception order"
except E2,e:
pass
except:
raise RuntimeError, "bad exception order"
try:
a.foobar()
@ -32,18 +30,14 @@ except RuntimeError,e:
try:
a.barfoo(1)
# Throwing builtin classes as exceptions not supported
#except E1,e:
# pass
except:
# raise RuntimeError, "bad exception order"
except E1,e:
pass
except:
raise RuntimeError, "bad exception order"
try:
a.barfoo(2)
# Throwing builtin classes as exceptions not supported
#except E2,e:
# pass
except:
# raise RuntimeError, "bad exception order"
except E2,e:
pass
except:
raise RuntimeError, "bad exception order"

View file

@ -54,14 +54,16 @@ if a + b != "hello world":
if a + " world" != "hello world":
raise RuntimeError, "bad string mapping"
# This is expected to fail with -builtin option
# Reverse operators not supported in builtin types
#if "hello" + b != "hello world":
# raise RuntimeError, "bad string mapping"
if "hello" + b != "hello world":
raise RuntimeError, "bad string mapping"
# This is expected to fail with -builtin option
# Reverse operators not supported in builtin types
#c = "hello" + b
#if c.find_last_of("l") != 9:
# raise RuntimeError, "bad string mapping"
c = "hello" + b
if c.find_last_of("l") != 9:
raise RuntimeError, "bad string mapping"
s = "hello world"

View file

@ -4,21 +4,21 @@ x=u"h"
if li_std_wstring.test_wcvalue(x) != x:
print li_std_wstring.test_wcvalue(x)
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
x=u"hello"
if li_std_wstring.test_ccvalue(x) != x:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if li_std_wstring.test_cvalue(x) != x:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if li_std_wstring.test_value(x) != x:
print x, li_std_wstring.test_value(x)
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if li_std_wstring.test_const_reference(x) != x:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
s = li_std_wstring.wstring(u"he")
@ -26,41 +26,41 @@ s = s + u"llo"
if s != x:
print s, x
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if s[1:4] != x[1:4]:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if li_std_wstring.test_value(s) != x:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if li_std_wstring.test_const_reference(s) != x:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
a = li_std_wstring.A(s)
if li_std_wstring.test_value(a) != x:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if li_std_wstring.test_const_reference(a) != x:
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
b = li_std_wstring.wstring(" world")
if a + b != "hello world":
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
if a + " world" != "hello world":
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
# With -builtin option, no reverse binary operators
#if "hello" + b != "hello world":
# raise RuntimeError, "bad string mapping"
# This is expected to fail if -builtin is used
if "hello" + b != "hello world":
raise RuntimeError("bad string mapping")
# With -builtin option, no reverse binary operators
#c = "hello" + b
#if c.find_last_of("l") != 9:
# raise RuntimeError, "bad string mapping"
# This is expected to fail if -builtin is used
c = "hello" + b
if c.find_last_of("l") != 9:
raise RuntimeError("bad string mapping")
s = "hello world"
@ -68,11 +68,11 @@ b = li_std_wstring.B("hi")
b.name = li_std_wstring.wstring(u"hello")
if b.name != "hello":
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")
b.a = li_std_wstring.A("hello")
if b.a != u"hello":
raise RuntimeError, "bad string mapping"
raise RuntimeError("bad string mapping")

View file

@ -1,9 +1,12 @@
from python_abstractbase import *
from collections import *
# This is expected to fail with -builtin option
# Builtin types can't inherit from pure-python abstract bases
#assert issubclass(Mapii, MutableMapping)
#assert issubclass(Multimapii, MutableMapping)
#assert issubclass(IntSet, MutableSet)
#assert issubclass(IntMultiset, MutableSet)
#assert issubclass(IntVector, MutableSequence)
#assert issubclass(IntList, MutableSequence)
assert issubclass(Mapii, MutableMapping)
assert issubclass(Multimapii, MutableMapping)
assert issubclass(IntSet, MutableSet)
assert issubclass(IntMultiset, MutableSet)
assert issubclass(IntVector, MutableSequence)
assert issubclass(IntList, MutableSequence)

View file

@ -13,7 +13,6 @@ except:
if not err:
raise RuntimeError, "A is not static"
class B(python_nondynamic.A):
c = 4
def __init__(self):
@ -21,13 +20,18 @@ class B(python_nondynamic.A):
pass
pass
bb = B()
# This is questionable. Trying to set B.c? That's not what it does.
# Should fail, I think, but it doesn't.
#bb.c = 3
try:
bb.c = 3
err = 0
except:
err = 1
if not err:
print "bb.c = %d" % bb.c
print "B.c = %d" % B.c
raise RuntimeError, "B.c class variable messes up nondynamic-ness of B"
try:
bb.d = 2
@ -38,6 +42,5 @@ except:
if not err:
raise RuntimeError, "B is not static"
cc = python_nondynamic.C()
cc.d = 3

View file

@ -18,9 +18,10 @@ except RuntimeError,e:
if e.args[0] != "I died.":
raise RuntimeError
try:
# This is expected fail with -builtin option
# Throwing builtin classes as exceptions not supported
# t.hosed()
try:
t.hosed()
pass
except threads_exception.Exc,e:
if e.code != 42: