Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorLeitwolf112026-09-24 22:07:03 +0300
committerLeitwolf112026-09-24 22:07:03 +0300
commit9ad804cedf4cc4a85ef89fe097f97a3b44654360 (patch)
treef088e919776b22d19387377bdbec727daa2429c0 /.github
parent02f8b5593a15cdec8558256e6f40a0c7fb5862d6 (diff)
downloadcatch3-0.1.0.tar.gz
Add Progmasoft Catch3 property testing and build support0.1.0
Introduce deterministic property execution, built-in generators, shrinking, replayable seeds, and a separate Progmasoft-owned header API while preserving Catch2 compatibility targets and the C++14 engine baseline. Add Bazel, Meson, Xmake, and Premake integration and tests alongside the existing CMake build. Replace Linux-only workflow coverage with Windows and macOS jobs and document the Catch2/Catch3 distinction.
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/alternative-build-systems.yml64
-rw-r--r--.github/workflows/linux-bazel-builds.yml28
-rw-r--r--.github/workflows/linux-meson-builds.yml48
-rw-r--r--.github/workflows/linux-other-builds.yml129
-rw-r--r--.github/workflows/linux-simple-builds.yml109
-rw-r--r--.github/workflows/meson-builds.yml42
-rw-r--r--.github/workflows/package-manager-builds.yaml3
-rw-r--r--.github/workflows/validate-header-guards.yml2
8 files changed, 109 insertions, 316 deletions
diff --git a/.github/workflows/alternative-build-systems.yml b/.github/workflows/alternative-build-systems.yml
new file mode 100644
index 00000000..7f2cf531
--- /dev/null
+++ b/.github/workflows/alternative-build-systems.yml
@@ -0,0 +1,64 @@
+name: Alternative Build Systems
+
+on: [push, pull_request]
+
+jobs:
+ xmake:
+ name: Xmake on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-2025, macos-15]
+
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: xmake-io/github-action-setup-xmake@v1
+ with:
+ xmake-version: '3.1.1'
+
+ - name: Configure Clang build
+ run: xmake f --toolchain=clang -m debug -y
+
+ - name: Build
+ run: xmake -j 4
+
+ - name: Run property tests
+ run: xmake run ProgmasoftPropertyTests
+
+ premake:
+ name: Premake on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-2022, macos-15]
+
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: abel0b/setup-premake@v2.4
+ with:
+ version: '5.0.0-beta7'
+
+ - name: Generate and build Visual Studio projects
+ if: runner.os == 'Windows'
+ shell: pwsh
+ run: |
+ premake5 vs2022
+ msbuild build/premake/Catch3.sln /m /p:Configuration=Debug /p:Platform=x64 /nologo
+
+ - name: Run property tests on Windows
+ if: runner.os == 'Windows'
+ run: build/premake/bin/Debug/ProgmasoftPropertyTests.exe
+
+ - name: Generate and build Clang Makefiles
+ if: runner.os == 'macOS'
+ run: |
+ premake5 gmake
+ make -C build/premake config=debug -j 4
+
+ - name: Run property tests on macOS
+ if: runner.os == 'macOS'
+ run: build/premake/bin/Debug/ProgmasoftPropertyTests
diff --git a/.github/workflows/linux-bazel-builds.yml b/.github/workflows/linux-bazel-builds.yml
deleted file mode 100644
index 20060405..00000000
--- a/.github/workflows/linux-bazel-builds.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-name: Linux Builds (Bazel)
-
-on: [push, pull_request]
-
-env:
- CTEST_OUTPUT_ON_FAILURE: 1
- CTEST_NO_TESTS_ACTION: error
-
-jobs:
- build_and_test_ubuntu:
- name: Linux Ubuntu 22.04 Bazel build <GCC 11.2.0>
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- matrix:
- compilation_mode: [fastbuild, dbg, opt]
-
- steps:
- - uses: actions/checkout@v6
-
- - name: Mount Bazel cache
- uses: actions/cache@v5
- with:
- path: "/home/runner/.cache/bazel"
- key: bazel-ubuntu22-gcc11
-
- - name: Build
- run: bazelisk build --compilation_mode=${{matrix.compilation_mode}} //...
diff --git a/.github/workflows/linux-meson-builds.yml b/.github/workflows/linux-meson-builds.yml
deleted file mode 100644
index 5240c7cb..00000000
--- a/.github/workflows/linux-meson-builds.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: Linux Builds (Meson)
-
-on: [push, pull_request]
-
-env:
- CTEST_OUTPUT_ON_FAILURE: 1
- CTEST_NO_TESTS_ACTION: error
-
-jobs:
- build:
- name: meson ${{matrix.cxx}}, C++${{matrix.std}}, ${{matrix.build_type}}
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- matrix:
- cxx:
- - g++-11
- - clang++-11
- build_type: [debug, release]
- std: [14, 17]
- include:
- - cxx: clang++-11
- other_pkgs: clang-11
-
- steps:
- - uses: actions/checkout@v6
-
- - name: Prepare environment
- run: |
- sudo apt-get update
- sudo apt-get install -y meson ninja-build ${{matrix.other_pkgs}}
-
- - name: Configure
- env:
- CXX: ${{matrix.cxx}}
- CXXFLAGS: -std=c++${{matrix.std}} ${{matrix.cxxflags}}
- # Note: $GITHUB_WORKSPACE is distinct from ${{runner.workspace}}.
- # This is important
- run: |
- meson -Dbuildtype=${{matrix.build_type}} ${{runner.workspace}}/meson-build
-
- - name: Build
- working-directory: ${{runner.workspace}}/meson-build
- run: ninja
-
- - name: Test
- working-directory: ${{runner.workspace}}/meson-build
- run: meson test --verbose
diff --git a/.github/workflows/linux-other-builds.yml b/.github/workflows/linux-other-builds.yml
deleted file mode 100644
index 188a1891..00000000
--- a/.github/workflows/linux-other-builds.yml
+++ /dev/null
@@ -1,129 +0,0 @@
-# The builds in this file are more complex (e.g. they need custom CMake
-# configuration) and thus are unsuitable to the simple build matrix
-# approach used in simple-builds
-name: Linux Builds (Complex)
-
-on: [push, pull_request]
-
-env:
- CTEST_OUTPUT_ON_FAILURE: 1
- CTEST_NO_TESTS_ACTION: error
-
-jobs:
- build:
- name: ${{matrix.build_description}}, ${{matrix.cxx}}, C++${{matrix.std}} ${{matrix.build_type}}
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- matrix:
- # We add builds one by one in this case, because there are no
- # dimensions that are shared across the builds
- include:
-
- # Single surrogate header build
- - cxx: clang++-14
- build_description: Surrogates build
- build_type: Debug
- std: 14
- other_pkgs: clang-14
- cmake_configurations: -DCATCH_BUILD_SURROGATES=ON
-
- # Extras and examples with gcc-11
- - cxx: g++-11
- build_description: Extras + Examples
- build_type: Debug
- std: 14
- other_pkgs: g++-11
- cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
- - cxx: g++-11
- build_description: Extras + Examples
- build_type: Release
- std: 14
- other_pkgs: g++-11
- cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
-
- # Extras and examples with Clang-14
- - cxx: clang++-14
- build_description: Extras + Examples
- build_type: Debug
- std: 17
- other_pkgs: clang-14
- cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
- - cxx: clang++-14
- build_description: Extras + Examples
- build_type: Release
- std: 17
- other_pkgs: clang-14
- cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
-
- # Configure tests with Clang-14
- - cxx: clang++-14
- build_description: CMake configuration tests
- build_type: Debug
- std: 14
- other_pkgs: clang-14
- cmake_configurations: -DCATCH_ENABLE_CONFIGURE_TESTS=ON
-
- # Valgrind test Clang-14
- # - cxx: clang++-14
- # build_description: Valgrind tests
- # build_type: Debug
- # std: 14
- # other_pkgs: clang-14 valgrind
- # cmake_configurations: -DMEMORYCHECK_COMMAND=`which valgrind` -DMEMORYCHECK_COMMAND_OPTIONS="-q --track-origins=yes --leak-check=full --num-callers=50 --show-leak-kinds=definite --error-exitcode=1"
- # other_ctest_args: -T memcheck -LE uses-python
-
-
- steps:
- - uses: actions/checkout@v6
-
- - name: Prepare environment
- run: |
- sudo apt-get update
- sudo apt-get install -y ninja-build ${{matrix.other_pkgs}}
-
- - name: Configure build
- run: |
- cmake --preset basic-tests -GNinja \
- -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
- -DCMAKE_CXX_COMPILER=${{matrix.cxx}} \
- -DCMAKE_CXX_STANDARD=${{matrix.std}} \
- ${{matrix.cmake_configurations}}
-
- - name: Build
- run: cmake --build build
-
- - name: Test
- run: ctest --test-dir build -j
-
- clang-tidy:
- name: clang-tidy
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v6
-
- - name: Prepare environment
- run: |
- sudo apt-get update
- sudo apt-get install -y ninja-build clang-15 clang-tidy-15
-
- - name: Configure
- run: |
- clangtidy="clang-tidy-15;-use-color"
- # Use a dummy compiler/linker/ar/ranlib to effectively disable the
- # compilation and only run clang-tidy.
- cmake --preset basic-tests -GNinja \
- -DCMAKE_AR=/usr/bin/true \
- -DCMAKE_BUILD_TYPE=Debug \
- -DCMAKE_CXX_CLANG_TIDY="$clangtidy" \
- -DCMAKE_CXX_COMPILER_AR=/usr/bin/true \
- -DCMAKE_CXX_COMPILER_LAUNCHER=/usr/bin/true \
- -DCMAKE_CXX_COMPILER=clang++-15 \
- -DCMAKE_CXX_LINK_EXECUTABLE=/usr/bin/true \
- -DCMAKE_CXX_STANDARD=17 \
- -DCMAKE_RANLIB=/usr/bin/true \
- -DCATCH_BUILD_EXAMPLES=ON \
- -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
-
- - name: Run clang-tidy
- run: cmake --build build
diff --git a/.github/workflows/linux-simple-builds.yml b/.github/workflows/linux-simple-builds.yml
deleted file mode 100644
index 17962cb8..00000000
--- a/.github/workflows/linux-simple-builds.yml
+++ /dev/null
@@ -1,109 +0,0 @@
-name: Linux Builds (Basic)
-
-on: [push, pull_request]
-
-env:
- CTEST_OUTPUT_ON_FAILURE: 1
- CTEST_NO_TESTS_ACTION: error
-
-jobs:
- build:
- name: ${{matrix.cxx}}, C++${{matrix.std}}, ${{matrix.build_type}}
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- matrix:
- cxx:
- - g++-9
- - g++-10
- - g++-11
- - g++-12
- - clang++-6.0
- - clang++-7
- - clang++-8
- - clang++-9
- - clang++-10
- - clang++-11
- - clang++-12
- - clang++-13
- - clang++-14
- build_type: [Debug, Release]
- std: [14]
- include:
- - cxx: g++-9
- other_pkgs: g++-9
- - cxx: g++-10
- other_pkgs: g++-10
- - cxx: g++-11
- other_pkgs: g++-11
- - cxx: g++-12
- other_pkgs: g++-12
- - cxx: clang++-6.0
- other_pkgs: clang-6.0
- - cxx: clang++-7
- other_pkgs: clang-7
- - cxx: clang++-8
- other_pkgs: clang-8
- - cxx: clang++-9
- other_pkgs: clang-9
- - cxx: clang++-10
- other_pkgs: clang-10
- - cxx: clang++-11
- other_pkgs: clang-11
- - cxx: clang++-12
- other_pkgs: clang-12
- - cxx: clang++-13
- other_pkgs: clang-13
- - cxx: clang++-14
- other_pkgs: clang-14
- # Clang 14 + C++17
- - cxx: clang++-14
- build_type: Debug
- std: 17
- other_pkgs: clang-14
- - cxx: clang++-14
- build_type: Release
- std: 17
- other_pkgs: clang-14
- - cxx: clang++-14
- build_type: Debug
- std: 20
- other_pkgs: clang-14
- - cxx: clang++-14
- build_type: Release
- std: 20
- other_pkgs: clang-14
- - cxx: g++-11
- build_type: Debug
- std: 20
- other_pkgs: g++-11
- - cxx: g++-11
- build_type: Release
- std: 20
- other_pkgs: g++-11
-
- steps:
- - uses: actions/checkout@v6
-
- - name: Add repositories for older compilers
- run: |
- sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ focal main'
- sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ focal universe'
-
- - name: Prepare environment
- run: |
- sudo apt-get update
- sudo apt-get install -y ninja-build ${{matrix.other_pkgs}}
-
- - name: Configure
- run: |
- cmake --preset basic-tests -GNinja \
- -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
- -DCMAKE_CXX_COMPILER=${{matrix.cxx}} \
- -DCMAKE_CXX_STANDARD=${{matrix.std}}
-
- - name: Build
- run: cmake --build build
-
- - name: Test
- run: ctest --test-dir build -j
diff --git a/.github/workflows/meson-builds.yml b/.github/workflows/meson-builds.yml
new file mode 100644
index 00000000..e7ff79af
--- /dev/null
+++ b/.github/workflows/meson-builds.yml
@@ -0,0 +1,42 @@
+name: Meson Builds
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ name: Meson on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-2025, macos-15]
+
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: actions/setup-python@v6
+ with:
+ python-version: '3.14'
+
+ - name: Install Meson and Ninja
+ run: python -m pip install meson ninja
+
+ - name: Configure with Clang-CL on Windows
+ if: runner.os == 'Windows'
+ env:
+ CC: clang-cl
+ CXX: clang-cl
+ run: meson setup build/meson --vsenv -Dtests=true -Dinstall=false
+
+ - name: Configure with Apple Clang on macOS
+ if: runner.os == 'macOS'
+ env:
+ CC: clang
+ CXX: clang++
+ run: meson setup build/meson -Dtests=true -Dinstall=false
+
+ - name: Build
+ run: meson compile -C build/meson
+
+ - name: Test
+ run: meson test -C build/meson --print-errorlogs
diff --git a/.github/workflows/package-manager-builds.yaml b/.github/workflows/package-manager-builds.yaml
index 5754205d..8874b10a 100644
--- a/.github/workflows/package-manager-builds.yaml
+++ b/.github/workflows/package-manager-builds.yaml
@@ -5,9 +5,10 @@ on: [push, pull_request]
jobs:
conan_builds:
name: Conan ${{matrix.conan_version}}
- runs-on: ubuntu-22.04
+ runs-on: ${{matrix.os}}
strategy:
matrix:
+ os: [macos-15, windows-2025]
conan_version:
- '1.63'
- '2.1'
diff --git a/.github/workflows/validate-header-guards.yml b/.github/workflows/validate-header-guards.yml
index e6a1a190..bb82bd84 100644
--- a/.github/workflows/validate-header-guards.yml
+++ b/.github/workflows/validate-header-guards.yml
@@ -5,7 +5,7 @@ on: [push, pull_request]
jobs:
build:
# Set the type of machine to run on
- runs-on: ubuntu-22.04
+ runs-on: macos-15
steps:
- name: Checkout source code