Warning, /frameworks/ktexteditor/autotests/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test)
0002 add_definitions(-DQT_FORCE_ASSERTS=1)
0003 
0004 include(ECMMarkAsTest)
0005 include(ECMAddTests)
0006 
0007 set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
0008 
0009 include_directories(
0010   # for config.h
0011   ${CMAKE_BINARY_DIR}
0012 
0013   # for generated ktexteditor headers
0014   ${CMAKE_BINARY_DIR}/src/include
0015 
0016   # for normal sources
0017   ${CMAKE_SOURCE_DIR}/src
0018   ${CMAKE_SOURCE_DIR}/src/include
0019   ${CMAKE_SOURCE_DIR}/src/buffer
0020   ${CMAKE_SOURCE_DIR}/src/completion
0021   ${CMAKE_SOURCE_DIR}/src/dialogs
0022   ${CMAKE_SOURCE_DIR}/src/document
0023   ${CMAKE_SOURCE_DIR}/src/script
0024   ${CMAKE_SOURCE_DIR}/src/mode
0025   ${CMAKE_SOURCE_DIR}/src/render
0026   ${CMAKE_SOURCE_DIR}/src/search
0027   ${CMAKE_SOURCE_DIR}/src/syntax
0028   ${CMAKE_SOURCE_DIR}/src/undo
0029   ${CMAKE_SOURCE_DIR}/src/utils
0030   ${CMAKE_SOURCE_DIR}/src/view
0031 )
0032 
0033 add_definitions(-DTEST_DATA_DIR=\"${CMAKE_SOURCE_DIR}/autotests/input/\")
0034 add_definitions(-DJS_DATA_DIR=\"${CMAKE_SOURCE_DIR}/src/script/data/\")
0035 
0036 set (KTEXTEDITOR_TEST_LINK_LIBS KF6TextEditor
0037   KF6::I18n
0038   KF6::GuiAddons
0039   KF6::SyntaxHighlighting
0040   KF6::Codecs
0041   KF6::Completion
0042   KF6::WindowSystem
0043   Qt6::Qml
0044 )
0045 
0046 if(ENABLE_PCH)
0047     file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch.cpp "/*empty file*/")
0048     file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch.h
0049         "#pragma once\n"
0050         "#include <QObject>\n"
0051         "#include <QTest>\n"
0052         "#include <QString>\n"
0053     )
0054     add_library(kte_test_pch STATIC ${CMAKE_CURRENT_BINARY_DIR}/pch.cpp)
0055     target_link_libraries(kte_test_pch ${KTEXTEDITOR_TEST_LINK_LIBS} Qt6::Test)
0056     target_precompile_headers(kte_test_pch PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/pch.h)
0057 endif()
0058 
0059 include(ECMMarkAsTest)
0060 
0061 # test executable for encoding
0062 add_executable(kateencodingtest src/kateencodingtest.cpp)
0063 target_link_libraries(kateencodingtest ${KTEXTEDITOR_TEST_LINK_LIBS})
0064 ecm_mark_as_test(kateencodingtest)
0065 
0066 # test macro for encoding tests
0067 MACRO(KTEXTEDITOR_ENCODING_TEST _encoding _testname)
0068   ADD_TEST (NAME encoding_${_testname}_create COMMAND kateencodingtest ${_encoding} ${CMAKE_SOURCE_DIR}/autotests/input/encoding/${_testname} ${CMAKE_CURRENT_BINARY_DIR}/${_testname} )
0069   ADD_TEST (NAME encoding_${_testname}_diff COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/autotests/input/encoding/${_testname} ${CMAKE_CURRENT_BINARY_DIR}/${_testname} )
0070 ENDMACRO(KTEXTEDITOR_ENCODING_TEST)
0071 
0072 # add tests
0073 
0074 # this file is utf-8, simple
0075 KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf8.txt")
0076 
0077 # this file is latin15, but fallback should work!
0078 KTEXTEDITOR_ENCODING_TEST ("utf-8" "latin15.txt")
0079 
0080 # this file is utf32, little endian, but fallback should work!
0081 KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf32.txt")
0082 
0083 # this file is utf16, little endian, but fallback should work!
0084 KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf16.txt")
0085 
0086 # this file is utf32, big endian, but fallback should work!
0087 KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf32be.txt")
0088 
0089 # this file is utf16, big endian, but fallback should work!
0090 KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf16be.txt")
0091 
0092 # cyrillic utf-8
0093 KTEXTEDITOR_ENCODING_TEST ("utf-8" "cyrillic_utf8.txt")
0094 
0095 # cyrillic cp1251
0096 KTEXTEDITOR_ENCODING_TEST ("utf-8" "cp1251.txt")
0097 
0098 # cyrillic koi8-r
0099 KTEXTEDITOR_ENCODING_TEST ("utf-8" "koi8-r.txt")
0100 
0101 # one character latin-15 test, segfaulted
0102 KTEXTEDITOR_ENCODING_TEST ("utf-8" "one-char-latin-15.txt")
0103 
0104 # utf8 bom only, shouldn't produce error
0105 #KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf8-bom-only.txt") // TODO: make Kate::TextBuffer::saveBuffer save the BOM for empty files
0106 
0107 # latin15, but coincidentally contains utf8 bom. The "bom" should be treated as normal text
0108 KTEXTEDITOR_ENCODING_TEST ("ISO 8859-15" "latin15-with-utf8-bom.txt")
0109 
0110 # test executable for indentation
0111 add_executable(kateindenttest src/indenttest.cpp src/script_test_base.cpp src/testutils.cpp)
0112 target_link_libraries(kateindenttest ${KTEXTEDITOR_TEST_LINK_LIBS}
0113     Qt6::Test)
0114 ecm_mark_as_test(kateindenttest)
0115 if(ENABLE_PCH)
0116     target_precompile_headers(kateindenttest REUSE_FROM kte_test_pch)
0117 endif()
0118 
0119 # test macro for indentation tests
0120 MACRO(KTEXTEDITOR_INDENT_TEST _testname)
0121   ADD_TEST (NAME kateindenttest_${_testname} COMMAND kateindenttest ${_testname})
0122 ENDMACRO(KTEXTEDITOR_INDENT_TEST)
0123 
0124 # test different indenters sepearately to have smaller test chunks, that takes LONG
0125 KTEXTEDITOR_INDENT_TEST ("testPython")
0126 KTEXTEDITOR_INDENT_TEST ("testJulia")
0127 KTEXTEDITOR_INDENT_TEST ("testCstyle")
0128 KTEXTEDITOR_INDENT_TEST ("testCppstyle")
0129 KTEXTEDITOR_INDENT_TEST ("testCMake")
0130 KTEXTEDITOR_INDENT_TEST ("testRuby")
0131 KTEXTEDITOR_INDENT_TEST ("testHaskell")
0132 KTEXTEDITOR_INDENT_TEST ("testLatex")
0133 KTEXTEDITOR_INDENT_TEST ("testPascal")
0134 KTEXTEDITOR_INDENT_TEST ("testAda")
0135 KTEXTEDITOR_INDENT_TEST ("testXml")
0136 KTEXTEDITOR_INDENT_TEST ("testNormal")
0137 KTEXTEDITOR_INDENT_TEST ("testReplicode")
0138 
0139 macro(ktexteditor_unit_test testname)
0140   ecm_add_test(src/${testname}.cpp ${ARGN}
0141                TEST_NAME ${testname}
0142                LINK_LIBRARIES ${KTEXTEDITOR_TEST_LINK_LIBS} Qt6::Test)
0143   if(ENABLE_PCH)
0144     target_precompile_headers(${testname} REUSE_FROM kte_test_pch)
0145   endif()
0146 endmacro()
0147 
0148 macro(ktexteditor_unit_test_offscreen testname)
0149     add_executable(${testname} src/${testname}.cpp ${ARGN})
0150     target_link_libraries(${testname} ${KTEXTEDITOR_TEST_LINK_LIBS}
0151         Qt6::Test)
0152     ecm_mark_as_test(${testname})
0153     if(ENABLE_PCH)
0154         target_precompile_headers(${testname} REUSE_FROM kte_test_pch)
0155     endif()
0156     ADD_TEST (NAME ${testname} COMMAND ${testname} -platform offscreen)
0157 endmacro()
0158 
0159 ktexteditor_unit_test_offscreen(katetextbuffertest)
0160 ktexteditor_unit_test_offscreen(range_test)
0161 ktexteditor_unit_test_offscreen(cursorwords_test)
0162 ktexteditor_unit_test_offscreen(undomanager_test)
0163 ktexteditor_unit_test_offscreen(plaintextsearch_test)
0164 ktexteditor_unit_test_offscreen(regexpsearch_test)
0165 ktexteditor_unit_test_offscreen(scriptdocument_test)
0166 ktexteditor_unit_test_offscreen(wordcompletiontest)
0167 ktexteditor_unit_test_offscreen(searchbar_test)
0168 ktexteditor_unit_test_offscreen(movingcursor_test)
0169 ktexteditor_unit_test_offscreen(configinterface_test)
0170 ktexteditor_unit_test_offscreen(kte_documentcursor)
0171 ktexteditor_unit_test_offscreen(katedocument_test)
0172 ktexteditor_unit_test_offscreen(movingrange_test)
0173 ktexteditor_unit_test_offscreen(revision_test)
0174 ktexteditor_unit_test_offscreen(modificationsystem_test)
0175 ktexteditor_unit_test_offscreen(variable_test)
0176 ktexteditor_unit_test_offscreen(templatehandler_test)
0177 ktexteditor_unit_test_offscreen(camelcursortest)
0178 ktexteditor_unit_test_offscreen(encodingtest)
0179 ktexteditor_unit_test_offscreen(indentdetect_test)
0180 ktexteditor_unit_test_offscreen(multicursortest)
0181 ktexteditor_unit_test_offscreen(commands_test src/script_test_base.cpp src/testutils.cpp)
0182 ktexteditor_unit_test_offscreen(scripting_test src/script_test_base.cpp src/testutils.cpp)
0183 ktexteditor_unit_test_offscreen(katemodemanager_test src/katemodemanager_test_base.cpp)
0184 ktexteditor_unit_test_offscreen(kateview_test)
0185 ktexteditor_unit_test_offscreen(inlinenote_test)
0186 
0187 ktexteditor_unit_test(katefoldingtest)
0188 ktexteditor_unit_test(bug286887)
0189 ktexteditor_unit_test(bug313769)
0190 ktexteditor_unit_test(messagetest)
0191 ktexteditor_unit_test_offscreen(completion_test src/codecompletiontestmodel.cpp src/codecompletiontestmodels.cpp)
0192 ktexteditor_unit_test_offscreen(bug313759 src/testutils.cpp)
0193 ktexteditor_unit_test_offscreen(bug317111 src/testutils.cpp)
0194 ktexteditor_unit_test_offscreen(bug205447 src/testutils.cpp)
0195 
0196 add_subdirectory(src/vimode)
0197 
0198 #
0199 # benchmarks, don't execute during normal testing
0200 # they don't test additional stuff but only hang the CI
0201 #
0202 add_executable(katemodemanager_benchmark src/katemodemanager_test_base.cpp src/katemodemanager_benchmark.cpp)
0203 ecm_mark_nongui_executable(katemodemanager_benchmark)
0204 add_test(NAME katemodemanager_benchmark COMMAND katemodemanager_benchmark CONFIGURATIONS BENCHMARK)
0205 target_link_libraries(katemodemanager_benchmark ${KTEXTEDITOR_TEST_LINK_LIBS} Qt6::Test)
0206 
0207 add_executable(bench_search src/benchmarks/bench_search.cpp)
0208 target_link_libraries(bench_search PRIVATE ${KTEXTEDITOR_TEST_LINK_LIBS})
0209 
0210 add_executable(example src/example.cpp)
0211 target_link_libraries(example PRIVATE ${KTEXTEDITOR_TEST_LINK_LIBS})