mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-21 14:39:10 +00:00
cmake: generate clay main
The clay test suite files clay.h and clay_main.c are generated by the clay python script. Teach CMake about this dependency and remove the generated files from the repository.
This commit is contained in:
parent
06fcf057b6
commit
86a459a843
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,5 @@
|
|||||||
|
/tests-clay/clay.h
|
||||||
|
/tests-clay/clay_main.c
|
||||||
/apidocs
|
/apidocs
|
||||||
/trash-*.exe
|
/trash-*.exe
|
||||||
/libgit2.pc
|
/libgit2.pc
|
||||||
|
@ -91,7 +91,7 @@ FILE(GLOB SRC_H include/git2/*.h)
|
|||||||
|
|
||||||
# On Windows use specific platform sources
|
# On Windows use specific platform sources
|
||||||
IF (WIN32 AND NOT CYGWIN)
|
IF (WIN32 AND NOT CYGWIN)
|
||||||
ADD_DEFINITIONS(-DWIN32 -D_DEBUG)
|
ADD_DEFINITIONS(-DWIN32 -D_DEBUG)
|
||||||
FILE(GLOB SRC src/*.c src/transports/*.c src/win32/*.c)
|
FILE(GLOB SRC src/*.c src/transports/*.c src/win32/*.c)
|
||||||
ELSE()
|
ELSE()
|
||||||
FILE(GLOB SRC src/*.c src/transports/*.c src/unix/*.c)
|
FILE(GLOB SRC src/*.c src/transports/*.c src/unix/*.c)
|
||||||
@ -113,9 +113,9 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libgit2.pc.in ${CMAKE_CURRENT_BINARY_
|
|||||||
|
|
||||||
# Install
|
# Install
|
||||||
INSTALL(TARGETS git2
|
INSTALL(TARGETS git2
|
||||||
RUNTIME DESTINATION ${INSTALL_BIN}
|
RUNTIME DESTINATION ${INSTALL_BIN}
|
||||||
LIBRARY DESTINATION ${INSTALL_LIB}
|
LIBRARY DESTINATION ${INSTALL_LIB}
|
||||||
ARCHIVE DESTINATION ${INSTALL_LIB}
|
ARCHIVE DESTINATION ${INSTALL_LIB}
|
||||||
)
|
)
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgit2.pc DESTINATION ${INSTALL_LIB}/pkgconfig )
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgit2.pc DESTINATION ${INSTALL_LIB}/pkgconfig )
|
||||||
INSTALL(DIRECTORY include/git2 DESTINATION ${INSTALL_INC} )
|
INSTALL(DIRECTORY include/git2 DESTINATION ${INSTALL_INC} )
|
||||||
@ -126,7 +126,7 @@ IF (BUILD_TESTS)
|
|||||||
SET(TEST_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/tests/resources" CACHE PATH "Path to test resources.")
|
SET(TEST_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/tests/resources" CACHE PATH "Path to test resources.")
|
||||||
ADD_DEFINITIONS(-DTEST_RESOURCES=\"${TEST_RESOURCES}\")
|
ADD_DEFINITIONS(-DTEST_RESOURCES=\"${TEST_RESOURCES}\")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(tests)
|
INCLUDE_DIRECTORIES(tests)
|
||||||
FILE(GLOB SRC_TEST tests/t??-*.c)
|
FILE(GLOB SRC_TEST tests/t??-*.c)
|
||||||
|
|
||||||
ADD_EXECUTABLE(libgit2_test tests/test_main.c tests/test_lib.c tests/test_helpers.c ${SRC} ${SRC_TEST} ${SRC_ZLIB} ${SRC_HTTP})
|
ADD_EXECUTABLE(libgit2_test tests/test_main.c tests/test_lib.c tests/test_helpers.c ${SRC} ${SRC_TEST} ${SRC_ZLIB} ${SRC_HTTP})
|
||||||
@ -142,13 +142,22 @@ IF (BUILD_TESTS)
|
|||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF (BUILD_CLAY)
|
IF (BUILD_CLAY)
|
||||||
|
FIND_PACKAGE(PythonInterp REQUIRED)
|
||||||
|
|
||||||
SET(CLAY_FIXTURES "${CMAKE_CURRENT_SOURCE_DIR}/tests/resources/")
|
SET(CLAY_FIXTURES "${CMAKE_CURRENT_SOURCE_DIR}/tests/resources/")
|
||||||
|
SET(CLAY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/tests-clay")
|
||||||
ADD_DEFINITIONS(-DCLAY_FIXTURE_PATH=\"${CLAY_FIXTURES}\")
|
ADD_DEFINITIONS(-DCLAY_FIXTURE_PATH=\"${CLAY_FIXTURES}\")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(tests-clay)
|
INCLUDE_DIRECTORIES(${CLAY_PATH})
|
||||||
FILE(GLOB_RECURSE SRC_TEST tests-clay/*.c)
|
FILE(GLOB_RECURSE SRC_TEST ${CLAY_PATH}/*/*.c ${CLAY_PATH}/clay_helpers.c ${CLAY_PATH}/testlib.c)
|
||||||
|
|
||||||
ADD_EXECUTABLE(libgit2_clay ${SRC} ${SRC_TEST} ${SRC_ZLIB} ${SRC_HTTP})
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${CLAY_PATH}/clay_main.c ${CLAY_PATH}/clay.h
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} clay -vtap .
|
||||||
|
DEPENDS ${CLAY_PATH}/clay ${SRC_TEST}
|
||||||
|
WORKING_DIRECTORY ${CLAY_PATH}
|
||||||
|
)
|
||||||
|
ADD_EXECUTABLE(libgit2_clay ${SRC} ${CLAY_PATH}/clay_main.c ${SRC_TEST} ${SRC_ZLIB} ${SRC_HTTP})
|
||||||
TARGET_LINK_LIBRARIES(libgit2_clay ${CMAKE_THREAD_LIBS_INIT})
|
TARGET_LINK_LIBRARIES(libgit2_clay ${CMAKE_THREAD_LIBS_INIT})
|
||||||
IF (WIN32)
|
IF (WIN32)
|
||||||
TARGET_LINK_LIBRARIES(libgit2_clay ws2_32)
|
TARGET_LINK_LIBRARIES(libgit2_clay ws2_32)
|
||||||
|
@ -9,13 +9,9 @@ https://github.com/tanoku/clay
|
|||||||
|
|
||||||
* Write your modules and tests. Use good, meaningful names.
|
* Write your modules and tests. Use good, meaningful names.
|
||||||
|
|
||||||
* Mix the tests:
|
|
||||||
|
|
||||||
./clay -vtap .
|
|
||||||
|
|
||||||
* Make sure you actually build the tests by setting:
|
* Make sure you actually build the tests by setting:
|
||||||
|
|
||||||
BUILD_CLAY=ON
|
cmake -DBUILD_CLAY=ON build/
|
||||||
|
|
||||||
* Test:
|
* Test:
|
||||||
|
|
||||||
|
@ -1,214 +0,0 @@
|
|||||||
#ifndef __CLAY_TEST_H__
|
|
||||||
#define __CLAY_TEST_H__
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
void clay__assert(
|
|
||||||
int condition,
|
|
||||||
const char *file,
|
|
||||||
int line,
|
|
||||||
const char *error,
|
|
||||||
const char *description,
|
|
||||||
int should_abort);
|
|
||||||
|
|
||||||
void cl_set_cleanup(void (*cleanup)(void *), void *opaque);
|
|
||||||
void cl_fs_cleanup(void);
|
|
||||||
|
|
||||||
#ifdef CLAY_FIXTURE_PATH
|
|
||||||
const char *cl_fixture(const char *fixture_name);
|
|
||||||
void cl_fixture_sandbox(const char *fixture_name);
|
|
||||||
void cl_fixture_cleanup(const char *fixture_name);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Assertion macros with explicit error message
|
|
||||||
*/
|
|
||||||
#define cl_must_pass_(expr, desc) clay__assert((expr) >= 0, __FILE__, __LINE__, "Function call failed: " #expr, desc, 1)
|
|
||||||
#define cl_must_fail_(expr, desc) clay__assert((expr) < 0, __FILE__, __LINE__, "Expected function call to fail: " #expr, desc, 1)
|
|
||||||
#define cl_assert_(expr, desc) clay__assert((expr) != 0, __FILE__, __LINE__, "Expression is not true: " #expr, desc, 1)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check macros with explicit error message
|
|
||||||
*/
|
|
||||||
#define cl_check_pass_(expr, desc) clay__assert((expr) >= 0, __FILE__, __LINE__, "Function call failed: " #expr, desc, 0)
|
|
||||||
#define cl_check_fail_(expr, desc) clay__assert((expr) < 0, __FILE__, __LINE__, "Expected function call to fail: " #expr, desc, 0)
|
|
||||||
#define cl_check_(expr, desc) clay__assert((expr) != 0, __FILE__, __LINE__, "Expression is not true: " #expr, desc, 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Assertion macros with no error message
|
|
||||||
*/
|
|
||||||
#define cl_must_pass(expr) cl_must_pass_(expr, NULL)
|
|
||||||
#define cl_must_fail(expr) cl_must_fail_(expr, NULL)
|
|
||||||
#define cl_assert(expr) cl_assert_(expr, NULL)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check macros with no error message
|
|
||||||
*/
|
|
||||||
#define cl_check_pass(expr) cl_check_pass_(expr, NULL)
|
|
||||||
#define cl_check_fail(expr) cl_check_fail_(expr, NULL)
|
|
||||||
#define cl_check(expr) cl_check_(expr, NULL)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Forced failure/warning
|
|
||||||
*/
|
|
||||||
#define cl_fail(desc) clay__assert(0, __FILE__, __LINE__, "Test failed.", desc, 1)
|
|
||||||
#define cl_warning(desc) clay__assert(0, __FILE__, __LINE__, "Warning during test execution:", desc, 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test method declarations
|
|
||||||
*/
|
|
||||||
extern void clay_on_init(void);
|
|
||||||
extern void clay_on_shutdown(void);
|
|
||||||
extern void test_buf_basic__printf(void);
|
|
||||||
extern void test_buf_basic__resize(void);
|
|
||||||
extern void test_config_add__cleanup(void);
|
|
||||||
extern void test_config_add__initialize(void);
|
|
||||||
extern void test_config_add__to_existing_section(void);
|
|
||||||
extern void test_config_add__to_new_section(void);
|
|
||||||
extern void test_config_new__write_new_config(void);
|
|
||||||
extern void test_config_read__blank_lines(void);
|
|
||||||
extern void test_config_read__case_sensitive(void);
|
|
||||||
extern void test_config_read__empty_files(void);
|
|
||||||
extern void test_config_read__header_in_last_line(void);
|
|
||||||
extern void test_config_read__invalid_ext_headers(void);
|
|
||||||
extern void test_config_read__lone_variable(void);
|
|
||||||
extern void test_config_read__multiline_value(void);
|
|
||||||
extern void test_config_read__number_suffixes(void);
|
|
||||||
extern void test_config_read__prefixes(void);
|
|
||||||
extern void test_config_read__simple_read(void);
|
|
||||||
extern void test_config_read__subsection_header(void);
|
|
||||||
extern void test_config_stress__cleanup(void);
|
|
||||||
extern void test_config_stress__dont_break_on_invalid_input(void);
|
|
||||||
extern void test_config_stress__initialize(void);
|
|
||||||
extern void test_config_write__cleanup(void);
|
|
||||||
extern void test_config_write__delete_inexistent(void);
|
|
||||||
extern void test_config_write__delete_value(void);
|
|
||||||
extern void test_config_write__initialize(void);
|
|
||||||
extern void test_config_write__replace_value(void);
|
|
||||||
extern void test_core_buffer__0(void);
|
|
||||||
extern void test_core_buffer__1(void);
|
|
||||||
extern void test_core_buffer__2(void);
|
|
||||||
extern void test_core_buffer__3(void);
|
|
||||||
extern void test_core_buffer__4(void);
|
|
||||||
extern void test_core_buffer__5(void);
|
|
||||||
extern void test_core_buffer__6(void);
|
|
||||||
extern void test_core_buffer__7(void);
|
|
||||||
extern void test_core_buffer__8(void);
|
|
||||||
extern void test_core_buffer__9(void);
|
|
||||||
extern void test_core_dirent__dont_traverse_dot(void);
|
|
||||||
extern void test_core_dirent__dont_traverse_empty_folders(void);
|
|
||||||
extern void test_core_dirent__traverse_slash_terminated_folder(void);
|
|
||||||
extern void test_core_dirent__traverse_subfolder(void);
|
|
||||||
extern void test_core_dirent__traverse_weird_filenames(void);
|
|
||||||
extern void test_core_filebuf__0(void);
|
|
||||||
extern void test_core_filebuf__1(void);
|
|
||||||
extern void test_core_filebuf__2(void);
|
|
||||||
extern void test_core_filebuf__3(void);
|
|
||||||
extern void test_core_filebuf__4(void);
|
|
||||||
extern void test_core_filebuf__5(void);
|
|
||||||
extern void test_core_oid__initialize(void);
|
|
||||||
extern void test_core_oid__streq(void);
|
|
||||||
extern void test_core_path__0_dirname(void);
|
|
||||||
extern void test_core_path__1_basename(void);
|
|
||||||
extern void test_core_path__2_topdir(void);
|
|
||||||
extern void test_core_path__5_joins(void);
|
|
||||||
extern void test_core_path__6_long_joins(void);
|
|
||||||
extern void test_core_path__7_path_to_dir(void);
|
|
||||||
extern void test_core_path__8_self_join(void);
|
|
||||||
extern void test_core_rmdir__delete_recursive(void);
|
|
||||||
extern void test_core_rmdir__fail_to_delete_non_empty_dir(void);
|
|
||||||
extern void test_core_rmdir__initialize(void);
|
|
||||||
extern void test_core_string__0(void);
|
|
||||||
extern void test_core_string__1(void);
|
|
||||||
extern void test_core_strtol__int32(void);
|
|
||||||
extern void test_core_strtol__int64(void);
|
|
||||||
extern void test_core_vector__0(void);
|
|
||||||
extern void test_core_vector__1(void);
|
|
||||||
extern void test_core_vector__2(void);
|
|
||||||
extern void test_index_rename__single_file(void);
|
|
||||||
extern void test_network_remotelocal__cleanup(void);
|
|
||||||
extern void test_network_remotelocal__initialize(void);
|
|
||||||
extern void test_network_remotelocal__retrieve_advertised_references(void);
|
|
||||||
extern void test_network_remotes__cleanup(void);
|
|
||||||
extern void test_network_remotes__fnmatch(void);
|
|
||||||
extern void test_network_remotes__initialize(void);
|
|
||||||
extern void test_network_remotes__parsing(void);
|
|
||||||
extern void test_network_remotes__refspec_parsing(void);
|
|
||||||
extern void test_network_remotes__transform(void);
|
|
||||||
extern void test_object_commit_commitstagedfile__cleanup(void);
|
|
||||||
extern void test_object_commit_commitstagedfile__generate_predictable_object_ids(void);
|
|
||||||
extern void test_object_commit_commitstagedfile__initialize(void);
|
|
||||||
extern void test_object_raw_chars__build_valid_oid_from_raw_bytes(void);
|
|
||||||
extern void test_object_raw_chars__find_invalid_chars_in_oid(void);
|
|
||||||
extern void test_object_raw_compare__compare_allocfmt_oids(void);
|
|
||||||
extern void test_object_raw_compare__compare_fmt_oids(void);
|
|
||||||
extern void test_object_raw_compare__compare_pathfmt_oids(void);
|
|
||||||
extern void test_object_raw_compare__succeed_on_copy_oid(void);
|
|
||||||
extern void test_object_raw_compare__succeed_on_oid_comparison_equal(void);
|
|
||||||
extern void test_object_raw_compare__succeed_on_oid_comparison_greater(void);
|
|
||||||
extern void test_object_raw_compare__succeed_on_oid_comparison_lesser(void);
|
|
||||||
extern void test_object_raw_convert__succeed_on_oid_to_string_conversion(void);
|
|
||||||
extern void test_object_raw_convert__succeed_on_oid_to_string_conversion_big(void);
|
|
||||||
extern void test_object_raw_fromstr__fail_on_invalid_oid_string(void);
|
|
||||||
extern void test_object_raw_fromstr__succeed_on_valid_oid_string(void);
|
|
||||||
extern void test_object_raw_hash__hash_buffer_in_single_call(void);
|
|
||||||
extern void test_object_raw_hash__hash_by_blocks(void);
|
|
||||||
extern void test_object_raw_hash__hash_commit_object(void);
|
|
||||||
extern void test_object_raw_hash__hash_junk_data(void);
|
|
||||||
extern void test_object_raw_hash__hash_multi_byte_object(void);
|
|
||||||
extern void test_object_raw_hash__hash_one_byte_object(void);
|
|
||||||
extern void test_object_raw_hash__hash_tag_object(void);
|
|
||||||
extern void test_object_raw_hash__hash_tree_object(void);
|
|
||||||
extern void test_object_raw_hash__hash_two_byte_object(void);
|
|
||||||
extern void test_object_raw_hash__hash_vector(void);
|
|
||||||
extern void test_object_raw_hash__hash_zero_length_object(void);
|
|
||||||
extern void test_object_raw_short__oid_shortener_no_duplicates(void);
|
|
||||||
extern void test_object_raw_short__oid_shortener_stresstest_git_oid_shorten(void);
|
|
||||||
extern void test_object_raw_size__validate_oid_size(void);
|
|
||||||
extern void test_object_raw_type2string__check_type_is_loose(void);
|
|
||||||
extern void test_object_raw_type2string__convert_string_to_type(void);
|
|
||||||
extern void test_object_raw_type2string__convert_type_to_string(void);
|
|
||||||
extern void test_object_tree_diff__addition(void);
|
|
||||||
extern void test_object_tree_diff__cleanup(void);
|
|
||||||
extern void test_object_tree_diff__deletion(void);
|
|
||||||
extern void test_object_tree_diff__initialize(void);
|
|
||||||
extern void test_object_tree_diff__modification(void);
|
|
||||||
extern void test_object_tree_diff__more(void);
|
|
||||||
extern void test_object_tree_frompath__cleanup(void);
|
|
||||||
extern void test_object_tree_frompath__fail_when_processing_an_invalid_path(void);
|
|
||||||
extern void test_object_tree_frompath__fail_when_processing_an_unknown_tree_segment(void);
|
|
||||||
extern void test_object_tree_frompath__initialize(void);
|
|
||||||
extern void test_object_tree_frompath__retrieve_tree_from_path_to_treeentry(void);
|
|
||||||
extern void test_odb_loose__cleanup(void);
|
|
||||||
extern void test_odb_loose__exists(void);
|
|
||||||
extern void test_odb_loose__initialize(void);
|
|
||||||
extern void test_odb_loose__simple_reads(void);
|
|
||||||
extern void test_odb_packed__cleanup(void);
|
|
||||||
extern void test_odb_packed__initialize(void);
|
|
||||||
extern void test_odb_packed__mass_read(void);
|
|
||||||
extern void test_odb_packed__read_header_0(void);
|
|
||||||
extern void test_odb_packed__read_header_1(void);
|
|
||||||
extern void test_odb_sorting__alternate_backends_sorting(void);
|
|
||||||
extern void test_odb_sorting__basic_backends_sorting(void);
|
|
||||||
extern void test_odb_sorting__cleanup(void);
|
|
||||||
extern void test_odb_sorting__initialize(void);
|
|
||||||
extern void test_refs_crashes__double_free(void);
|
|
||||||
extern void test_repo_getters__cleanup(void);
|
|
||||||
extern void test_repo_getters__empty(void);
|
|
||||||
extern void test_repo_getters__head_detached(void);
|
|
||||||
extern void test_repo_getters__head_orphan(void);
|
|
||||||
extern void test_repo_getters__initialize(void);
|
|
||||||
extern void test_repo_init__bare_repo(void);
|
|
||||||
extern void test_repo_init__bare_repo_noslash(void);
|
|
||||||
extern void test_repo_init__initialize(void);
|
|
||||||
extern void test_repo_init__standard_repo(void);
|
|
||||||
extern void test_repo_init__standard_repo_noslash(void);
|
|
||||||
extern void test_repo_open__bare_empty_repo(void);
|
|
||||||
extern void test_repo_open__standard_empty_repo(void);
|
|
||||||
extern void test_status_single__hash_single_file(void);
|
|
||||||
extern void test_status_worktree__cleanup(void);
|
|
||||||
extern void test_status_worktree__empty_repository(void);
|
|
||||||
extern void test_status_worktree__initialize(void);
|
|
||||||
extern void test_status_worktree__whole_repository(void);
|
|
||||||
|
|
||||||
#endif
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user