diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/CMakeLists.txt | 2 | ||||
-rw-r--r-- | tests/libother/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/libother/number.cpp | 48 | ||||
-rw-r--r-- | tests/libother/number.h | 54 | ||||
-rw-r--r-- | tests/otherbinding/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/otherbinding/global.h | 1 | ||||
-rwxr-xr-x | tests/otherbinding/new_ctor_operator_test.py | 51 | ||||
-rw-r--r-- | tests/otherbinding/typesystem_other.xml | 2 |
8 files changed, 159 insertions, 1 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index db1fdd2da..bc715871b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -5,7 +5,7 @@ add_subdirectory(otherbinding) file(GLOB TEST_FILES samplebinding/*_test.py otherbinding/*_test.py) -set(test_blacklist "") +set(test_blacklist "new_ctor_operator") find_package(PythonInterp REQUIRED) diff --git a/tests/libother/CMakeLists.txt b/tests/libother/CMakeLists.txt index be64a0ebf..de589ac3a 100644 --- a/tests/libother/CMakeLists.txt +++ b/tests/libother/CMakeLists.txt @@ -1,6 +1,7 @@ project(libother) set(libother_SRC +number.cpp otherderived.cpp ) diff --git a/tests/libother/number.cpp b/tests/libother/number.cpp new file mode 100644 index 000000000..0c64def6e --- /dev/null +++ b/tests/libother/number.cpp @@ -0,0 +1,48 @@ +/* + * This file is part of the Shiboken Python Binding Generator project. + * + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * + * Contact: PySide team <contact@pyside.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. Please + * review the following information to ensure the GNU Lesser General + * Public License version 2.1 requirements will be met: + * http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. + * + * As a special exception to the GNU Lesser General Public License + * version 2.1, the object code form of a "work that uses the Library" + * may incorporate material from a header file that is part of the + * Library. You may distribute such object code under terms of your + * choice, provided that the incorporated material (i) does not exceed + * more than 5% of the total size of the Library; and (ii) is limited to + * numerical parameters, data structure layouts, accessors, macros, + * inline functions and templates. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#include "number.h" +#include <cstring> +#include <sstream> + +using namespace std; + +Str +Number::toStr() const +{ + ostringstream in; + in << m_value; + return in.str().c_str(); +} + diff --git a/tests/libother/number.h b/tests/libother/number.h new file mode 100644 index 000000000..bbbd830ba --- /dev/null +++ b/tests/libother/number.h @@ -0,0 +1,54 @@ +/* + * This file is part of the Shiboken Python Binding Generator project. + * + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * + * Contact: PySide team <contact@pyside.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. Please + * review the following information to ensure the GNU Lesser General + * Public License version 2.1 requirements will be met: + * http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. + * + * As a special exception to the GNU Lesser General Public License + * version 2.1, the object code form of a "work that uses the Library" + * may incorporate material from a header file that is part of the + * Library. You may distribute such object code under terms of your + * choice, provided that the incorporated material (i) does not exceed + * more than 5% of the total size of the Library; and (ii) is limited to + * numerical parameters, data structure layouts, accessors, macros, + * inline functions and templates. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#ifndef NUMBER_H +#define NUMBER_H + +#include "libothermacros.h" +#include "str.h" + +class LIBOTHER_API Number +{ +public: + explicit Number(int value) : m_value(value) {}; + int value() { return m_value; } + + Str toStr() const; + operator Str() const { return toStr(); } + +protected: + int m_value; +}; +#endif // NUMBER_H + diff --git a/tests/otherbinding/CMakeLists.txt b/tests/otherbinding/CMakeLists.txt index 164870c02..cec566eb7 100644 --- a/tests/otherbinding/CMakeLists.txt +++ b/tests/otherbinding/CMakeLists.txt @@ -5,6 +5,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_other.xml ) set(other_SRC +${CMAKE_CURRENT_BINARY_DIR}/other/number_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/other/otherderived_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/other/other_module_wrapper.cpp ) diff --git a/tests/otherbinding/global.h b/tests/otherbinding/global.h index c8bfcfb4b..7837ba17a 100644 --- a/tests/otherbinding/global.h +++ b/tests/otherbinding/global.h @@ -1,3 +1,4 @@ #include "../samplebinding/global.h" +#include "number.h" #include "otherderived.h" diff --git a/tests/otherbinding/new_ctor_operator_test.py b/tests/otherbinding/new_ctor_operator_test.py new file mode 100755 index 000000000..1a22232b9 --- /dev/null +++ b/tests/otherbinding/new_ctor_operator_test.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# This file is part of the Shiboken Python Bindings Generator project. +# +# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +# +# Contact: PySide team <contact@pyside.org> +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public License +# version 2.1 as published by the Free Software Foundation. Please +# review the following information to ensure the GNU Lesser General +# Public License version 2.1 requirements will be met: +# http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +# # +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA + +'''Tests calling Str constructor using a Number parameter, being that number defines a cast operator to Str.''' + +import unittest + +from sample import Str +from other import Number + +class NewCtorOperatorTest(unittest.TestCase): + '''Tests calling Str constructor using a Number parameter, being that number defines a cast operator to Str.''' + + def testNumber(self): + '''Basic test to see if the Number class is Ok.''' + value = 123 + num = Number(value) + self.assertEqual(num.value(), value) + + def testStrCtorWithNumberArgument(self): + '''Try to build a Str from 'sample' module with a Number argument from 'other' module.''' + value = 123 + num = Number(value) + string = Str(num) + +if __name__ == '__main__': + unittest.main() + diff --git a/tests/otherbinding/typesystem_other.xml b/tests/otherbinding/typesystem_other.xml index 6bcc7c1a1..487613a4b 100644 --- a/tests/otherbinding/typesystem_other.xml +++ b/tests/otherbinding/typesystem_other.xml @@ -4,5 +4,7 @@ <object-type name="OtherDerived" /> + <value-type name="Number" /> + </typesystem> |