]> git.proxmox.com Git - libgit2.git/blob - tests/CMakeLists.txt
49999f4815e4a8ae40638fb68f1c2f890dd8ed93
[libgit2.git] / tests / CMakeLists.txt
1 SET(Python_ADDITIONAL_VERSIONS 3 2.7)
2 FIND_PACKAGE(PythonInterp)
3
4 IF(NOT PYTHONINTERP_FOUND)
5 MESSAGE(FATAL_ERROR "Could not find a python interpeter, which is needed to build the tests. "
6 "Make sure python is available, or pass -DBUILD_CLAR=OFF to skip building the tests")
7 ENDIF()
8
9 SET(CLAR_FIXTURES "${CMAKE_CURRENT_SOURCE_DIR}/resources/")
10 SET(CLAR_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
11 ADD_DEFINITIONS(-DCLAR_FIXTURE_PATH=\"${CLAR_FIXTURES}\")
12 ADD_DEFINITIONS(-DCLAR_TMPDIR=\"libgit2_tests\")
13 ADD_DEFINITIONS(-DCLAR_WIN32_LONGPATHS)
14 ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
15
16 # Ensure that we do not use deprecated functions internally
17 ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD)
18
19 INCLUDE_DIRECTORIES(${CLAR_PATH} ${libgit2_BINARY_DIR}/src)
20 FILE(GLOB_RECURSE SRC_TEST ${CLAR_PATH}/*/*.c ${CLAR_PATH}/*/*.h)
21 SET(SRC_CLAR "main.c" "clar_libgit2.c" "clar_libgit2_trace.c" "clar_libgit2_timer.c" "clar.c")
22
23 IF(MSVC_IDE)
24 LIST(APPEND SRC_CLAR "precompiled.c")
25 ENDIF()
26
27 ADD_CUSTOM_COMMAND(
28 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/clar.suite
29 COMMAND ${PYTHON_EXECUTABLE} generate.py -o "${CMAKE_CURRENT_BINARY_DIR}" -f -xonline -xstress -xperf .
30 DEPENDS ${SRC_TEST}
31 WORKING_DIRECTORY ${CLAR_PATH}
32 )
33 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
34
35 SET_SOURCE_FILES_PROPERTIES(
36 ${CLAR_PATH}/clar.c
37 PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/clar.suite)
38
39 INCLUDE_DIRECTORIES(${LIBGIT2_INCLUDES})
40 INCLUDE_DIRECTORIES(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
41
42 ADD_EXECUTABLE(libgit2_clar ${SRC_CLAR} ${SRC_TEST} ${LIBGIT2_OBJECTS})
43
44 SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES C_STANDARD 90)
45 SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
46
47 TARGET_INCLUDE_DIRECTORIES(libgit2_clar PRIVATE ../src PUBLIC ../include)
48 TARGET_LINK_LIBRARIES(libgit2_clar ${LIBGIT2_LIBS})
49 IDE_SPLIT_SOURCES(libgit2_clar)
50
51 IF (MSVC_IDE)
52 # Precompiled headers
53 SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
54 SET_SOURCE_FILES_PROPERTIES("precompiled.c" COMPILE_FLAGS "/Ycprecompiled.h")
55 ENDIF ()
56
57 FUNCTION(ADD_CLAR_TEST name)
58 IF (NOT USE_LEAK_CHECKER STREQUAL "OFF")
59 ADD_TEST(${name} "${libgit2_SOURCE_DIR}/script/${USE_LEAK_CHECKER}.sh" "${libgit2_BINARY_DIR}/libgit2_clar" ${ARGN})
60 ELSE()
61 ADD_TEST(${name} "${libgit2_BINARY_DIR}/libgit2_clar" ${ARGN})
62 ENDIF()
63 ENDFUNCTION(ADD_CLAR_TEST)
64
65 ADD_CLAR_TEST(offline -v -xonline)
66 ADD_CLAR_TEST(invasive -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root)
67 ADD_CLAR_TEST(online -v -sonline -xonline::customcert)
68 ADD_CLAR_TEST(online_customcert -v -sonline::customcert)
69 ADD_CLAR_TEST(gitdaemon -v -sonline::push)
70 ADD_CLAR_TEST(ssh -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths -sonline::clone::path_whitespace_ssh)
71 ADD_CLAR_TEST(proxy -v -sonline::clone::proxy)
72 ADD_CLAR_TEST(auth_clone -v -sonline::clone::cred)
73 ADD_CLAR_TEST(auth_clone_and_push -v -sonline::clone::push -sonline::push)