From 0ba57912ff713175f8a1266add7bd20e58c59eb2 Mon Sep 17 00:00:00 2001 From: Joao Paulo Magalhaes Date: Mon, 26 Dec 2022 14:15:27 +0000 Subject: [PATCH] Enable tests with cross compilation --- .github/workflows/vs17-arm-ci.yml | 21 ++++++++++----- .github/workflows/vs17-ci.yml | 40 +++++++++++++++++++---------- .github/workflows/vs17-clang-ci.yml | 15 ++++++----- .github/workflows/vs17-cxx20.yml | 21 +++++++++------ tests/CMakeLists.txt | 6 ++++- 5 files changed, 68 insertions(+), 35 deletions(-) diff --git a/.github/workflows/vs17-arm-ci.yml b/.github/workflows/vs17-arm-ci.yml index 7e0ec0b..7c2791a 100644 --- a/.github/workflows/vs17-arm-ci.yml +++ b/.github/workflows/vs17-arm-ci.yml @@ -4,18 +4,27 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {arch: ARM} - - {arch: ARM64} + - {gen: Visual Studio 17 2022, arch: ARM, cfg: Release} + - {gen: Visual Studio 17 2022, arch: ARM, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: ARM64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: ARM64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - - name: Use cmake + - name: configure run: | - cmake -A ${{ matrix.arch }} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_TEST=ON -B build && - cmake --build build --verbose + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_TEST=ON + - name: build + run: | + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + # disabled because it requires a toolchain + #- name: test + # run: | + # cd build && + # ctest --output-on-failure -C ${{matrix.cfg}} diff --git a/.github/workflows/vs17-ci.yml b/.github/workflows/vs17-ci.yml index 68e5ce1..91a79f4 100644 --- a/.github/workflows/vs17-ci.yml +++ b/.github/workflows/vs17-ci.yml @@ -4,26 +4,40 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {gen: Visual Studio 17 2022, arch: Win32} - - {gen: Visual Studio 17 2022, arch: x64} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - - name: Use cmake + - name: configure + run: | + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination + - name: build + run: | + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + - name: test run: | - mkdir build && cd build && - cmake ${{matrix.cxx}} ${{matrix.arch}} -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. && - cmake --build . --verbose && - ctest --output-on-failure && - cmake --install . && - cd ../tests/installation_tests/find && - mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination .. && cmake --build . --verbose - cd ../../issue72_installation && - mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination .. && cmake --build . --verbose + ctest --output-on-failure -C ${{matrix.cfg}} + - name: install + run: | + cd build && + cmake --install . + - name: test install (find) + run: | + cd tests/installation_tests/find && + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination && + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + - name: test install (issue 72) + run: | + cd tests/installation_tests/issue72_installation && + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination && + cmake --build build --verbose --config ${{matrix.cfg}} --parallel diff --git a/.github/workflows/vs17-clang-ci.yml b/.github/workflows/vs17-clang-ci.yml index e116e72..e99d5d4 100644 --- a/.github/workflows/vs17-clang-ci.yml +++ b/.github/workflows/vs17-clang-ci.yml @@ -4,24 +4,25 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {gen: Visual Studio 17 2022, arch: Win32} - - {gen: Visual Studio 17 2022, arch: x64} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - name: Configure run: | - mkdir build - cd build && cmake -G "${{matrix.gen}}" -A ${{matrix.arch}} -T ClangCL -DFASTFLOAT_TEST=ON .. + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -T ClangCL -DFASTFLOAT_TEST=ON - name: Build - run: cmake --build build --config Release --parallel + run: cmake --build build --config ${{matrix.cfg}} --parallel --verbose - name: Run basic tests run: | cd build - ctest -C Release --output-on-failure -R basictest + ctest -C ${{matrix.cfg}} --output-on-failure -R basictest diff --git a/.github/workflows/vs17-cxx20.yml b/.github/workflows/vs17-cxx20.yml index 8eca7db..4231340 100644 --- a/.github/workflows/vs17-cxx20.yml +++ b/.github/workflows/vs17-cxx20.yml @@ -4,21 +4,26 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {gen: Visual Studio 17 2022, arch: Win32} - - {gen: Visual Studio 17 2022, arch: x64} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - - name: Use cmake + - name: configure + run: | + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. + - name: build + run: | + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + - name: test run: | - mkdir build && cd build && - cmake ${{matrix.cxx}} ${{matrix.arch}} -DCMAKE_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. && - cmake --build . --verbose && - ctest --output-on-failure + ctest --output-on-failure -C ${{matrix.cfg}} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6534217..b4a5767 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -38,7 +38,11 @@ add_library(supplemental-data INTERFACE) target_compile_definitions(supplemental-data INTERFACE SUPPLEMENTAL_TEST_DATA_DIR="${supplemental_test_files_BINARY_DIR}/data") function(fast_float_add_cpp_test TEST_NAME) add_executable(${TEST_NAME} ${TEST_NAME}.cpp) - add_test(${TEST_NAME} ${TEST_NAME}) + if(CMAKE_CROSSCOMPILING) + set(ccemulator ${CMAKE_CROSSCOMPILING_EMULATOR}) + endif() + add_test(NAME ${TEST_NAME} + COMMAND ${ccemulator} $) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") target_compile_options(${TEST_NAME} PUBLIC /EHsc) endif()