aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/tests/CMakeLists.txt
blob: 3810b98ff3b684a5dd32e3fbb634eb948094086f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
if(CMAKE_VERSION VERSION_LESS 2.8)
    message("CMake version greater than 2.8 necessary to run tests")
else()
    if(NOT CTEST_TESTING_TIMEOUT)
        set(CTEST_TESTING_TIMEOUT 60)
    endif()

   if(WIN32)
        set(TEST_PYTHONPATH     "${CMAKE_BINARY_DIR};${CMAKE_SOURCE_DIR}/tests/util;${pysidetest_BINARY_DIR};$ENV{PYTHONPATH}")
        set(TEST_LIBRARY_PATH   "${libpyside_BINARY_DIR};${pysidetest_BINARY_DIR};${SHIBOKEN_INCLUDE_DIR}/../../bin;$ENV{PATH}")
        set(LIBRARY_PATH_VAR    "PATH")
        string(REPLACE "\\" "/" TEST_PYTHONPATH "${TEST_PYTHONPATH}")
        string(REPLACE "\\" "/" TEST_LIBRARY_PATH "${TEST_LIBRARY_PATH}")

        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:${pysidetest_BINARY_DIR}:$ENV{PYTHONPATH}")
        set(TEST_LIBRARY_PATH   "${libpyside_BINARY_DIR}:${pysidetest_BINARY_DIR}:$ENV{LD_LIBRARY_PATH}")
        set(LIBRARY_PATH_VAR    "LD_LIBRARY_PATH")
    endif()


    macro(TEST_QT_MODULE var name)
      if(NOT DISABLE_${name} AND ${var})
          add_subdirectory(${name})
      endif()
    endmacro()

    macro(PYSIDE_TEST)
        string(REGEX MATCH "/([^/]+)//?([^/]+)\\.py" foo "${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0}" )
        set(TEST_NAME "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}")
        if (${ARGC} EQUAL 1)
            set(EXPECT_TO_FAIL 0)
        elseif(${ARGC} EQUAL 2)
            set(EXPECT_TO_FAIL ${ARGV1})
        else()
            message(WARNING "Invalid call of macro PYSIDE_TEST")
        endif()
        set(TEST_CMD ${XVFB_EXEC} ${SHIBOKEN_PYTHON_INTERPRETER} "${CMAKE_CURRENT_SOURCE_DIR}/${ARGV0}")
        add_test(${TEST_NAME} ${TEST_CMD})
        set_tests_properties(${TEST_NAME} PROPERTIES
                             TIMEOUT ${CTEST_TESTING_TIMEOUT}
                             WILL_FAIL ${EXPECT_TO_FAIL}
                             ENVIRONMENT "PYTHONPATH=${TEST_PYTHONPATH};${LIBRARY_PATH_VAR}=${TEST_LIBRARY_PATH}")
    endmacro()

    add_subdirectory(pysidetest)
    add_subdirectory(signals)
    TEST_QT_MODULE(Qt5Core_FOUND QtCore)
    TEST_QT_MODULE(Qt5Gui_FOUND QtGui)
    # to do TEST_QT_MODULE(Qt5Widgets_FOUND QtWidgets)
    TEST_QT_MODULE(Qt5Network_FOUND QtNetwork)
    TEST_QT_MODULE(Qt5Webkit_FOUND QtWebKit)
    TEST_QT_MODULE(Qt5Svg_FOUND QtSvg)
    TEST_QT_MODULE(Qt5Xml_FOUND QtXml)
    TEST_QT_MODULE(Qt5Test_FOUND QtTest)
    TEST_QT_MODULE(Qt5OpenGL_FOUND QtOpenGL)
    TEST_QT_MODULE(Qt5Sql_FOUND QtSql)
    TEST_QT_MODULE(Qt5UiTools_FOUND QtUiTools)
    TEST_QT_MODULE(Qt5Help_FOUND QtHelp)
    TEST_QT_MODULE(Qt5XmlPatterns_FOUND QtXmlPatterns)
    TEST_QT_MODULE(Qt5Script_FOUND QtScript)
    TEST_QT_MODULE(Qt5ScriptTools_FOUND QtScriptTools)
    TEST_QT_MODULE(Qt5Multimedia_FOUND QtMultimedia)
    TEST_QT_MODULE(Qt5Qml_FOUND QtQml)

    #platform specific
    if (ENABLE_MAC)
        add_subdirectory(mac)
    endif ()
endif()