* Speedups: remove dependency on c++ * Speedups: intset: handle malloc failing * Speedups: intset: fix corner case for int64 on 32bit systems original idea was to only use bucket->val if int<pointer, but we always have a union now anyway * Speedups: add size comment to player_set bucket configuration * test: more tests for LocationStore.find_item * test: require _speedups in CI This kind of tests that the build succeeds. * test: even more tests for LocationStore.find_item * Speedups: intset uniform comment style * Speedups: intset: avoid memory leak when realloc fails * Speedups: intset: make `gcc -pedantic -std=c99 -fanalyzer` without warnings Unnamed unions are not in C99, this got fixed. The overhead of setting count=0 is minimal or optimized-out and silences -fanalizer (see comment). * Speedups: don't leak memory in case of exception * Speedups: intset: validate alloc and free This won't happen in our cython, but it's still a good addition. * CI: add test framework for C/C++ code * CI: ctest: fix cwd * Speedups: intset: ignore msvc warning * Tests: intset: revert attempt at no-asan We solve this with env vars in ctest now, and this fails for msvc. * Test: cpp: docs: fix typo * Test: cpp: docs: fix another typo * Test: intset: proper bucket count for Negative test INTxx_MIN % 1 would not produce a negative number, so the test was flawed.
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
cmake_minimum_required(VERSION 3.5)
 | 
						|
project(ap-cpp-tests)
 | 
						|
 | 
						|
enable_testing()
 | 
						|
 | 
						|
find_package(GTest REQUIRED)
 | 
						|
 | 
						|
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
 | 
						|
    add_definitions("/source-charset:utf-8")
 | 
						|
    set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
 | 
						|
    set(CMAKE_CXX_FLAGS_RELEASE "/MT")
 | 
						|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
 | 
						|
    # enable static analysis for gcc
 | 
						|
    add_compile_options(-fanalyzer -Werror)
 | 
						|
    # disable stuff that gets triggered by googletest
 | 
						|
    add_compile_options(-Wno-analyzer-malloc-leak)
 | 
						|
    # enable asan for gcc
 | 
						|
    add_compile_options(-fsanitize=address)
 | 
						|
    add_link_options(-fsanitize=address)
 | 
						|
endif ()
 | 
						|
 | 
						|
add_executable(test_default)
 | 
						|
 | 
						|
target_include_directories(test_default
 | 
						|
        PRIVATE
 | 
						|
        ${GTEST_INCLUDE_DIRS}
 | 
						|
)
 | 
						|
 | 
						|
target_link_libraries(test_default
 | 
						|
        ${GTEST_BOTH_LIBRARIES}
 | 
						|
)
 | 
						|
 | 
						|
add_test(
 | 
						|
        NAME test_default
 | 
						|
        COMMAND  test_default
 | 
						|
)
 | 
						|
 | 
						|
set_property(
 | 
						|
        TEST test_default
 | 
						|
        PROPERTY ENVIRONMENT "ASAN_OPTIONS=allocator_may_return_null=1"
 | 
						|
)
 | 
						|
 | 
						|
file(GLOB ITEMS *)
 | 
						|
foreach(item ${ITEMS})
 | 
						|
    if(IS_DIRECTORY ${item} AND EXISTS ${item}/CMakeLists.txt)
 | 
						|
        message(${item})
 | 
						|
        add_subdirectory(${item})
 | 
						|
    endif()
 | 
						|
endforeach()
 |