PageRenderTime 39ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/python/primitive_types_runme.py

#
Python | 342 lines | 309 code | 28 blank | 5 comment | 27 complexity | d385811f59bc39a0294dfaeb4551d93d MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. from primitive_types import *
  2. var_init()
  3. # assigning globals calls
  4. cvar.var_bool = sct_bool
  5. cvar.var_schar = sct_schar
  6. cvar.var_uchar = sct_uchar
  7. cvar.var_int = sct_int
  8. cvar.var_uint = sct_uint
  9. cvar.var_short = sct_short
  10. cvar.var_ushort = sct_ushort
  11. cvar.var_long = sct_long
  12. cvar.var_ulong = sct_ulong
  13. cvar.var_llong = sct_llong
  14. cvar.var_ullong = sct_ullong
  15. cvar.var_char = sct_char
  16. cvar.var_pchar = sct_pchar
  17. cvar.var_pcharc = sct_pcharc
  18. cvar.var_pint = sct_pint
  19. cvar.var_sizet = sct_sizet
  20. cvar.var_hello = sct_hello
  21. cvar.var_myint = sct_myint
  22. cvar.var_namet = def_namet
  23. cvar.var_parami = sct_parami
  24. cvar.var_paramd = sct_paramd
  25. cvar.var_paramc = sct_paramc
  26. v_check()
  27. def pyerror(name, val, cte):
  28. print "bad val/cte", name, val, cte
  29. raise RuntimeError
  30. pass
  31. if cvar.var_bool != cct_bool: pyerror("bool", cvar.var_bool, cct_bool)
  32. if cvar.var_schar != cct_schar: pyerror("schar", cvar.var_schar, cct_schar)
  33. if cvar.var_uchar != cct_uchar: pyerror("uchar", cvar.var_uchar, cct_uchar)
  34. if cvar.var_int != cct_int: pyerror("int", cvar.var_int, cct_int)
  35. if cvar.var_uint != cct_uint: pyerror("uint", cvar.var_uint, cct_uint)
  36. if cvar.var_short != cct_short: pyerror("short", cvar.var_short, cct_short)
  37. if cvar.var_ushort != cct_ushort: pyerror("ushort", cvar.var_ushort, cct_ushort)
  38. if cvar.var_long != cct_long: pyerror("long", cvar.var_long, cct_long)
  39. if cvar.var_ulong != cct_ulong: pyerror("ulong", cvar.var_ulong, cct_ulong)
  40. if cvar.var_llong != cct_llong: pyerror("llong", cvar.var_llong, cct_llong)
  41. if cvar.var_ullong != cct_ullong: pyerror("ullong", cvar.var_ullong, cct_ullong)
  42. if cvar.var_char != cct_char: pyerror("char", cvar.var_char, cct_char)
  43. if cvar.var_pchar != cct_pchar: pyerror("pchar", cvar.var_pchar, cct_pchar)
  44. if cvar.var_pcharc != cct_pcharc: pyerror("pchar", cvar.var_pcharc, cct_pcharc)
  45. if cvar.var_pint != cct_pint: pyerror("pint", cvar.var_pint, cct_pint)
  46. if cvar.var_sizet != cct_sizet: pyerror("sizet", cvar.var_sizet, cct_sizet)
  47. if cvar.var_hello != cct_hello: pyerror("hello", cvar.var_hello, cct_hello)
  48. if cvar.var_myint != cct_myint: pyerror("myint", cvar.var_myint, cct_myint)
  49. if cvar.var_namet != def_namet: pyerror("name", cvar.var_namet, def_namet)
  50. class PyTest (TestDirector):
  51. def __init__(self):
  52. TestDirector.__init__(self)
  53. pass
  54. def ident(self, x):
  55. return x
  56. def vval_bool(self, x): return self.ident(x)
  57. def vval_schar(self, x): return self.ident(x)
  58. def vval_uchar(self, x): return self.ident(x)
  59. def vval_int(self, x): return self.ident(x)
  60. def vval_uint(self, x): return self.ident(x)
  61. def vval_short(self, x): return self.ident(x)
  62. def vval_ushort(self, x): return self.ident(x)
  63. def vval_long(self, x): return self.ident(x)
  64. def vval_ulong(self, x): return self.ident(x)
  65. def vval_llong(self, x): return self.ident(x)
  66. def vval_ullong(self, x): return self.ident(x)
  67. def vval_float(self, x): return self.ident(x)
  68. def vval_double(self, x): return self.ident(x)
  69. def vval_char(self, x): return self.ident(x)
  70. def vval_pchar(self, x): return self.ident(x)
  71. def vval_pcharc(self, x): return self.ident(x)
  72. def vval_pint(self, x): return self.ident(x)
  73. def vval_sizet(self, x): return self.ident(x)
  74. def vval_hello(self, x): return self.ident(x)
  75. def vval_myint(self, x): return self.ident(x)
  76. def vref_bool(self, x): return self.ident(x)
  77. def vref_schar(self, x): return self.ident(x)
  78. def vref_uchar(self, x): return self.ident(x)
  79. def vref_int(self, x): return self.ident(x)
  80. def vref_uint(self, x): return self.ident(x)
  81. def vref_short(self, x): return self.ident(x)
  82. def vref_ushort(self, x): return self.ident(x)
  83. def vref_long(self, x): return self.ident(x)
  84. def vref_ulong(self, x): return self.ident(x)
  85. def vref_llong(self, x): return self.ident(x)
  86. def vref_ullong(self, x): return self.ident(x)
  87. def vref_float(self, x): return self.ident(x)
  88. def vref_double(self, x): return self.ident(x)
  89. def vref_char(self, x): return self.ident(x)
  90. def vref_pchar(self, x): return self.ident(x)
  91. def vref_pcharc(self, x): return self.ident(x)
  92. def vref_pint(self, x): return self.ident(x)
  93. def vref_sizet(self, x): return self.ident(x)
  94. def vref_hello(self, x): return self.ident(x)
  95. def vref_myint(self, x): return self.ident(x)
  96. pass
  97. t = Test()
  98. p = PyTest()
  99. # internal call check
  100. if t.c_check() != p.c_check():
  101. raise RuntimeError, "bad director"
  102. p.var_bool = p.stc_bool
  103. p.var_schar = p.stc_schar
  104. p.var_uchar = p.stc_uchar
  105. p.var_int = p.stc_int
  106. p.var_uint = p.stc_uint
  107. p.var_short = p.stc_short
  108. p.var_ushort = p.stc_ushort
  109. p.var_long = p.stc_long
  110. p.var_ulong = p.stc_ulong
  111. p.var_llong = p.stc_llong
  112. p.var_ullong = p.stc_ullong
  113. p.var_char = p.stc_char
  114. p.var_pchar = sct_pchar
  115. p.var_pcharc = sct_pcharc
  116. p.var_pint = sct_pint
  117. p.var_sizet = sct_sizet
  118. p.var_hello = sct_hello
  119. p.var_myint = sct_myint
  120. p.var_namet = def_namet
  121. p.var_parami = sct_parami
  122. p.var_paramd = sct_paramd
  123. p.var_paramc = sct_paramc
  124. p.v_check()
  125. t.var_bool = t.stc_bool
  126. t.var_schar = t.stc_schar
  127. t.var_uchar = t.stc_uchar
  128. t.var_int = t.stc_int
  129. t.var_uint = t.stc_uint
  130. t.var_short = t.stc_short
  131. t.var_ushort = t.stc_ushort
  132. t.var_long = t.stc_long
  133. t.var_ulong = t.stc_ulong
  134. t.var_llong = t.stc_llong
  135. t.var_ullong = t.stc_ullong
  136. t.var_char = t.stc_char
  137. t.var_pchar = sct_pchar
  138. t.var_pcharc = sct_pcharc
  139. t.var_pint = sct_pint
  140. t.var_sizet = sct_sizet
  141. t.var_hello = sct_hello
  142. t.var_myint = sct_myint
  143. t.var_namet = def_namet
  144. t.var_parami = sct_parami
  145. t.var_paramd = sct_paramd
  146. t.var_paramc = sct_paramc
  147. t.v_check()
  148. # this value contains a '0' char!
  149. if def_namet != 'ho\0la':
  150. print "bad namet", def_namet
  151. raise RuntimeError
  152. t.var_namet = def_namet
  153. if t.var_namet != def_namet:
  154. print "bad namet", t.var_namet, def_namet
  155. raise RuntimeError
  156. t.var_namet = 'holac'
  157. if t.var_namet != 'holac':
  158. print "bad namet", t.var_namet
  159. raise RuntimeError
  160. t.var_namet = 'hol'
  161. if t.var_namet != 'hol':
  162. #if t.var_namet != 'hol\0\0':
  163. print "bad namet", t.var_namet
  164. raise RuntimeError
  165. cvar.var_char = '\0'
  166. if cvar.var_char != '\0':
  167. raise RuntimeError, "bad char '0' case"
  168. cvar.var_char = 0
  169. if cvar.var_char != '\0':
  170. raise RuntimeError, "bad char '0' case"
  171. cvar.var_namet = '\0'
  172. #if cvar.var_namet != '\0\0\0\0\0':
  173. if cvar.var_namet != '':
  174. print 'hola', '', cvar.var_namet
  175. raise RuntimeError, "bad char '\0' case"
  176. cvar.var_namet = ''
  177. #if cvar.var_namet != '\0\0\0\0\0':
  178. if cvar.var_namet != '':
  179. raise RuntimeError, "bad char empty case"
  180. cvar.var_pchar = None
  181. if cvar.var_pchar != None:
  182. raise RuntimeError, "bad None case"
  183. cvar.var_pchar = ''
  184. if cvar.var_pchar != '':
  185. print '%c' % (cvar.var_pchar[0],)
  186. raise RuntimeError, "bad char empty case"
  187. cvar.var_pcharc = None
  188. if cvar.var_pcharc != None:
  189. raise RuntimeError, "bad None case"
  190. cvar.var_pcharc = ''
  191. if cvar.var_pcharc != '':
  192. raise RuntimeError, "bad char empty case"
  193. #
  194. # creating a raw char*
  195. #
  196. pc = new_pchar(5)
  197. pchar_setitem(pc, 0, 'h')
  198. pchar_setitem(pc, 1, 'o')
  199. pchar_setitem(pc, 2, 'l')
  200. pchar_setitem(pc, 3, 'a')
  201. pchar_setitem(pc, 4, 0)
  202. cvar.var_pchar = pc
  203. if cvar.var_pchar != "hola":
  204. print cvar.var_pchar
  205. raise RuntimeError, "bad pointer case"
  206. cvar.var_namet = pc
  207. #if cvar.var_namet != "hola\0":
  208. if cvar.var_namet != "hola":
  209. raise RuntimeError, "bad pointer case"
  210. delete_pchar(pc)
  211. #
  212. # Now when things should fail
  213. #
  214. try:
  215. error = 0
  216. a = t.var_uchar
  217. t.var_uchar = 10000
  218. error = 1
  219. except OverflowError:
  220. if a != t.var_uchar:
  221. error = 1
  222. pass
  223. if error:
  224. raise RuntimeError, "bad uchar typemap"
  225. try:
  226. error = 0
  227. a = t.var_char
  228. t.var_char = '23'
  229. error = 1
  230. except TypeError:
  231. if a != t.var_char:
  232. error = 1
  233. pass
  234. if error:
  235. raise RuntimeError, "bad char typemap"
  236. try:
  237. error = 0
  238. a = t.var_uint
  239. t.var_uint = -1
  240. error = 1
  241. except OverflowError:
  242. if a != t.var_uint:
  243. error = 1
  244. pass
  245. if error:
  246. raise RuntimeError, "bad uint typemap"
  247. #
  248. #
  249. try:
  250. error = 0
  251. a = t.var_namet
  252. t.var_namet = '123456'
  253. error = 1
  254. except TypeError:
  255. if a != t.var_namet:
  256. error = 1
  257. pass
  258. if error:
  259. raise RuntimeError, "bad namet typemap"
  260. #
  261. #
  262. #
  263. t2 = p.vtest(t)
  264. if t.var_namet != t2.var_namet:
  265. raise RuntimeError, "bad SWIGTYPE* typemap"
  266. if cvar.fixsize != 'ho\0la\0\0\0':
  267. raise RuntimeError, "bad FIXSIZE typemap"
  268. cvar.fixsize = 'ho'
  269. if cvar.fixsize != 'ho\0\0\0\0\0\0':
  270. raise RuntimeError, "bad FIXSIZE typemap"
  271. f = Foo(3)
  272. f1 = fptr_val(f)
  273. f2 = fptr_ref(f)
  274. if f1._a != f2._a:
  275. raise RuntimeError, "bad const ptr& typemap"
  276. v = char_foo(1,3)
  277. if v !=3:
  278. raise RuntimeError, "bad int typemap"
  279. s = char_foo(1,"hello")
  280. if s !="hello":
  281. raise RuntimeError, "bad char* typemap"
  282. v = SetPos(1,3)
  283. if v !=4:
  284. raise RuntimeError, "bad int typemap"