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:
commit
0cdf8658c7
9 changed files with 114 additions and 165 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue