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