diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9554e42..eb551c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -202,6 +202,302 @@ jobs: python3 ci/build-in-all-remaining-configs.py --${{matrix.compiler}} + performancetest-linux: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + compiler: [g++-11, clang++-14] + config: [ + -DSPEEDTEST_DWARF4=On, + -DSPEEDTEST_DWARF5=On + ] + needs: test-linux-all-configurations + steps: + - uses: actions/checkout@v4 + - name: dependencies + run: sudo apt install gcc-11 g++-11 libgcc-11-dev + - name: build + run: | + mkdir -p build + cd build + cmake .. -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=foo + make -j + make install + mkdir -p ../test/speedtest/build + cd ../test/speedtest/build + cmake .. \ + -DCMAKE_BUILD_TYPE=Debug \ + ${{matrix.config}} + make -j + - name: speedtest + working-directory: test/speedtest/build + run: | + ./speedtest | python3 ../../../ci/speedtest.py ${{matrix.compiler}} ${{matrix.config}} + + + test-linux-fetchcontent: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-linux-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + tag=$(git rev-parse --abbrev-ref HEAD) + echo $tag + cd .. + cp -rv cpptrace/test/fetchcontent-integration . + mkdir fetchcontent-integration/build + cd fetchcontent-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG=$tag -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + make + ./main + test-linux-findpackage: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-linux-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + tag=$(git rev-parse --abbrev-ref HEAD) + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + sudo make -j install + cd ../.. + cp -rv cpptrace/test/findpackage-integration . + mkdir findpackage-integration/build + cd findpackage-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug + make + ./main + test-linux-add_subdirectory: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-linux-all-configurations + steps: + - uses: actions/checkout@v4 + - name: build + run: | + cd .. + cp -rv cpptrace/test/add_subdirectory-integration . + cp -rv cpptrace add_subdirectory-integration + mkdir add_subdirectory-integration/build + cd add_subdirectory-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + make + ./main + + test-macos-fetchcontent: + runs-on: macos-14 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-macos-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + tag=$(git rev-parse --abbrev-ref HEAD) + echo $tag + cd .. + cp -rv cpptrace/test/fetchcontent-integration . + mkdir fetchcontent-integration/build + cd fetchcontent-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG=$tag -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + make + ./main + test-macos-findpackage: + runs-on: macos-14 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-macos-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + tag=$(git rev-parse --abbrev-ref HEAD) + echo $tag + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + sudo make -j install + cd ../.. + cp -rv cpptrace/test/findpackage-integration . + mkdir findpackage-integration/build + cd findpackage-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug + make + ./main + test-macos-add_subdirectory: + runs-on: macos-14 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-macos-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + cd .. + cp -rv cpptrace/test/add_subdirectory-integration . + cp -rv cpptrace add_subdirectory-integration + mkdir add_subdirectory-integration/build + cd add_subdirectory-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + make + ./main + + test-mingw-fetchcontent: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-windows-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + $tag=$(git rev-parse --abbrev-ref HEAD) + echo $tag + cd .. + cp -Recurse cpptrace/test/fetchcontent-integration . + mkdir fetchcontent-integration/build + cd fetchcontent-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG="$tag" "-GUnix Makefiles" -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + make + .\main.exe + test-mingw-findpackage: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-windows-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + $tag=$(git rev-parse --abbrev-ref HEAD) + echo $tag + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} "-GUnix Makefiles" -DCMAKE_INSTALL_PREFIX=C:/foo -DCPPTRACE_WERROR_BUILD=On + make -j install + cd ../.. + mv cpptrace/test/findpackage-integration . + mkdir findpackage-integration/build + cd findpackage-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=C:/foo "-GUnix Makefiles" + make + ./main + test-mingw-add_subdirectory: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-windows-all-configurations + steps: + - uses: actions/checkout@v4 + - name: test + run: | + cd .. + cp -Recurse cpptrace/test/add_subdirectory-integration . + cp -Recurse cpptrace add_subdirectory-integration + mkdir add_subdirectory-integration/build + cd add_subdirectory-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug "-GUnix Makefiles" -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + make + .\main.exe + test-windows-fetchcontent: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-windows-all-configurations + steps: + - uses: actions/checkout@v4 + - name: Enable Developer Command Prompt + uses: ilammy/msvc-dev-cmd@v1.13.0 + - name: test + run: | + $tag=$(git rev-parse --abbrev-ref HEAD) + echo $tag + cd .. + cp -Recurse cpptrace/test/fetchcontent-integration . + mkdir fetchcontent-integration/build + cd fetchcontent-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG="$tag" -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + msbuild demo_project.sln + .\Debug\main.exe + test-windows-findpackage: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-windows-all-configurations + steps: + - uses: actions/checkout@v4 + - name: Enable Developer Command Prompt + uses: ilammy/msvc-dev-cmd@v1.13.0 + - name: test + run: | + $tag=$(git rev-parse --abbrev-ref HEAD) + echo $tag + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCMAKE_INSTALL_PREFIX=C:/foo -DCPPTRACE_WERROR_BUILD=On + msbuild cpptrace.sln + msbuild INSTALL.vcxproj + cd ../.. + mv cpptrace/test/findpackage-integration . + mkdir findpackage-integration/build + cd findpackage-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=C:/foo + msbuild demo_project.sln + .\Debug\main.exe + test-windows-add_subdirectory: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + shared: [On, Off] + needs: test-windows-all-configurations + steps: + - uses: actions/checkout@v4 + - name: Enable Developer Command Prompt + uses: ilammy/msvc-dev-cmd@v1.13.0 + - name: test + run: | + cd .. + cp -Recurse cpptrace/test/add_subdirectory-integration . + cp -Recurse cpptrace add_subdirectory-integration + mkdir add_subdirectory-integration/build + cd add_subdirectory-integration/build + cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On + msbuild demo_project.sln + .\Debug\main.exe + + unittest-linux: runs-on: ubuntu-24.04 strategy: diff --git a/.github/workflows/cmake-integration.yml b/.github/workflows/cmake-integration.yml deleted file mode 100644 index 3ab9c04..0000000 --- a/.github/workflows/cmake-integration.yml +++ /dev/null @@ -1,255 +0,0 @@ -name: cmake-integration - -on: - push: - pull_request: - -jobs: - test-linux-fetchcontent: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - tag=$(git rev-parse --abbrev-ref HEAD) - echo $tag - cd .. - cp -rv cpptrace/test/fetchcontent-integration . - mkdir fetchcontent-integration/build - cd fetchcontent-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG=$tag -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - make - ./main - test-linux-findpackage: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - tag=$(git rev-parse --abbrev-ref HEAD) - mkdir build - cd build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - sudo make -j install - cd ../.. - cp -rv cpptrace/test/findpackage-integration . - mkdir findpackage-integration/build - cd findpackage-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug - make - ./main - test-linux-add_subdirectory: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: build - run: | - cd .. - cp -rv cpptrace/test/add_subdirectory-integration . - cp -rv cpptrace add_subdirectory-integration - mkdir add_subdirectory-integration/build - cd add_subdirectory-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - make - ./main - - test-macos-fetchcontent: - runs-on: macos-14 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - tag=$(git rev-parse --abbrev-ref HEAD) - echo $tag - cd .. - cp -rv cpptrace/test/fetchcontent-integration . - mkdir fetchcontent-integration/build - cd fetchcontent-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG=$tag -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - make - ./main - test-macos-findpackage: - runs-on: macos-14 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - tag=$(git rev-parse --abbrev-ref HEAD) - echo $tag - mkdir build - cd build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - sudo make -j install - cd ../.. - cp -rv cpptrace/test/findpackage-integration . - mkdir findpackage-integration/build - cd findpackage-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug - make - ./main - test-macos-add_subdirectory: - runs-on: macos-14 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - cd .. - cp -rv cpptrace/test/add_subdirectory-integration . - cp -rv cpptrace add_subdirectory-integration - mkdir add_subdirectory-integration/build - cd add_subdirectory-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - make - ./main - - test-mingw-fetchcontent: - runs-on: windows-2022 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - $tag=$(git rev-parse --abbrev-ref HEAD) - echo $tag - cd .. - cp -Recurse cpptrace/test/fetchcontent-integration . - mkdir fetchcontent-integration/build - cd fetchcontent-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG="$tag" "-GUnix Makefiles" -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - make - .\main.exe - test-mingw-findpackage: - runs-on: windows-2022 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - $tag=$(git rev-parse --abbrev-ref HEAD) - echo $tag - mkdir build - cd build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} "-GUnix Makefiles" -DCMAKE_INSTALL_PREFIX=C:/foo -DCPPTRACE_WERROR_BUILD=On - make -j install - cd ../.. - mv cpptrace/test/findpackage-integration . - mkdir findpackage-integration/build - cd findpackage-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=C:/foo "-GUnix Makefiles" - make - ./main - test-mingw-add_subdirectory: - runs-on: windows-2022 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: test - run: | - cd .. - cp -Recurse cpptrace/test/add_subdirectory-integration . - cp -Recurse cpptrace add_subdirectory-integration - mkdir add_subdirectory-integration/build - cd add_subdirectory-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug "-GUnix Makefiles" -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - make - .\main.exe - test-windows-fetchcontent: - runs-on: windows-2022 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: Enable Developer Command Prompt - uses: ilammy/msvc-dev-cmd@v1.13.0 - - name: test - run: | - $tag=$(git rev-parse --abbrev-ref HEAD) - echo $tag - cd .. - cp -Recurse cpptrace/test/fetchcontent-integration . - mkdir fetchcontent-integration/build - cd fetchcontent-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCPPTRACE_TAG="$tag" -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - msbuild demo_project.sln - .\Debug\main.exe - test-windows-findpackage: - runs-on: windows-2022 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: Enable Developer Command Prompt - uses: ilammy/msvc-dev-cmd@v1.13.0 - - name: test - run: | - $tag=$(git rev-parse --abbrev-ref HEAD) - echo $tag - mkdir build - cd build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCMAKE_INSTALL_PREFIX=C:/foo -DCPPTRACE_WERROR_BUILD=On - msbuild cpptrace.sln - msbuild INSTALL.vcxproj - cd ../.. - mv cpptrace/test/findpackage-integration . - mkdir findpackage-integration/build - cd findpackage-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=C:/foo - msbuild demo_project.sln - .\Debug\main.exe - test-windows-add_subdirectory: - runs-on: windows-2022 - strategy: - fail-fast: false - matrix: - shared: [On, Off] - steps: - - uses: actions/checkout@v4 - - name: Enable Developer Command Prompt - uses: ilammy/msvc-dev-cmd@v1.13.0 - - name: test - run: | - cd .. - cp -Recurse cpptrace/test/add_subdirectory-integration . - cp -Recurse cpptrace add_subdirectory-integration - mkdir add_subdirectory-integration/build - cd add_subdirectory-integration/build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=${{matrix.shared}} -DCPPTRACE_WERROR_BUILD=On - msbuild demo_project.sln - .\Debug\main.exe diff --git a/.github/workflows/performance-tests.yml b/.github/workflows/performance-tests.yml deleted file mode 100644 index 6448f04..0000000 --- a/.github/workflows/performance-tests.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: performance-test - -on: - push: - pull_request: - -jobs: - performancetest-linux: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - compiler: [g++-11, clang++-14] - config: [ - -DSPEEDTEST_DWARF4=On, - -DSPEEDTEST_DWARF5=On - ] - steps: - - uses: actions/checkout@v4 - - name: dependencies - run: sudo apt install gcc-11 g++-11 libgcc-11-dev - - name: build - run: | - mkdir -p build - cd build - cmake .. -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=foo - make -j - make install - mkdir -p ../test/speedtest/build - cd ../test/speedtest/build - cmake .. \ - -DCMAKE_BUILD_TYPE=Debug \ - ${{matrix.config}} - make -j - - name: speedtest - working-directory: test/speedtest/build - run: | - ./speedtest | python3 ../../../ci/speedtest.py ${{matrix.compiler}} ${{matrix.config}} - - # I give up. For some reason SymInitialize is super slow on github's windows runner and it alone takes hundreds of ms. - # Nothing I can do about that. - #performancetest-windows: - # runs-on: windows-2022 - # strategy: - # fail-fast: false - # matrix: - # compiler: [cl, clang++] - # steps: - # - uses: actions/checkout@v4 - # - name: Enable Developer Command Prompt - # uses: ilammy/msvc-dev-cmd@v1.13.0 - # - name: build - # run: | - # mkdir -p build - # cd build - # cmake .. -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=foo - # msbuild .\cpptrace.sln /property:Configuration=Release - # msbuild .\INSTALL.vcxproj - # mkdir -p ../test/speedtest/build - # cd ../test/speedtest/build - # cmake .. ` - # -DCMAKE_BUILD_TYPE=Debug ` - # ${{matrix.config}} - # msbuild .\cpptrace-speedtest.sln - # - name: speedtest - # working-directory: test/speedtest/build - # run: | - # .\Debug\speedtest.exe | python3 ../../../ci/speedtest.py ${{matrix.config}}