Unit testing with cmake (#31)

* testing using ctest

* emove old testing script

* added github workflow CI

* updated CI
This commit is contained in:
Martin Bařinka 2021-04-29 12:38:21 +02:00 committed by GitHub
parent 799ecab03d
commit 4ea8f3ff12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 16 deletions

37
.github/workflows/cmake.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: CMake
on:
- push
- pull_request
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target make_tests
- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure

View File

@ -1,10 +0,0 @@
#!/bin/env bash
for i in $(ls -1 tests_*)
do
./$i;
ret=$?;
if [ $ret -ne 0 ];
then
exit $ret;
fi
done

View File

@ -13,9 +13,9 @@ set(no08 PREFIX=no08 FIXMATH_NO_ROUNDING FIXMATH_OPTIMIZE_8BIT)
set(rn08 PREFIX=rn08 FIXMATH_NO_OVERFLOW FIXMATH_OPTIMIZE_8BIT)
set(nn08 PREFIX=nn08 FIXMATH_NO_OVERFLOW FIXMATH_NO_ROUNDING FIXMATH_OPTIMIZE_8BIT)
configure_file(tests/run_tests ${CMAKE_BINARY_DIR}/run_tests COPYONLY)
enable_testing()
add_custom_target(tests)
add_custom_target(make_tests)
function(create_variant name defs)
add_library(libfixmath_${name} STATIC ${libfixmath-srcs})
@ -24,7 +24,8 @@ function(create_variant name defs)
target_link_libraries(tests_${name} PRIVATE libfixmath_${name} m)
target_include_directories(tests_${name} PRIVATE ${CMAKE_SOURCE_DIR})
target_compile_definitions(tests_${name} PRIVATE ${defs})
add_dependencies(tests tests_${name})
add_dependencies(make_tests tests_${name})
add_test(NAME tests_${name} COMMAND tests_${name})
endfunction()

View File

@ -21,7 +21,7 @@ extern unsigned stack_depth;
{ \
fflush(stdout); \
fflush(stderr); \
fprintf(stdout, \
fprintf(stderr, \
"\033[31;1m FAILED:\033[22;39m%*s" #x \
" \033[0mat: " __FILE__ ":" STR2(__LINE__) " \n", \
stack_depth, ""); \
@ -45,7 +45,7 @@ extern unsigned stack_depth;
{ \
fflush(stdout); \
fflush(stderr); \
fprintf(stdout, \
fprintf(stderr, \
"\033[31;1m FAILED:\033[22;39m%*sASSERT_NEAR a: %f, b: " \
"%f, eps: %f\033[0m at: %s(), " __FILE__ \
":" STR2(__LINE__) "\n", \
@ -63,7 +63,7 @@ extern unsigned stack_depth;
{ \
fflush(stdout); \
fflush(stderr); \
fprintf(stdout, \
fprintf(stderr, \
"\033[31;1m FAILED:\033[22;39m%*sASSERT_EQ a: %i, b: " \
"%i\033[0m at: %s(), " __FILE__ ":" STR2(__LINE__) "\n", \
stack_depth, "", (a), (b), __func__); \