aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/tests/minimalbinding
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-01-10 13:18:54 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-01-11 13:18:25 +0100
commit697b3cf1ac45e1cb511a7e395c32cfa8b85780b5 (patch)
tree54caff725c7b5a404375032ce54278812f2f0fa0 /sources/shiboken6/tests/minimalbinding
parent5b317460b0f2938ede7c194d9129448810943c02 (diff)
shiboken6/libminimal: Add a test for std::vector
Start a containeruser class and test for simple, sequential containers. Change-Id: I4a88787442c3c899523e9da51474916ca1312897 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/shiboken6/tests/minimalbinding')
-rw-r--r--sources/shiboken6/tests/minimalbinding/CMakeLists.txt1
-rw-r--r--sources/shiboken6/tests/minimalbinding/containeruser_test.py33
-rw-r--r--sources/shiboken6/tests/minimalbinding/global.h1
-rw-r--r--sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject1
-rw-r--r--sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml10
5 files changed, 46 insertions, 0 deletions
diff --git a/sources/shiboken6/tests/minimalbinding/CMakeLists.txt b/sources/shiboken6/tests/minimalbinding/CMakeLists.txt
index 1b8c259e6..317d1478b 100644
--- a/sources/shiboken6/tests/minimalbinding/CMakeLists.txt
+++ b/sources/shiboken6/tests/minimalbinding/CMakeLists.txt
@@ -6,6 +6,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_minimal.xml
set(minimal_SRC
${CMAKE_CURRENT_BINARY_DIR}/minimal/minimal_module_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/minimal/containeruser_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/minimal/obj_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/minimal/val_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/minimal/listuser_wrapper.cpp
diff --git a/sources/shiboken6/tests/minimalbinding/containeruser_test.py b/sources/shiboken6/tests/minimalbinding/containeruser_test.py
new file mode 100644
index 000000000..b08989d2f
--- /dev/null
+++ b/sources/shiboken6/tests/minimalbinding/containeruser_test.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import unittest
+
+from pathlib import Path
+sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
+from shiboken_paths import init_paths
+init_paths()
+
+from minimal import ContainerUser
+
+
+class ContainerTest(unittest.TestCase):
+ """Simple test for converting std::vector and using an opaque container.
+ For advanced tests, see ListUser."""
+ def testVectorConversion(self):
+ v = ContainerUser.createIntVector(4)
+ self.assertEqual(ContainerUser.sumIntVector(v), 6)
+
+ def testVectorOpaqueContainer(self):
+ cu = ContainerUser()
+ oc = cu.intVector()
+ self.assertEqual(oc[0], 1)
+ oc[0] = 42
+ self.assertEqual(cu.intVector()[0], 42)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/shiboken6/tests/minimalbinding/global.h b/sources/shiboken6/tests/minimalbinding/global.h
index 573e826d7..4e792705a 100644
--- a/sources/shiboken6/tests/minimalbinding/global.h
+++ b/sources/shiboken6/tests/minimalbinding/global.h
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "obj.h"
+#include "containeruser.h"
#include "val.h"
#include "minbool.h"
#include "listuser.h"
diff --git a/sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject b/sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject
index d68e3811f..ab19dc443 100644
--- a/sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject
+++ b/sources/shiboken6/tests/minimalbinding/minimalbinding.pyproject
@@ -1,5 +1,6 @@
{
"files": ["brace_pattern_test.py",
+ "containeruser_test.py",
"listuser_test.py",
"minbool_test.py",
"obj_test.py",
diff --git a/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml b/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml
index b5e0d0532..1b16e0709 100644
--- a/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml
+++ b/sources/shiboken6/tests/minimalbinding/typesystem_minimal.xml
@@ -17,6 +17,8 @@
<opaque-container name="std::list" opaque-containers="int:StdIntList"/>
+ <opaque-container name="std::vector" opaque-containers="int:StdIntVector"/>
+
<object-type name="Obj"/>
<value-type name="Val">
<enum-type name="ValEnum"/>
@@ -36,6 +38,14 @@
</value-type>
<value-type name="MinBoolUser"/>
+ <value-type name="ContainerUser">
+ <modify-function signature="intVector()">
+ <modify-argument index="return">
+ <replace-type modified-type="StdIntVector"/>
+ </modify-argument>
+ </modify-function>
+ </value-type>
+
<!-- Test wrapping of a typedef -->
<function signature="arrayFuncInt(std::vector&lt;int&gt;)" />
<!-- Note manual expansion of the typedef -->