From 70bba0b4f3b717e9fd1b9a2bf652ce741ae01062 Mon Sep 17 00:00:00 2001 From: Alex Revetchi Date: Sat, 19 Jul 2025 14:16:19 -0700 Subject: [PATCH 1/4] Fix tls socket can block on clean shutdown --- include/mqtt/endpoint.hpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/include/mqtt/endpoint.hpp b/include/mqtt/endpoint.hpp index 7488c4bf..dcadd5e5 100644 --- a/include/mqtt/endpoint.hpp +++ b/include/mqtt/endpoint.hpp @@ -1100,7 +1100,7 @@ class endpoint : public std::enable_shared_from_this Date: Mon, 21 Jul 2025 20:33:44 +0900 Subject: [PATCH 2/4] Fixed CI. --- .github/depends/boost.sh | 6 +++--- .github/workflows/gha.yml | 8 ++++---- azure-pipelines.yml | 38 +++++++++++++++++++++++++++++++------- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/.github/depends/boost.sh b/.github/depends/boost.sh index c66de9d2..721a7701 100755 --- a/.github/depends/boost.sh +++ b/.github/depends/boost.sh @@ -32,9 +32,9 @@ while getopts "b:t:" c; do ;; esac done -wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 -tar xf boost_1_78_0.tar.bz2 -cd boost_1_78_0 +wget https://archives.boost.io/release/1.88.0/source/boost_1_88_0.tar.bz2 +tar xf boost_1_88_0.tar.bz2 +cd boost_1_88_0 ./bootstrap.sh build() diff --git a/.github/workflows/gha.yml b/.github/workflows/gha.yml index 8953f1b3..c399026d 100644 --- a/.github/workflows/gha.yml +++ b/.github/workflows/gha.yml @@ -22,7 +22,7 @@ jobs: - '-DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=ON -DMQTT_USE_TLS=ON -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_WS=OFF -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF' steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install Dependencies run: | brew install boost openssl @@ -50,13 +50,13 @@ jobs: pattern: [0, 1, 2, 3, 4, 5, 6, 7] steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Cache boost id: cache-boost - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: usr - key: ${{ runner.os }}-boost-20220116 + key: ${{ runner.os }}-boost-20250721 - name: Build boost if: steps.cache-boost.outputs.cache-hit != 'true' run: ./.github/depends/boost.sh -b 64 -t gcc diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f3bea120..199f71e5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,7 +13,7 @@ pr: - '*' pool: - vmImage: 'windows-2019' + vmImage: 'windows-2022' strategy: matrix: @@ -132,11 +132,35 @@ steps: displayName: 'install openssl' - powershell: | + choco install --confirm --limitoutput --no-progress openssl --version=3.1.1 + choco install --confirm --limitoutput --no-progress 7zip + displayName: 'Install dependencies' + +- powershell: | + $boostVersion = "1.88.0" + $boostDirName = "boost_1_88_0" + $boostArchive = "$env:TEMP\$boostDirName.7z" + $boostUrl = "https://archives.boost.io/release/$boostVersion/source/$boostDirName.7z" + $installPrefix = "C:\hostedtoolcache\windows\boost-src" + + Write-Host "Downloading boost via curl..." + curl.exe -L -o $boostArchive $boostUrl + + Write-Host "Extracting boost..." + & 7z x $boostArchive "-o$env:TEMP\$boostDirName" -y - $Url = "https://sourceforge.net/projects/boost/files/boost-binaries/1.78.0/boost_1_78_0-msvc-14.2-64.exe" - (New-Object System.Net.WebClient).DownloadFile($Url, "$env:TEMP\boost.exe") - Start-Process -Wait -FilePath "$env:TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=C:\hostedtoolcache\windows\Boost\1.78.0\x86_64" - displayName: 'install boost' + cd "$env:TEMP\$boostDirName\$boostDirName" + .\bootstrap.bat + .\b2 toolset=msvc link=static,shared install ` + -j2 ` + --prefix=$installPrefix ` + --with-container ` + --with-filesystem ` + --with-log ` + --with-program_options ` + --with-system ` + --with-test + displayName: 'Build boost from source with curl' - powershell: | git submodule update --init --recursive @@ -146,10 +170,10 @@ steps: mkdir build cd build $env:CL="/D_WIN32_WINNT#0x0601 /DBOOST_THREAD_VERSION#3 /DBOOST_ALLOW_DEPRECATED_HEADERS /DBOOST_ASIO_NO_DEPRECATED" - $env:BOOST_ROOT="C:\hostedtoolcache\windows\Boost\1.78.0\x86_64" + $env:BOOST_ROOT="C:\hostedtoolcache\windows\Boost\1.88.0\x86_64" $env:PATH="$env:BOOST_ROOT\lib64-msvc-14.2;"+$env:PATH - cmake -A x64 -DMQTT_USE_TLS=$(MQTT_USE_TLS) -DMQTT_USE_WS=$(MQTT_USE_WS) -DMQTT_USE_STR_CHECK=$(MQTT_USE_STR_CHECK) -DMQTT_TEST_1=$(MQTT_TEST_1) -DMQTT_TEST_2=$(MQTT_TEST_2) -DMQTT_TEST_3=$(MQTT_TEST_3) -DMQTT_TEST_4=$(MQTT_TEST_4) -DMQTT_TEST_5=$(MQTT_TEST_5) -DMQTT_TEST_6=$(MQTT_TEST_6) -DMQTT_TEST_7=$(MQTT_TEST_7) -DMQTT_BUILD_EXAMPLES=$(MQTT_BUILD_EXAMPLES) .. + cmake -A x64 -G "Visual Studio 17 2022" -DMQTT_USE_TLS=$(MQTT_USE_TLS) -DMQTT_USE_WS=$(MQTT_USE_WS) -DMQTT_USE_STR_CHECK=$(MQTT_USE_STR_CHECK) -DMQTT_TEST_1=$(MQTT_TEST_1) -DMQTT_TEST_2=$(MQTT_TEST_2) -DMQTT_TEST_3=$(MQTT_TEST_3) -DMQTT_TEST_4=$(MQTT_TEST_4) -DMQTT_TEST_5=$(MQTT_TEST_5) -DMQTT_TEST_6=$(MQTT_TEST_6) -DMQTT_TEST_7=$(MQTT_TEST_7) -DMQTT_BUILD_EXAMPLES=$(MQTT_BUILD_EXAMPLES) .. if (!$?) { return Write-Error "cmake failed" } From 0cf55a5b43c94dfc5838bac8a4da66c7301ec933 Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Mon, 21 Jul 2025 21:30:33 +0900 Subject: [PATCH 3/4] Used Boost Windows Binary. --- azure-pipelines.yml | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 199f71e5..2635eacd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -139,28 +139,14 @@ steps: - powershell: | $boostVersion = "1.88.0" $boostDirName = "boost_1_88_0" - $boostArchive = "$env:TEMP\$boostDirName.7z" - $boostUrl = "https://archives.boost.io/release/$boostVersion/source/$boostDirName.7z" - $installPrefix = "C:\hostedtoolcache\windows\boost-src" + $boostUrl = "https://archives.boost.io/release/1.88.0/binaries/boost_1_88_0-msvc-14.3-64.exe" Write-Host "Downloading boost via curl..." - curl.exe -L -o $boostArchive $boostUrl + curl.exe -L -o "$env:TEMP\boost.exe" $boostUrl - Write-Host "Extracting boost..." - & 7z x $boostArchive "-o$env:TEMP\$boostDirName" -y + Start-Process -Wait -FilePath "$env:TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=C:\hostedtoolcache\windows\Boost\1.88.0\x86_64" - cd "$env:TEMP\$boostDirName\$boostDirName" - .\bootstrap.bat - .\b2 toolset=msvc link=static,shared install ` - -j2 ` - --prefix=$installPrefix ` - --with-container ` - --with-filesystem ` - --with-log ` - --with-program_options ` - --with-system ` - --with-test - displayName: 'Build boost from source with curl' + displayName: 'Build boost' - powershell: | git submodule update --init --recursive @@ -171,7 +157,7 @@ steps: cd build $env:CL="/D_WIN32_WINNT#0x0601 /DBOOST_THREAD_VERSION#3 /DBOOST_ALLOW_DEPRECATED_HEADERS /DBOOST_ASIO_NO_DEPRECATED" $env:BOOST_ROOT="C:\hostedtoolcache\windows\Boost\1.88.0\x86_64" - $env:PATH="$env:BOOST_ROOT\lib64-msvc-14.2;"+$env:PATH + $env:PATH="$env:BOOST_ROOT\lib64-msvc-14.3;"+$env:PATH cmake -A x64 -G "Visual Studio 17 2022" -DMQTT_USE_TLS=$(MQTT_USE_TLS) -DMQTT_USE_WS=$(MQTT_USE_WS) -DMQTT_USE_STR_CHECK=$(MQTT_USE_STR_CHECK) -DMQTT_TEST_1=$(MQTT_TEST_1) -DMQTT_TEST_2=$(MQTT_TEST_2) -DMQTT_TEST_3=$(MQTT_TEST_3) -DMQTT_TEST_4=$(MQTT_TEST_4) -DMQTT_TEST_5=$(MQTT_TEST_5) -DMQTT_TEST_6=$(MQTT_TEST_6) -DMQTT_TEST_7=$(MQTT_TEST_7) -DMQTT_BUILD_EXAMPLES=$(MQTT_BUILD_EXAMPLES) .. if (!$?) { From 5354710157eb2cf14be977929f366492691ff1a4 Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Mon, 21 Jul 2025 22:12:11 +0900 Subject: [PATCH 4/4] Moved coverage from linux to osx. --- .github/workflows/gha.yml | 49 +++++++++++++++++++++------------------ llvm-gcov.sh | 2 ++ 2 files changed, 28 insertions(+), 23 deletions(-) create mode 100755 llvm-gcov.sh diff --git a/.github/workflows/gha.yml b/.github/workflows/gha.yml index c399026d..b39cd304 100644 --- a/.github/workflows/gha.yml +++ b/.github/workflows/gha.yml @@ -25,12 +25,12 @@ jobs: uses: actions/checkout@v4 - name: Install Dependencies run: | - brew install boost openssl + brew install boost openssl lcov llvm - name: Configure env: OPENSSL_ROOT_DIR: /usr/local/opt/openssl run: | - cmake -S ${{ github.workspace }} -B ${{ runner.temp }} ${{ matrix.pattern }} -DCMAKE_CXX_COMPILER=clang++ + cmake -S ${{ github.workspace }} -B ${{ runner.temp }} ${{ matrix.pattern }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage" - name: Check Header Dependencies run: | cmake --build ${{ runner.temp }} --parallel $(sysctl -n hw.ncpu) --clean-first --target check_deps @@ -38,11 +38,24 @@ jobs: env: CXXFLAGS: -Werror -pedantic -Wall -Wextra -Wno-ignored-qualifiers -Wconversion run: | - cmake --build ${{ runner.temp }} --parallel $(sysctl -n hw.ncpu) --clean-first + VERBOSE=1 cmake --build ${{ runner.temp }} --parallel $(sysctl -n hw.ncpu) --clean-first - name: Test working-directory: ${{ runner.temp }} run: | - CTEST_ARGS="--log_level=all" ctest -VV + CTEST_ARGS="--log_level=all" ctest -V + - name: Generate Coverage + working-directory: ${{ runner.temp }} + continue-on-error: true + run: | + export PATH="/Library/Developer/CommandLineTools/usr/bin:$PATH" + lcov --capture --directory ${{ runner.temp }} --exclude "/usr/*" --exclude "test/*" --exclude "/opt/*" --output-file coverage.info --gcov-tool ${{ github.workspace }}/llvm-gcov.sh --ignore-errors inconsistent,gcov,count,range,format + lcov --list coverage.info --ignore-errors inconsistent,count,range # debug info + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + with: + fail_ci_if_error: true + files: ${{ runner.temp }}/coverage.info + token: ${{ secrets.CODECOV_TOKEN }} linux: runs-on: ubuntu-latest strategy: @@ -73,14 +86,14 @@ jobs: export CFLAGS=${S_CFLAGS} && export CXXFLAGS=${S_CXXFLAGS} && export LDFLAGS=${S_LDFLAGS} [ ${{ matrix.pattern }} == 0 ] || [ ${{ matrix.pattern }} == 4 ] || [ ${{ matrix.pattern }} == 5 ] || [ ${{ matrix.pattern }} == 6 ] || [ ${{ matrix.pattern }} == 7 ] && \ export CFLAGS=${NS_CFLAGS} && export CXXFLAGS=${NS_CXXFLAGS} && export LDFLAGS=${NS_LDFLAGS} - [ ${{ matrix.pattern }} == 0 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=ON -DMQTT_TEST_2=ON -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=OFF -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=ON -DMQTT_STD_ANY=OFF -DMQTT_STD_OPTIONAL=OFF -DMQTT_STD_VARIANT=OFF -DMQTT_STD_STRING_VIEW=OFF -DMQTT_STD_SHARED_PTR_ARRAY=OFF" - [ ${{ matrix.pattern }} == 1 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=ON -DMQTT_TEST_2=ON -DMQTT_TEST_3=ON -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=OFF -DMQTT_STD_OPTIONAL=OFF -DMQTT_STD_VARIANT=OFF -DMQTT_STD_STRING_VIEW=OFF -DMQTT_STD_SHARED_PTR_ARRAY=OFF" - [ ${{ matrix.pattern }} == 2 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=ON -DMQTT_TEST_5=ON -DMQTT_TEST_6=ON -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" - [ ${{ matrix.pattern }} == 3 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=ON -DMQTT_BUILD_EXAMPLES=ON -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" - [ ${{ matrix.pattern }} == 4 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_CODECOV=ON -DMQTT_TEST_1=ON -DMQTT_TEST_2=ON -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=OFF -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=ON -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=ON" - [ ${{ matrix.pattern }} == 5 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_CODECOV=ON -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=ON -DMQTT_TEST_4=ON -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=OFF -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" - [ ${{ matrix.pattern }} == 6 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_CODECOV=ON -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=ON -DMQTT_TEST_6=ON -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" - [ ${{ matrix.pattern }} == 7 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_CODECOV=ON -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=ON -DMQTT_BUILD_EXAMPLES=ON -DMQTT_USE_TLS=ON -DMQTT_USE_WS=OFF -DMQTT_USE_STR_CHECK=OFF -DMQTT_USE_LOG=ON -DMQTT_STD_ANY=OFF -DMQTT_STD_OPTIONAL=OFF -DMQTT_STD_VARIANT=OFF -DMQTT_STD_STRING_VIEW=OFF -DMQTT_STD_SHARED_PTR_ARRAY=OFF" + [ ${{ matrix.pattern }} == 0 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=ON -DMQTT_TEST_2=ON -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=OFF -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=ON -DMQTT_STD_ANY=OFF -DMQTT_STD_OPTIONAL=OFF -DMQTT_STD_VARIANT=OFF -DMQTT_STD_STRING_VIEW=OFF -DMQTT_STD_SHARED_PTR_ARRAY=OFF" + [ ${{ matrix.pattern }} == 1 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=ON -DMQTT_TEST_2=ON -DMQTT_TEST_3=ON -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=OFF -DMQTT_STD_OPTIONAL=OFF -DMQTT_STD_VARIANT=OFF -DMQTT_STD_STRING_VIEW=OFF -DMQTT_STD_SHARED_PTR_ARRAY=OFF" + [ ${{ matrix.pattern }} == 2 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=ON -DMQTT_TEST_5=ON -DMQTT_TEST_6=ON -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" + [ ${{ matrix.pattern }} == 3 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=ON -DMQTT_BUILD_EXAMPLES=ON -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" + [ ${{ matrix.pattern }} == 4 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_TEST_1=ON -DMQTT_TEST_2=ON -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=OFF -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=ON -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=ON" + [ ${{ matrix.pattern }} == 5 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=ON -DMQTT_TEST_4=ON -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=OFF -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" + [ ${{ matrix.pattern }} == 6 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=ON -DMQTT_TEST_6=ON -DMQTT_TEST_7=OFF -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_USE_TLS=ON -DMQTT_USE_WS=ON -DMQTT_USE_STR_CHECK=ON -DMQTT_USE_LOG=OFF -DMQTT_STD_ANY=ON -DMQTT_STD_OPTIONAL=ON -DMQTT_STD_VARIANT=ON -DMQTT_STD_STRING_VIEW=ON -DMQTT_STD_SHARED_PTR_ARRAY=OFF" + [ ${{ matrix.pattern }} == 7 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DMQTT_TEST_1=OFF -DMQTT_TEST_2=OFF -DMQTT_TEST_3=OFF -DMQTT_TEST_4=OFF -DMQTT_TEST_5=OFF -DMQTT_TEST_6=OFF -DMQTT_TEST_7=ON -DMQTT_BUILD_EXAMPLES=ON -DMQTT_USE_TLS=ON -DMQTT_USE_WS=OFF -DMQTT_USE_STR_CHECK=OFF -DMQTT_USE_LOG=ON -DMQTT_STD_ANY=OFF -DMQTT_STD_OPTIONAL=OFF -DMQTT_STD_VARIANT=OFF -DMQTT_STD_STRING_VIEW=OFF -DMQTT_STD_SHARED_PTR_ARRAY=OFF" echo "begin" echo ${{env.BOOST_ROOT}} @@ -96,14 +109,4 @@ jobs: - name: Test working-directory: ${{ runner.temp }} run: | - CTEST_ARGS="--log_level=all" ctest -VV - - name: Code Coverage - if: (matrix.pattern == 4) || (matrix.pattern == 5) || (matrix.pattern == 6) || (matrix.pattern == 7) - run: | - sudo apt-get install lcov - # Create lcov report - lcov --capture --directory ${{ runner.temp }} --output-file coverage.info - lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter system-files - lcov --list coverage.info # debug info - # Uploading report to CodeCov - bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports" + CTEST_ARGS="--log_level=all" ctest -V diff --git a/llvm-gcov.sh b/llvm-gcov.sh new file mode 100755 index 00000000..4e320d8c --- /dev/null +++ b/llvm-gcov.sh @@ -0,0 +1,2 @@ +#!/bin/bash +exec llvm-cov gcov "$@"