From fe7e6eb54543c89358c561ae96d143c1c6c24610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 1 Jun 2020 20:09:01 +0200 Subject: [PATCH] Bootstrap for C++-side unit tests. So far all tests were done only in Python, but now we'll need them in CMake / CTest also. --- CMakeLists.txt | 9 +++++++++ package/archlinux/PKGBUILD | 4 ++++ package/archlinux/PKGBUILD-coverage | 1 + package/ci/appveyor-desktop-gles.bat | 9 +++++++-- package/ci/appveyor-desktop.bat | 9 +++++++-- package/ci/travis-desktop-gles.sh | 5 ++++- package/ci/travis-desktop.sh | 5 ++++- 7 files changed, 36 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5674ad2..298ba25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,15 @@ include(CMakeDependentOption) # Libraries to build option(WITH_PYTHON "Build Python bindings" OFF) +option(BUILD_TESTS "Build unit tests" OFF) + +if(BUILD_TESTS) + find_package(Corrade REQUIRED TestSuite) + if(CORRADE_TARGET_IOS) + set(CORRADE_TESTSUITE_BUNDLE_IDENTIFIER_PREFIX "cz.mosra.magnum-bindings") + endif() + enable_testing() +endif() set(MAGNUMBINDINGS_CMAKE_MODULE_INSTALL_DIR share/cmake/MagnumBindings) diff --git a/package/archlinux/PKGBUILD b/package/archlinux/PKGBUILD index 643e338..cc96b5b 100644 --- a/package/archlinux/PKGBUILD +++ b/package/archlinux/PKGBUILD @@ -24,11 +24,15 @@ build() { -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DWITH_PYTHON=ON \ + -DBUILD_TESTS=ON \ -G Ninja ninja } check() { + cd "$_rootdir/build" + CORRADE_TEST_COLOR=ON ctest --output-on-failure + cd "$_rootdir/src/python/corrade" python -m unittest -v diff --git a/package/archlinux/PKGBUILD-coverage b/package/archlinux/PKGBUILD-coverage index fc85522..ce9b194 100644 --- a/package/archlinux/PKGBUILD-coverage +++ b/package/archlinux/PKGBUILD-coverage @@ -25,6 +25,7 @@ build() { -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_INSTALL_PREFIX=/usr \ -DWITH_PYTHON=ON \ + -DBUILD_TESTS=ON \ -G Ninja ninja } diff --git a/package/ci/appveyor-desktop-gles.bat b/package/ci/appveyor-desktop-gles.bat index a7982c6..75a08fe 100644 --- a/package/ci/appveyor-desktop-gles.bat +++ b/package/ci/appveyor-desktop-gles.bat @@ -24,7 +24,7 @@ cmake .. ^ -DBUILD_STATIC=%BUILD_STATIC% ^ -DWITH_INTERCONNECT=OFF ^ -DWITH_PLUGINMANAGER=ON ^ - -DWITH_TESTSUITE=OFF ^ + -DWITH_TESTSUITE=ON ^ -DUTILITY_USE_ANSI_COLORS=ON ^ -G Ninja || exit /b cmake --build . || exit /b @@ -87,15 +87,20 @@ cmake .. ^ -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ -DPYBIND11_PYTHON_VERSION=3.6 ^ -DWITH_PYTHON=ON ^ + -DBUILD_TESTS=ON ^ -G Ninja || exit /b cmake --build . || exit /b cmake --build . --target install || exit /b +rem Test +set CORRADE_TEST_COLOR=ON +ctest -V -E GLTest || exit /b + rem Verify the setuptools install cd src/python || exit /b python setup.py install --root="%APPVEYOR_BUILD_FOLDER%/install" || exit /b -rem Run tests & gather coverage +rem Run python tests & gather coverage cd ../../../src/python/corrade || exit /b coverage run -m unittest -v || exit /b cp .coverage ../.coverage.corrade || exit /b diff --git a/package/ci/appveyor-desktop.bat b/package/ci/appveyor-desktop.bat index fb7113d..0111fb7 100644 --- a/package/ci/appveyor-desktop.bat +++ b/package/ci/appveyor-desktop.bat @@ -26,7 +26,7 @@ cmake .. ^ -DBUILD_STATIC=%BUILD_STATIC% ^ -DWITH_INTERCONNECT=OFF ^ -DWITH_PLUGINMANAGER=ON ^ - -DWITH_TESTSUITE=OFF ^ + -DWITH_TESTSUITE=ON ^ -DUTILITY_USE_ANSI_COLORS=ON ^ -G Ninja || exit /b cmake --build . || exit /b @@ -88,15 +88,20 @@ cmake .. ^ -DCMAKE_PREFIX_PATH=%APPVEYOR_BUILD_FOLDER%/SDL ^ -DPYBIND11_PYTHON_VERSION=3.6 ^ -DWITH_PYTHON=ON ^ + -DBUILD_TESTS=ON ^ -G Ninja || exit /b cmake --build . || exit /b cmake --build . --target install || exit /b +rem Test +set CORRADE_TEST_COLOR=ON +ctest -V -E GLTest || exit /b + rem Verify the setuptools install cd src/python || exit /b python setup.py install --root="%APPVEYOR_BUILD_FOLDER%/install" || exit /b -rem Run tests & gather coverage +rem Run python tests & gather coverage cd ../../../src/python/corrade || exit /b coverage run -m unittest -v || exit /b cp .coverage ../.coverage.corrade || exit /b diff --git a/package/ci/travis-desktop-gles.sh b/package/ci/travis-desktop-gles.sh index 7d05e6e..dace356 100755 --- a/package/ci/travis-desktop-gles.sh +++ b/package/ci/travis-desktop-gles.sh @@ -12,7 +12,7 @@ cmake .. \ -DBUILD_DEPRECATED=OFF \ -DWITH_INTERCONNECT=OFF \ -DWITH_PLUGINMANAGER=ON \ - -DWITH_TESTSUITE=OFF \ + -DWITH_TESTSUITE=ON \ -G Ninja ninja install cd ../.. @@ -78,9 +78,12 @@ cmake .. \ -DCMAKE_INSTALL_RPATH=$HOME/swiftshader \ -DPYBIND11_PYTHON_VERSION=3.6 \ -DWITH_PYTHON=ON \ + -DBUILD_TESTS=ON \ -G Ninja ninja +CORRADE_TEST_COLOR=ON ctest -V + # Verify the setuptools install cd src/python python3 setup.py install --root="$TRAVIS_BUILD_DIR/install" --prefix=/usr diff --git a/package/ci/travis-desktop.sh b/package/ci/travis-desktop.sh index 48e4d80..6eae6c9 100755 --- a/package/ci/travis-desktop.sh +++ b/package/ci/travis-desktop.sh @@ -13,7 +13,7 @@ cmake .. \ -DBUILD_STATIC=$BUILD_STATIC \ -DWITH_INTERCONNECT=OFF \ -DWITH_PLUGINMANAGER=ON \ - -DWITH_TESTSUITE=OFF \ + -DWITH_TESTSUITE=ON \ -G Ninja ninja install cd ../.. @@ -72,9 +72,12 @@ cmake .. \ -DCMAKE_PREFIX_PATH=$HOME/pybind11 \ -DPYBIND11_PYTHON_VERSION=3.6 \ -DWITH_PYTHON=ON \ + -DBUILD_TESTS=ON \ -G Ninja ninja +CORRADE_TEST_COLOR=ON ctest -V + # Verify the setuptools install cd src/python python3 setup.py install --root="$TRAVIS_BUILD_DIR/install" --prefix=/usr