Skip to content

Commit d5a4811

Browse files
committed
⬆️ Update various dependencies
- Catch2: 3.6.0 -> 3.8.0 - CPM: 0.38.2 -> 0.40.2 - GoogleTest: 1.14.0 -> 1.15.2 - rapidcheck: 1c91f40 -> ff6af6f - Snitch: 1.2.5 -> 1.3.1 - Mull: 0.23.0 -> 0.24.0 - Switch to clang-19 as the primary compiler for tests in this repo Note: - A recent change to puppeteer caused mermaid doc image generation to fail. Fixed. - Catch2 has a bug with C++17 and clang-19 detailed at catchorg/Catch2#2910
1 parent b244559 commit d5a4811

File tree

9 files changed

+67
-78
lines changed

9 files changed

+67
-78
lines changed

.github/workflows/asciidoctor-ghpages.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242

4343
- name: Install Mermaid
4444
run: |
45-
sudo npm install -g @mermaid-js/mermaid-cli@11.2.1
45+
npm install -g @mermaid-js/mermaid-cli@11.4.2
4646
npx puppeteer browsers install chrome-headless-shell
4747
4848
- name: Install asciidoctor

.github/workflows/test.yml

+10-11
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ on:
1818
env:
1919
DEBIAN_FRONTEND: noninteractive
2020
CMAKE_GENERATOR: Ninja
21-
TARGET_LLVM_VERSION: 18
22-
MULL_LLVM_VERSION: 17
21+
TARGET_LLVM_VERSION: 19
22+
MULL_LLVM_VERSION: 18
23+
MULL_VERSION: 0.24.0
2324

2425
concurrency:
2526
group: ${{ github.head_ref || github.run_id }}
@@ -41,7 +42,7 @@ jobs:
4142

4243
- name: Install Mermaid
4344
run: |
44-
sudo npm install -g @mermaid-js/mermaid-cli@11.2.1
45+
npm install -g @mermaid-js/mermaid-cli@11.4.2
4546
npx puppeteer browsers install chrome-headless-shell
4647
4748
- name: Install asciidoctor
@@ -84,6 +85,10 @@ jobs:
8485
working-directory: ${{github.workspace}}/test/library
8586
run: cmake -Bbuild
8687

88+
- name: Build lib docs
89+
working-directory: ${{github.workspace}}/test/library
90+
run: test $(cmake --build build -v -t docs | grep -c ERROR) == 0
91+
8792
- name: Build lib metabench tests
8893
working-directory: ${{github.workspace}}/test/library
8994
run: cmake --build build -t metabench_tests
@@ -92,10 +97,6 @@ jobs:
9297
working-directory: ${{github.workspace}}/test/library
9398
run: cmake --build build -t ci-quality
9499

95-
- name: Build lib docs
96-
working-directory: ${{github.workspace}}/test/library
97-
run: test $(cmake --build build -v -t docs | grep -c ERROR) == 0
98-
99100
- name: Restore CPM cache
100101
env:
101102
cache-name: cpm-cache-0
@@ -220,11 +221,9 @@ jobs:
220221
sudo apt install -y ninja-build
221222
222223
- name: Install mull
223-
env:
224-
MULL_VERSION: 0.23.0
225224
run: |
226-
wget https://github.com/mull-project/mull/releases/download/${{env.MULL_VERSION}}/Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.0-ubuntu-24.04.deb
227-
sudo dpkg -i Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.0-ubuntu-24.04.deb
225+
wget https://github.com/mull-project/mull/releases/download/${{env.MULL_VERSION}}/Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.1-ubuntu-24.04.deb
226+
sudo dpkg -i Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.1-ubuntu-24.04.deb
228227
229228
- name: Checkout PR branch
230229
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

README.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ Where `abc123` is the version of this repository you want to depend on.
3131
This repository depends on:
3232

3333
- [Boost-ext.DI](https://github.com/boost-ext/di) at version 1.3.0
34-
- [Catch2](https://github.com/catchorg/Catch2) at version 3.6.0
35-
- [CPM.cmake](https://github.com/cpm-cmake/CPM.cmake) at version 0.38.2
36-
- [GoogleTest](https://github.com/google/googletest) at version 1.14.0
34+
- [Catch2](https://github.com/catchorg/Catch2) at version 3.8.0
35+
- [CPM.cmake](https://github.com/cpm-cmake/CPM.cmake) at version 0.40.2
36+
- [fuzztest](https://github.com/google/fuzztest) at git hash a4f6ad5
37+
- [GoogleTest](https://github.com/google/googletest) at version 1.15.2
3738
- [GUnit](https://github.com/cpp-testing/GUnit) at version 1.14.0
38-
- [RapidCheck](https://github.com/emil-e/rapidcheck) at git hash 1c91f40
39-
- [Snitch](https://github.com/snitch-org/snitch) at version 1.2.5
39+
- [metabench](https://github.com/ldionne/metabench) at git hash 3322ce7
40+
- [RapidCheck](https://github.com/emil-e/rapidcheck) at git hash ff6af6f
41+
- [Snitch](https://github.com/snitch-org/snitch) at version 1.3.1
4042

ci/.github/workflows/asciidoctor-ghpages.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242

4343
- name: Install Mermaid
4444
run: |
45-
sudo npm install -g @mermaid-js/mermaid-cli@11.2.1
45+
npm install -g @mermaid-js/mermaid-cli@11.4.2
4646
npx puppeteer browsers install chrome-headless-shell
4747
4848
- name: Install asciidoctor

cmake/test.cmake

+16-6
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,23 @@ target_compile_options(sanitizer-exceptions INTERFACE -fno-sanitize=vptr)
2525

2626
macro(get_catch2)
2727
if(NOT TARGET Catch2::Catch2WithMain)
28-
add_versioned_package("gh:catchorg/Catch2@3.6.0")
28+
add_versioned_package("gh:catchorg/Catch2@3.8.0")
2929
list(APPEND CMAKE_MODULE_PATH ${Catch2_SOURCE_DIR}/extras)
3030
include(Catch)
31+
32+
# Workaround for https://github.com/catchorg/Catch2/issues/2910
33+
add_library(clean-catch2-warnings INTERFACE)
34+
target_compile_options(
35+
clean-catch2-warnings
36+
INTERFACE
37+
$<$<AND:$<CXX_COMPILER_ID:Clang>,$<VERSION_GREATER_EQUAL:${CMAKE_CXX_COMPILER_VERSION},19>>:-Wno-c++20-extensions>
38+
)
3139
endif()
3240
endmacro()
3341

3442
macro(get_gtest)
3543
if(NOT TARGET gtest)
36-
add_versioned_package("gh:google/googletest@1.14.0")
44+
add_versioned_package("gh:google/googletest@1.15.2")
3745
include(GoogleTest)
3846
endif()
3947
endmacro()
@@ -45,7 +53,7 @@ macro(get_gunit)
4553
NAME
4654
gunit
4755
GIT_TAG
48-
v1.14.0
56+
467b07d
4957
GITHUB_REPOSITORY
5058
cpp-testing/GUnit
5159
DOWNLOAD_ONLY
@@ -55,7 +63,7 @@ endmacro()
5563

5664
macro(get_snitch)
5765
if(NOT TARGET snitch::snitch)
58-
add_versioned_package("gh:snitch-org/snitch@1.2.5")
66+
add_versioned_package("gh:snitch-org/snitch@1.3.1")
5967
endif()
6068
endmacro()
6169

@@ -90,7 +98,7 @@ endmacro()
9098

9199
macro(add_rapidcheck)
92100
if(NOT TARGET rapidcheck)
93-
add_versioned_package(NAME rapidcheck GIT_TAG 1c91f40 GITHUB_REPOSITORY
101+
add_versioned_package(NAME rapidcheck GIT_TAG ff6af6f GITHUB_REPOSITORY
94102
emil-e/rapidcheck)
95103
add_subdirectory(
96104
${rapidcheck_SOURCE_DIR}/extras/catch
@@ -134,6 +142,7 @@ function(add_unit_test_target name)
134142
catch_discover_tests(${name})
135143
endif()
136144
endif()
145+
target_link_libraries(${name} PRIVATE clean-catch2-warnings)
137146
elseif(UNIT_GTEST)
138147
target_link_libraries_system(
139148
${name}
@@ -402,7 +411,8 @@ function(add_fuzz_test_target name)
402411
rapidcheck
403412
rapidcheck_gtest
404413
rapidcheck_gmock
405-
fuzztest::fuzztest_gtest_main)
414+
fuzztest::fuzztest_gtest_main
415+
re2::re2)
406416
if(FUZZ_NORANDOM)
407417
message(
408418
WARNING

docs/puppeteer_config.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2+
"headless": 1,
23
"args": ["--no-sandbox"]
34
}

test/application/cmake/get_cpm.cmake

+14-27
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,24 @@
1-
set(CPM_DOWNLOAD_VERSION 0.38.2)
1+
# SPDX-License-Identifier: MIT
2+
#
3+
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors
4+
5+
set(CPM_DOWNLOAD_VERSION 0.40.2)
6+
set(CPM_HASH_SUM "c8cdc32c03816538ce22781ed72964dc864b2a34a310d3b7104812a5ca2d835d")
27

38
if(CPM_SOURCE_CACHE)
4-
set(CPM_DOWNLOAD_LOCATION
5-
"${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
9+
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
610
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
7-
set(CPM_DOWNLOAD_LOCATION
8-
"$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
11+
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
912
else()
10-
set(CPM_DOWNLOAD_LOCATION
11-
"${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
13+
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
1214
endif()
1315

14-
# Expand relative path. This is important if the provided path contains a tilde
15-
# (~)
16+
# Expand relative path. This is important if the provided path contains a tilde (~)
1617
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
1718

18-
function(download_cpm)
19-
message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}")
20-
file(
21-
DOWNLOAD
22-
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
23-
${CPM_DOWNLOAD_LOCATION})
24-
endfunction()
25-
26-
if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
27-
download_cpm()
28-
else()
29-
# resume download if it previously failed
30-
file(READ ${CPM_DOWNLOAD_LOCATION} check)
31-
if("${check}" STREQUAL "")
32-
download_cpm()
33-
endif()
34-
unset(check)
35-
endif()
19+
file(DOWNLOAD
20+
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
21+
${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM}
22+
)
3623

3724
include(${CPM_DOWNLOAD_LOCATION})

test/application/test/catch2_test.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
#include <catch2/catch_template_test_macros.hpp>
12
#include <catch2/catch_test_macros.hpp>
23
#include <rapidcheck/catch.h>
34

45
TEST_CASE("catch2 test", "[test]") {}
56

7+
TEMPLATE_TEST_CASE("catch2 template test", "[test]", int) {}
8+
69
TEST_CASE("catch2 with rapidcheck", "[test]") {
710
rc::prop("test property", [](unsigned int a) { return a * 2u == a + a; });
811
}

test/library/cmake/get_cpm.cmake

+14-27
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,24 @@
1-
set(CPM_DOWNLOAD_VERSION 0.38.2)
1+
# SPDX-License-Identifier: MIT
2+
#
3+
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors
4+
5+
set(CPM_DOWNLOAD_VERSION 0.40.2)
6+
set(CPM_HASH_SUM "c8cdc32c03816538ce22781ed72964dc864b2a34a310d3b7104812a5ca2d835d")
27

38
if(CPM_SOURCE_CACHE)
4-
set(CPM_DOWNLOAD_LOCATION
5-
"${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
9+
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
610
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
7-
set(CPM_DOWNLOAD_LOCATION
8-
"$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
11+
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
912
else()
10-
set(CPM_DOWNLOAD_LOCATION
11-
"${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
13+
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
1214
endif()
1315

14-
# Expand relative path. This is important if the provided path contains a tilde
15-
# (~)
16+
# Expand relative path. This is important if the provided path contains a tilde (~)
1617
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
1718

18-
function(download_cpm)
19-
message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}")
20-
file(
21-
DOWNLOAD
22-
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
23-
${CPM_DOWNLOAD_LOCATION})
24-
endfunction()
25-
26-
if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
27-
download_cpm()
28-
else()
29-
# resume download if it previously failed
30-
file(READ ${CPM_DOWNLOAD_LOCATION} check)
31-
if("${check}" STREQUAL "")
32-
download_cpm()
33-
endif()
34-
unset(check)
35-
endif()
19+
file(DOWNLOAD
20+
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
21+
${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM}
22+
)
3623

3724
include(${CPM_DOWNLOAD_LOCATION})

0 commit comments

Comments
 (0)