blob: c653e0cea9427ae3c8b93072a5694b884c9b4637 [file] [log] [blame]
Wenzel Jakobeda978e2016-03-15 15:05:40 +01001from __future__ import print_function
2import sys
3
4sys.path.append('.')
5
6from example import StringList, print_opaque_list
Wenzel Jakob08712282016-04-22 16:52:15 +02007from example import ClassWithSTLVecProperty
Wenzel Jakob9883ec02016-03-26 23:37:51 +01008from example import return_void_ptr, print_void_ptr
9from example import return_null_str, print_null_str
Wenzel Jakob9f0dfce2016-04-06 17:38:18 +020010from example import return_unique_ptr
Wenzel Jakobe8b9dd22016-04-30 19:35:24 +020011from example import Example1
Wenzel Jakobeda978e2016-03-15 15:05:40 +010012
Wenzel Jakob08712282016-04-22 16:52:15 +020013#####
14
Wenzel Jakobeda978e2016-03-15 15:05:40 +010015l = StringList()
16l.push_back("Element 1")
17l.push_back("Element 2")
18print_opaque_list(l)
19print("Back element is %s" % l.back())
Wenzel Jakob06f56ee2016-04-28 16:25:24 +020020for i, k in enumerate(l):
21 print("%i/%i : %s" % (i + 1, len(l), k))
Wenzel Jakobeda978e2016-03-15 15:05:40 +010022l.pop_back()
23print_opaque_list(l)
Wenzel Jakobde1bca82016-03-26 17:51:09 +010024
Wenzel Jakob08712282016-04-22 16:52:15 +020025#####
26cvp = ClassWithSTLVecProperty()
27print_opaque_list(cvp.stringList)
28
29cvp.stringList = l
30cvp.stringList.push_back("Element 3")
31print_opaque_list(cvp.stringList)
32
33#####
34
Wenzel Jakobde1bca82016-03-26 17:51:09 +010035print_void_ptr(return_void_ptr())
Wenzel Jakob772c6d52016-04-30 19:56:10 +020036print_void_ptr(Example1()) # Should also work for other C++ types
37
38try:
39 print_void_ptr([1, 2, 3]) # This should not work
40except Exception as e:
41 print("Caught expected exception: " + str(e))
Wenzel Jakob9883ec02016-03-26 23:37:51 +010042
43print(return_null_str())
44print_null_str(return_null_str())
Wenzel Jakob9f0dfce2016-04-06 17:38:18 +020045
Wenzel Jakob08712282016-04-22 16:52:15 +020046#####
47
Wenzel Jakob06f56ee2016-04-28 16:25:24 +020048ptr = return_unique_ptr()
49print(ptr)
50print_opaque_list(ptr)