Merge remote branch 'mainline/1.0'
Conflicts: CMakeLists.txt
This commit is contained in:
commit
4a638ed634
26 changed files with 2639 additions and 755 deletions
|
|
@ -6,8 +6,8 @@ else()
|
|||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(TEST_PYTHONPATH "${CMAKE_BINARY_DIR};${CMAKE_SOURCE_DIR}/tests/util")
|
||||
set(TEST_LIBRARY_PATH "${libpyside_BINARY_DIR};$ENV{PATH}")
|
||||
set(TEST_PYTHONPATH "${CMAKE_BINARY_DIR};${CMAKE_SOURCE_DIR}/tests/util;${testbinding_BINARY_DIR}")
|
||||
set(TEST_LIBRARY_PATH "${libpyside_BINARY_DIR};${pysidetest_BINARY_DIR};$ENV{PATH}")
|
||||
set(LIBRARY_PATH_VAR "PATH")
|
||||
string(REPLACE "\\" "/" TEST_PYTHONPATH "${TEST_PYTHONPATH}")
|
||||
string(REPLACE "\\" "/" TEST_LIBRARY_PATH "${TEST_LIBRARY_PATH}")
|
||||
|
|
@ -15,8 +15,8 @@ else()
|
|||
string(REPLACE ";" "\\;" TEST_PYTHONPATH "${TEST_PYTHONPATH}")
|
||||
string(REPLACE ";" "\\;" TEST_LIBRARY_PATH "${TEST_LIBRARY_PATH}")
|
||||
else()
|
||||
set(TEST_PYTHONPATH "${CMAKE_BINARY_DIR}:${CMAKE_SOURCE_DIR}/tests/util")
|
||||
set(TEST_LIBRARY_PATH "${libpyside_BINARY_DIR}:$ENV{LD_LIBRARY_PATH}")
|
||||
set(TEST_PYTHONPATH "${CMAKE_BINARY_DIR}:${CMAKE_SOURCE_DIR}/tests/util:${testbinding_BINARY_DIR}")
|
||||
set(TEST_LIBRARY_PATH "${libpyside_BINARY_DIR}:${pysidetest_BINARY_DIR}:$ENV{LD_LIBRARY_PATH}")
|
||||
set(LIBRARY_PATH_VAR "LD_LIBRARY_PATH")
|
||||
endif()
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ else()
|
|||
elseif(${ARGC} EQUAL 2)
|
||||
set(EXPECT_TO_FAIL ${ARGV1})
|
||||
else()
|
||||
message(WARNING "Ivalid call of macro PYSIDE_TEST")
|
||||
message(WARNING "Invalid call of macro PYSIDE_TEST")
|
||||
endif()
|
||||
set(TEST_CMD ${XVFB_EXEC} ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0}")
|
||||
add_test(${TEST_NAME} ${TEST_CMD})
|
||||
|
|
@ -59,6 +59,7 @@ else()
|
|||
endif ()
|
||||
|
||||
add_subdirectory(signals)
|
||||
add_subdirectory(pysidetest)
|
||||
TEST_QT_MODULE(QT_QTCORE_FOUND QtCore)
|
||||
TEST_QT_MODULE(QT_QTGUI_FOUND QtGui)
|
||||
TEST_QT_MODULE(QT_QTNETWORK_FOUND QtNetwork)
|
||||
|
|
|
|||
71
tests/pysidetest/CMakeLists.txt
Normal file
71
tests/pysidetest/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
project(pysidetest)
|
||||
project(testbinding)
|
||||
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
find_package(Qt4 4.5.0 REQUIRED)
|
||||
find_package(PythonLibs REQUIRED)
|
||||
find_package(PythonInterpWithDebug REQUIRED)
|
||||
find_package(GeneratorRunner 0.6 REQUIRED)
|
||||
find_package(Shiboken 0.5 REQUIRED)
|
||||
|
||||
|
||||
set(QT_USE_QTCORE 1)
|
||||
include(${QT_USE_FILE})
|
||||
add_definitions(${QT_DEFINITIONS})
|
||||
add_definitions(-DQT_SHARED)
|
||||
add_definitions(-DRXX_ALLOCATOR_INIT_0)
|
||||
|
||||
set(pysidetest_SRC
|
||||
testobject.cpp
|
||||
)
|
||||
|
||||
set(pysidetest_MOC_HEADERS
|
||||
testobject.h
|
||||
)
|
||||
|
||||
qt4_wrap_cpp(pysidetest_MOC_SRC ${pysidetest_MOC_HEADERS})
|
||||
|
||||
set(testbinding_SRC
|
||||
${CMAKE_CURRENT_BINARY_DIR}/testbinding/testobject_wrapper.cpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/testbinding/testbinding_module_wrapper.cpp
|
||||
)
|
||||
|
||||
set(GENERATOR_EXTRA_FLAGS --generatorSet=shiboken --enable-parent-ctor-heuristic --enable-pyside-extensions --enable-return-value-heuristic)
|
||||
add_custom_command(OUTPUT ${testbinding_SRC}
|
||||
COMMAND ${GENERATORRUNNER_BINARY} ${GENERATOR_EXTRA_FLAGS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/global.h
|
||||
--include-paths=${CMAKE_CURRENT_SOURCE_DIR}:${QT_INCLUDE_DIR}:${QT_QTCORE_INCLUDE_DIR}
|
||||
--typesystem-paths=${CMAKE_CURRENT_SOURCE_DIR}:${pyside_SOURCE_DIR}:${QtCore_SOURCE_DIR}
|
||||
--output-directory=${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/typesystem_pysidetest.xml
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Running generator for test binding..."
|
||||
)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${QT_INCLUDE_DIR}
|
||||
${QT_QTCORE_INCLUDE_DIR}
|
||||
${SHIBOKEN_INCLUDE_DIR}
|
||||
${QtCore_BINARY_DIR}/PySide/QtCore
|
||||
${libpyside_SOURCE_DIR}
|
||||
${PYTHON_INCLUDE_PATH})
|
||||
|
||||
add_library(pysidetest SHARED ${pysidetest_SRC} ${pysidetest_MOC_SRC})
|
||||
target_link_libraries(pysidetest ${QT_QTCORE_LIBRARY})
|
||||
|
||||
add_library(testbinding MODULE ${testbinding_SRC})
|
||||
set_property(TARGET testbinding PROPERTY PREFIX "")
|
||||
target_link_libraries(testbinding
|
||||
pysidetest
|
||||
pyside
|
||||
${PYTHON_LIBRARIES}
|
||||
${SHIBOKEN_LIBRARY}
|
||||
${QT_QTCORE_LIBRARY}
|
||||
${SBK_PYTHON_LIBRARIES})
|
||||
|
||||
add_dependencies(testbinding pyside QtCore libpyside pysidetest)
|
||||
|
||||
|
||||
PYSIDE_TEST(homonymoussignalandmethod_test.py)
|
||||
|
||||
2
tests/pysidetest/global.h
Normal file
2
tests/pysidetest/global.h
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#include "pyside_global.h"
|
||||
#include "testobject.h"
|
||||
53
tests/pysidetest/homonymoussignalandmethod_test.py
Normal file
53
tests/pysidetest/homonymoussignalandmethod_test.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import unittest
|
||||
from testbinding import TestObject
|
||||
|
||||
'''Tests the behaviour of homonymous signals and slots.'''
|
||||
|
||||
class HomonymousSignalAndMethodTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.value = 123
|
||||
self.called = False
|
||||
self.obj = TestObject(self.value)
|
||||
|
||||
def tearDown(self):
|
||||
del self.value
|
||||
del self.called
|
||||
del self.obj
|
||||
|
||||
def testIdValueSignalEmission(self):
|
||||
def callback(idValue):
|
||||
self.assertEqual(idValue, self.value)
|
||||
self.obj.idValue.connect(callback)
|
||||
self.obj.emitIdValueSignal()
|
||||
|
||||
def testStaticMethodDoubleSignalEmission(self):
|
||||
def callback():
|
||||
self.called = True
|
||||
self.obj.staticMethodDouble.connect(callback)
|
||||
self.obj.emitStaticMethodDoubleSignal()
|
||||
self.assert_(self.called)
|
||||
|
||||
def testSignalNotCallable(self):
|
||||
self.assertRaises(TypeError, self.obj.justASignal)
|
||||
|
||||
def testCallingInstanceMethodWithArguments(self):
|
||||
self.assertRaises(TypeError, TestObject.idValue, 1)
|
||||
|
||||
def testCallingInstanceMethodWithoutArguments(self):
|
||||
self.assertRaises(TypeError, TestObject.idValue)
|
||||
|
||||
def testHomonymousSignalAndMethod(self):
|
||||
self.assertEqual(self.obj.idValue(), self.value)
|
||||
|
||||
def testHomonymousSignalAndStaticMethod(self):
|
||||
self.assertEqual(TestObject.staticMethodDouble(3), 6)
|
||||
|
||||
def testHomonymousSignalAndStaticMethodFromInstance(self):
|
||||
self.assertEqual(self.obj.staticMethodDouble(4), 8)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
1507
tests/pysidetest/pyside_global.h
Normal file
1507
tests/pysidetest/pyside_global.h
Normal file
File diff suppressed because it is too large
Load diff
7
tests/pysidetest/symbols.filter
Normal file
7
tests/pysidetest/symbols.filter
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
local:
|
||||
_ZSt*;
|
||||
_ZNSt*;
|
||||
_ZNSs*;
|
||||
_ZNKSt*;
|
||||
};
|
||||
14
tests/pysidetest/testobject.cpp
Normal file
14
tests/pysidetest/testobject.cpp
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#include "testobject.h"
|
||||
|
||||
void
|
||||
TestObject::emitIdValueSignal()
|
||||
{
|
||||
emit idValue(m_idValue);
|
||||
}
|
||||
|
||||
void
|
||||
TestObject::emitStaticMethodDoubleSignal()
|
||||
{
|
||||
emit staticMethodDouble();
|
||||
}
|
||||
|
||||
28
tests/pysidetest/testobject.h
Normal file
28
tests/pysidetest/testobject.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#ifndef TESTOBJECT_H
|
||||
#define TESTOBJECT_H
|
||||
|
||||
#include <QObject>
|
||||
#include "pysidemacros.h"
|
||||
|
||||
class PYSIDE_API TestObject : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TestObject(int idValue, QObject* parent = 0) : QObject(parent), m_idValue(idValue) {}
|
||||
int idValue() const { return m_idValue; }
|
||||
static int staticMethodDouble(int value) { return value * 2; }
|
||||
|
||||
void emitIdValueSignal();
|
||||
void emitStaticMethodDoubleSignal();
|
||||
|
||||
signals:
|
||||
void idValue(int newValue);
|
||||
void justASignal();
|
||||
void staticMethodDouble();
|
||||
|
||||
private:
|
||||
int m_idValue;
|
||||
};
|
||||
|
||||
#endif // TESTOBJECT_H
|
||||
|
||||
6
tests/pysidetest/typesystem_pysidetest.xml
Normal file
6
tests/pysidetest/typesystem_pysidetest.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<typesystem package="testbinding">
|
||||
<load-typesystem name="typesystem_core.xml" generate="no" />
|
||||
<object-type name="TestObject" />
|
||||
</typesystem>
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue