aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/tests/libminimal
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/libminimal
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/libminimal')
-rw-r--r--sources/shiboken6/tests/libminimal/CMakeLists.txt1
-rw-r--r--sources/shiboken6/tests/libminimal/containeruser.cpp35
-rw-r--r--sources/shiboken6/tests/libminimal/containeruser.h28
3 files changed, 64 insertions, 0 deletions
diff --git a/sources/shiboken6/tests/libminimal/CMakeLists.txt b/sources/shiboken6/tests/libminimal/CMakeLists.txt
index f906bdb84..1b14d5697 100644
--- a/sources/shiboken6/tests/libminimal/CMakeLists.txt
+++ b/sources/shiboken6/tests/libminimal/CMakeLists.txt
@@ -1,6 +1,7 @@
project(libminimal)
set(libminimal_SRC
+containeruser.cpp
obj.cpp
listuser.cpp
typedef.cpp
diff --git a/sources/shiboken6/tests/libminimal/containeruser.cpp b/sources/shiboken6/tests/libminimal/containeruser.cpp
new file mode 100644
index 000000000..78fc7a045
--- /dev/null
+++ b/sources/shiboken6/tests/libminimal/containeruser.cpp
@@ -0,0 +1,35 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "containeruser.h"
+
+#include <algorithm>
+#include <numeric>
+
+ContainerUser::ContainerUser() : m_intVector{1, 2, 3}
+{
+}
+
+ContainerUser::~ContainerUser() = default;
+
+std::vector<int> ContainerUser::createIntVector(int num)
+{
+ std::vector<int> retval(num);
+ std::iota(retval.begin(), retval.end(), 0);
+ return retval;
+}
+
+int ContainerUser::sumIntVector(const std::vector<int> &intVector)
+{
+ return std::accumulate(intVector.cbegin(), intVector.cend(), 0);
+}
+
+std::vector<int> &ContainerUser::intVector()
+{
+ return m_intVector;
+}
+
+void ContainerUser::setIntVector(const std::vector<int> &v)
+{
+ m_intVector = v;
+}
diff --git a/sources/shiboken6/tests/libminimal/containeruser.h b/sources/shiboken6/tests/libminimal/containeruser.h
new file mode 100644
index 000000000..4cb4df0b9
--- /dev/null
+++ b/sources/shiboken6/tests/libminimal/containeruser.h
@@ -0,0 +1,28 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef CONTAINERUSER_H
+#define CONTAINERUSER_H
+
+#include "libminimalmacros.h"
+
+#include <vector>
+
+/// Exercise simple, sequential containers. More advanced tests are in ListUser
+class LIBMINIMAL_API ContainerUser
+{
+public:
+ ContainerUser();
+ ~ContainerUser();
+
+ static std::vector<int> createIntVector(int num);
+ static int sumIntVector(const std::vector<int> &intVector);
+
+ std::vector<int> &intVector();
+ void setIntVector(const std::vector<int> &);
+
+private:
+ std::vector<int> m_intVector;
+};
+
+#endif // CONTAINERUSER_H