| from primitive_types import * |
| |
| var_init() |
| |
| # assigning globals calls |
| cvar.var_bool = sct_bool |
| cvar.var_schar = sct_schar |
| cvar.var_uchar = sct_uchar |
| cvar.var_int = sct_int |
| cvar.var_uint = sct_uint |
| cvar.var_short = sct_short |
| cvar.var_ushort = sct_ushort |
| cvar.var_long = sct_long |
| cvar.var_ulong = sct_ulong |
| cvar.var_llong = sct_llong |
| cvar.var_ullong = sct_ullong |
| cvar.var_char = sct_char |
| cvar.var_pchar = sct_pchar |
| cvar.var_pcharc = sct_pcharc |
| cvar.var_pint = sct_pint |
| cvar.var_sizet = sct_sizet |
| cvar.var_hello = sct_hello |
| cvar.var_myint = sct_myint |
| cvar.var_namet = def_namet |
| cvar.var_parami = sct_parami |
| cvar.var_paramd = sct_paramd |
| cvar.var_paramc = sct_paramc |
| |
| v_check() |
| |
| def pyerror(name, val, cte): |
| print "bad val/cte", name, val, cte |
| raise RuntimeError |
| pass |
| |
| if cvar.var_bool != cct_bool: pyerror("bool", cvar.var_bool, cct_bool) |
| if cvar.var_schar != cct_schar: pyerror("schar", cvar.var_schar, cct_schar) |
| if cvar.var_uchar != cct_uchar: pyerror("uchar", cvar.var_uchar, cct_uchar) |
| if cvar.var_int != cct_int: pyerror("int", cvar.var_int, cct_int) |
| if cvar.var_uint != cct_uint: pyerror("uint", cvar.var_uint, cct_uint) |
| if cvar.var_short != cct_short: pyerror("short", cvar.var_short, cct_short) |
| if cvar.var_ushort != cct_ushort: pyerror("ushort", cvar.var_ushort, cct_ushort) |
| if cvar.var_long != cct_long: pyerror("long", cvar.var_long, cct_long) |
| if cvar.var_ulong != cct_ulong: pyerror("ulong", cvar.var_ulong, cct_ulong) |
| if cvar.var_llong != cct_llong: pyerror("llong", cvar.var_llong, cct_llong) |
| if cvar.var_ullong != cct_ullong: pyerror("ullong", cvar.var_ullong, cct_ullong) |
| if cvar.var_char != cct_char: pyerror("char", cvar.var_char, cct_char) |
| if cvar.var_pchar != cct_pchar: pyerror("pchar", cvar.var_pchar, cct_pchar) |
| if cvar.var_pcharc != cct_pcharc: pyerror("pchar", cvar.var_pcharc, cct_pcharc) |
| if cvar.var_pint != cct_pint: pyerror("pint", cvar.var_pint, cct_pint) |
| if cvar.var_sizet != cct_sizet: pyerror("sizet", cvar.var_sizet, cct_sizet) |
| if cvar.var_hello != cct_hello: pyerror("hello", cvar.var_hello, cct_hello) |
| if cvar.var_myint != cct_myint: pyerror("myint", cvar.var_myint, cct_myint) |
| if cvar.var_namet != def_namet: pyerror("name", cvar.var_namet, def_namet) |
| |
| class PyTest (TestDirector): |
| def __init__(self): |
| TestDirector.__init__(self) |
| pass |
| def ident(self, x): |
| return x |
| |
| def vval_bool(self, x): return self.ident(x) |
| def vval_schar(self, x): return self.ident(x) |
| def vval_uchar(self, x): return self.ident(x) |
| def vval_int(self, x): return self.ident(x) |
| def vval_uint(self, x): return self.ident(x) |
| def vval_short(self, x): return self.ident(x) |
| def vval_ushort(self, x): return self.ident(x) |
| def vval_long(self, x): return self.ident(x) |
| def vval_ulong(self, x): return self.ident(x) |
| def vval_llong(self, x): return self.ident(x) |
| def vval_ullong(self, x): return self.ident(x) |
| def vval_float(self, x): return self.ident(x) |
| def vval_double(self, x): return self.ident(x) |
| def vval_char(self, x): return self.ident(x) |
| def vval_pchar(self, x): return self.ident(x) |
| def vval_pcharc(self, x): return self.ident(x) |
| def vval_pint(self, x): return self.ident(x) |
| def vval_sizet(self, x): return self.ident(x) |
| def vval_hello(self, x): return self.ident(x) |
| def vval_myint(self, x): return self.ident(x) |
| |
| def vref_bool(self, x): return self.ident(x) |
| def vref_schar(self, x): return self.ident(x) |
| def vref_uchar(self, x): return self.ident(x) |
| def vref_int(self, x): return self.ident(x) |
| def vref_uint(self, x): return self.ident(x) |
| def vref_short(self, x): return self.ident(x) |
| def vref_ushort(self, x): return self.ident(x) |
| def vref_long(self, x): return self.ident(x) |
| def vref_ulong(self, x): return self.ident(x) |
| def vref_llong(self, x): return self.ident(x) |
| def vref_ullong(self, x): return self.ident(x) |
| def vref_float(self, x): return self.ident(x) |
| def vref_double(self, x): return self.ident(x) |
| def vref_char(self, x): return self.ident(x) |
| def vref_pchar(self, x): return self.ident(x) |
| def vref_pcharc(self, x): return self.ident(x) |
| def vref_pint(self, x): return self.ident(x) |
| def vref_sizet(self, x): return self.ident(x) |
| def vref_hello(self, x): return self.ident(x) |
| def vref_myint(self, x): return self.ident(x) |
| |
| pass |
| |
| |
| t = Test() |
| p = PyTest() |
| |
| |
| # internal call check |
| if t.c_check() != p.c_check(): |
| raise RuntimeError, "bad director" |
| |
| p.var_bool = p.stc_bool |
| p.var_schar = p.stc_schar |
| p.var_uchar = p.stc_uchar |
| p.var_int = p.stc_int |
| p.var_uint = p.stc_uint |
| p.var_short = p.stc_short |
| p.var_ushort = p.stc_ushort |
| p.var_long = p.stc_long |
| p.var_ulong = p.stc_ulong |
| p.var_llong = p.stc_llong |
| p.var_ullong = p.stc_ullong |
| p.var_char = p.stc_char |
| p.var_pchar = sct_pchar |
| p.var_pcharc = sct_pcharc |
| p.var_pint = sct_pint |
| p.var_sizet = sct_sizet |
| p.var_hello = sct_hello |
| p.var_myint = sct_myint |
| p.var_namet = def_namet |
| p.var_parami = sct_parami |
| p.var_paramd = sct_paramd |
| p.var_paramc = sct_paramc |
| |
| p.v_check() |
| |
| |
| t.var_bool = t.stc_bool |
| t.var_schar = t.stc_schar |
| t.var_uchar = t.stc_uchar |
| t.var_int = t.stc_int |
| t.var_uint = t.stc_uint |
| t.var_short = t.stc_short |
| t.var_ushort = t.stc_ushort |
| t.var_long = t.stc_long |
| t.var_ulong = t.stc_ulong |
| t.var_llong = t.stc_llong |
| t.var_ullong = t.stc_ullong |
| t.var_char = t.stc_char |
| t.var_pchar = sct_pchar |
| t.var_pcharc = sct_pcharc |
| t.var_pint = sct_pint |
| t.var_sizet = sct_sizet |
| t.var_hello = sct_hello |
| t.var_myint = sct_myint |
| t.var_namet = def_namet |
| t.var_parami = sct_parami |
| t.var_paramd = sct_paramd |
| t.var_paramc = sct_paramc |
| |
| t.v_check() |
| |
| # this value contains a '0' char! |
| if def_namet != 'ho\0la': |
| print "bad namet", def_namet |
| raise RuntimeError |
| |
| t.var_namet = def_namet |
| if t.var_namet != def_namet: |
| print "bad namet", t.var_namet, def_namet |
| raise RuntimeError |
| |
| t.var_namet = 'holac' |
| |
| if t.var_namet != 'holac': |
| print "bad namet", t.var_namet |
| raise RuntimeError |
| |
| t.var_namet = 'hol' |
| |
| if t.var_namet != 'hol': |
| #if t.var_namet != 'hol\0\0': |
| print "bad namet", t.var_namet |
| raise RuntimeError |
| |
| |
| if t.strlen('hile') != 4: |
| print t.strlen('hile') |
| raise RuntimeError, "bad string typemap" |
| |
| if t.strlen('hil\0') != 4: |
| raise RuntimeError, "bad string typemap" |
| |
| |
| cvar.var_char = '\0' |
| if cvar.var_char != '\0': |
| raise RuntimeError, "bad char '0' case" |
| |
| cvar.var_char = 0 |
| if cvar.var_char != '\0': |
| raise RuntimeError, "bad char '0' case" |
| |
| cvar.var_namet = '\0' |
| #if cvar.var_namet != '\0\0\0\0\0': |
| if cvar.var_namet != '': |
| print 'hola', '', cvar.var_namet |
| raise RuntimeError, "bad char '\0' case" |
| |
| cvar.var_namet = '' |
| #if cvar.var_namet != '\0\0\0\0\0': |
| if cvar.var_namet != '': |
| raise RuntimeError, "bad char empty case" |
| |
| cvar.var_pchar = None |
| if cvar.var_pchar != None: |
| raise RuntimeError, "bad None case" |
| |
| cvar.var_pchar = '' |
| if cvar.var_pchar != '': |
| print '%c' % (cvar.var_pchar[0],) |
| raise RuntimeError, "bad char empty case" |
| |
| cvar.var_pcharc = None |
| if cvar.var_pcharc != None: |
| raise RuntimeError, "bad None case" |
| |
| cvar.var_pcharc = '' |
| if cvar.var_pcharc != '': |
| raise RuntimeError, "bad char empty case" |
| |
| |
| # |
| # creating a raw char* |
| # |
| pc = new_pchar(5) |
| pchar_setitem(pc, 0, 'h') |
| pchar_setitem(pc, 1, 'o') |
| pchar_setitem(pc, 2, 'l') |
| pchar_setitem(pc, 3, 'a') |
| pchar_setitem(pc, 4, 0) |
| |
| |
| if t.strlen(pc) != 4: |
| raise RuntimeError, "bad string typemap" |
| |
| cvar.var_pchar = pc |
| if cvar.var_pchar != "hola": |
| print cvar.var_pchar |
| raise RuntimeError, "bad pointer case" |
| |
| cvar.var_namet = pc |
| #if cvar.var_namet != "hola\0": |
| if cvar.var_namet != "hola": |
| raise RuntimeError, "bad pointer case" |
| |
| delete_pchar(pc) |
| |
| # |
| # Now when things should fail |
| # |
| |
| |
| try: |
| error = 0 |
| a = t.var_uchar |
| t.var_uchar = 10000 |
| error = 1 |
| except OverflowError: |
| if a != t.var_uchar: |
| error = 1 |
| pass |
| if error: |
| raise RuntimeError, "bad uchar typemap" |
| |
| |
| |
| try: |
| error = 0 |
| a = t.var_char |
| t.var_char = '23' |
| error = 1 |
| except TypeError: |
| if a != t.var_char: |
| error = 1 |
| pass |
| if error: |
| raise RuntimeError, "bad char typemap" |
| |
| try: |
| error = 0 |
| a = t.var_uint |
| t.var_uint = -1 |
| error = 1 |
| except OverflowError: |
| if a != t.var_uint: |
| error = 1 |
| pass |
| if error: |
| raise RuntimeError, "bad uint typemap" |
| |
| # |
| # |
| try: |
| error = 0 |
| a = t.var_namet |
| t.var_namet = '123456' |
| error = 1 |
| except TypeError: |
| if a != t.var_namet: |
| error = 1 |
| pass |
| if error: |
| raise RuntimeError, "bad namet typemap" |
| |
| # |
| # |
| # |
| t2 = p.vtest(t) |
| if t.var_namet != t2.var_namet: |
| raise RuntimeError, "bad SWIGTYPE* typemap" |
| |
| |
| if cvar.fixsize != 'ho\0la\0\0\0': |
| raise RuntimeError, "bad FIXSIZE typemap" |
| |
| cvar.fixsize = 'ho' |
| if cvar.fixsize != 'ho\0\0\0\0\0\0': |
| raise RuntimeError, "bad FIXSIZE typemap" |
| |
| |
| f = Foo(3) |
| f1 = fptr_val(f) |
| f2 = fptr_ref(f) |
| if f1._a != f2._a: |
| raise RuntimeError, "bad const ptr& typemap" |
| |
| |
| v = char_foo(1,3) |
| if v !=3: |
| raise RuntimeError, "bad int typemap" |
| |
| s = char_foo(1,"hello") |
| if s !="hello": |
| raise RuntimeError, "bad char* typemap" |
| |
| |
| v = SetPos(1,3) |
| if v !=4: |
| raise RuntimeError, "bad int typemap" |