[build] Re-add benchmark tests to the buildsystem

Probably lost on the cmake migration
This commit is contained in:
Thiago Marcos P. Santos
2016-10-04 17:26:08 +03:00
committed by Thiago Marcos P. Santos
parent dd604a7b36
commit 5829c0dbc6
8 changed files with 101 additions and 0 deletions

View File

@@ -45,6 +45,7 @@ before_script:
- cmake --version
script:
- make linux
- make benchmark
- make test
- make run-test
after_script:

View File

@@ -59,6 +59,11 @@ if(COMMAND mbgl_platform_test)
include(cmake/test.cmake)
endif()
if(COMMAND mbgl_platform_benchmark)
include(cmake/benchmark-files.cmake)
include(cmake/benchmark.cmake)
endif()
if(COMMAND mbgl_platform_glfw)
include(cmake/glfw.cmake)
endif()

View File

@@ -285,6 +285,10 @@ linux: glfw-app render offline
test: $(LINUX_BUILD)
$(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) mbgl-test
.PHONY: benchmark
benchmark: $(LINUX_BUILD)
$(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) mbgl-benchmark
ifneq (,$(shell which gdb))
GDB = gdb -batch -return-child-result -ex 'set print thread-events off' -ex 'run' -ex 'thread apply all bt' --args
endif
@@ -295,6 +299,12 @@ run-test: run-test-*
run-test-%: test
$(GDB) $(LINUX_OUTPUT_PATH)/mbgl-test --gtest_catch_exceptions=0 --gtest_filter=$*
.PHONY: run-benchmark
run-benchmark: run-benchmark-.
run-benchmark-%: benchmark
$(GDB) $(LINUX_OUTPUT_PATH)/mbgl-benchmark --benchmark_filter=$*
.PHONY: render
render: $(LINUX_BUILD)
$(NINJA) $(NINJA_ARGS) -j$(JOBS) -C $(LINUX_OUTPUT_PATH) mbgl-render

View File

@@ -0,0 +1,15 @@
# Do not edit. Regenerate this with ./scripts/generate-benchmark-files.sh
set(MBGL_BENCHMARK_FILES
# include/mbgl
benchmark/include/mbgl/benchmark.hpp
# parse
benchmark/parse/filter.benchmark.cpp
# src
benchmark/src/main.cpp
# src/mbgl/benchmark
benchmark/src/mbgl/benchmark/benchmark.cpp
)

32
cmake/benchmark.cmake Normal file
View File

@@ -0,0 +1,32 @@
add_executable(mbgl-benchmark
${MBGL_BENCHMARK_FILES}
)
target_compile_options(mbgl-benchmark
PRIVATE -fvisibility-inlines-hidden
)
target_include_directories(mbgl-benchmark
PRIVATE include
PRIVATE src # TODO: eliminate
PRIVATE benchmark/include
PRIVATE benchmark/src
PRIVATE platform/default
)
if(DEFINED ENV{CI})
target_compile_definitions(mbgl-benchmark
PRIVATE -DCI_BUILD=1
)
endif()
target_link_libraries(mbgl-benchmark
PRIVATE mbgl-core
)
target_add_mason_package(mbgl-benchmark PRIVATE benchmark)
target_add_mason_package(mbgl-benchmark PRIVATE rapidjson)
mbgl_platform_benchmark()
create_source_groups(mbgl-benchmark)

View File

@@ -7,6 +7,7 @@ mason_use(libpng VERSION 1.6.25)
mason_use(libjpeg-turbo VERSION 1.5.0)
mason_use(webp VERSION 0.5.1)
mason_use(gtest VERSION 1.7.0${MASON_CXXABI_SUFFIX})
mason_use(benchmark VERSION 1.0.0)
include(cmake/loop-uv.cmake)
@@ -102,6 +103,23 @@ macro(mbgl_platform_test)
endmacro()
macro(mbgl_platform_benchmark)
target_sources(mbgl-benchmark
PRIVATE benchmark/src/main.cpp
)
set_source_files_properties(
benchmark/src/main.cpp
PROPERTIES
COMPILE_FLAGS -DWORK_DIRECTORY="${CMAKE_SOURCE_DIR}"
)
target_link_libraries(mbgl-benchmark
PRIVATE mbgl-loop
)
endmacro()
macro(mbgl_platform_node)
# Enabling node module by defining this macro
endmacro()

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -e
set -o pipefail
echo "# Do not edit. Regenerate this with ./scripts/generate-benchmark-files.sh" > cmake/benchmark-files.cmake
echo "" >> cmake/benchmark-files.cmake
echo "set(MBGL_BENCHMARK_FILES" >> cmake/benchmark-files.cmake
PREFIX=
for FILE in $(git ls-files "benchmark/*.hpp" "benchmark/*.cpp" "benchmark/*.h" "benchmark/*.c" | sort) ; do
CURRENT_PREFIX=$(dirname ${FILE#benchmark/})
if [ "${PREFIX}" != "${CURRENT_PREFIX}" ]; then
if [ ! -z "${PREFIX}" ]; then echo "" >> cmake/benchmark-files.cmake ; fi
echo " # ${CURRENT_PREFIX}" >> cmake/benchmark-files.cmake
PREFIX="${CURRENT_PREFIX}"
fi
echo " ${FILE}" >> cmake/benchmark-files.cmake
done
echo ")" >> cmake/benchmark-files.cmake
git diff cmake/benchmark-files.cmake