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})