From d37a93cd7d9e8b7ba7329e381f42e52dd0f774de Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Wed, 11 Jun 2025 19:43:42 +0200 Subject: Add code coverage --- .github/cover.yml | 59 --------------------------------------------- .github/workflows/cover.yml | 59 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 59 deletions(-) delete mode 100644 .github/cover.yml create mode 100644 .github/workflows/cover.yml (limited to '.github') diff --git a/.github/cover.yml b/.github/cover.yml deleted file mode 100644 index c3352ec53..000000000 --- a/.github/cover.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Test Coverage -on: [push, pull_request, workflow_dispatch] - -jobs: - build_linux_amd64: - runs-on: ubuntu-22.04 - name: Linux AMD64 Test Coverage - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - - name: Download LLVM (Ubuntu) - if: matrix.os == 'ubuntu-latest' - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x llvm.sh - sudo ./llvm.sh 20 - echo "/usr/lib/llvm-20/bin" >> $GITHUB_PATH - - - name: Install kcov - run: | - sudo apt-get update - sudo apt-get install binutils-dev build-essential cmake libssl-dev libcurl4-openssl-dev libelf-dev libstdc++-12-dev zlib1g-dev libdw-dev libiberty-dev - git clone git@github.com:SimonKagstrom/kcov.git - mkdir kcov/build - cd kcov/build - cmake .. - sudo make - sudo make install - cd ../.. - kcov - - - name: Build Odin - run: ./build_odin.sh release - - - name: Odin report - run: ./odin report - - - name: Normal Core library tests - run: | - ./odin build tests/core/normal.odin -build-mode:test -debug -file -all-packages -vet -strict-style -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -target:linux_amd64 - mkdir kcov-out - kcov --exclude-path=tests --exclude-path=/usr kcov-out ./normal.bin . - - - name: Optimized Core library tests - run: | - ./odin build tests/core/speed.odin -build-mode:test -debug -file -all-packages -vet -strict-style -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -target:linux_amd64 - kcov --exclude-path=tests --exclude-path=/usr kcov-out ./speed.bin . - - - name: Internals tests - run: | - ./odin build tests/internal -build-mode:test -debug -all-packages -vet -strict-style -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -target:linux_amd64 - kcov --exclude-path=tests --exclude-path=/usr kcov-out ./internal . - - - name: Report - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - run: | - bash <(curl -s https://codecov.io/bash) -s kcov-out \ No newline at end of file diff --git a/.github/workflows/cover.yml b/.github/workflows/cover.yml new file mode 100644 index 000000000..c3352ec53 --- /dev/null +++ b/.github/workflows/cover.yml @@ -0,0 +1,59 @@ +name: Test Coverage +on: [push, pull_request, workflow_dispatch] + +jobs: + build_linux_amd64: + runs-on: ubuntu-22.04 + name: Linux AMD64 Test Coverage + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + + - name: Download LLVM (Ubuntu) + if: matrix.os == 'ubuntu-latest' + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + sudo ./llvm.sh 20 + echo "/usr/lib/llvm-20/bin" >> $GITHUB_PATH + + - name: Install kcov + run: | + sudo apt-get update + sudo apt-get install binutils-dev build-essential cmake libssl-dev libcurl4-openssl-dev libelf-dev libstdc++-12-dev zlib1g-dev libdw-dev libiberty-dev + git clone git@github.com:SimonKagstrom/kcov.git + mkdir kcov/build + cd kcov/build + cmake .. + sudo make + sudo make install + cd ../.. + kcov + + - name: Build Odin + run: ./build_odin.sh release + + - name: Odin report + run: ./odin report + + - name: Normal Core library tests + run: | + ./odin build tests/core/normal.odin -build-mode:test -debug -file -all-packages -vet -strict-style -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -target:linux_amd64 + mkdir kcov-out + kcov --exclude-path=tests --exclude-path=/usr kcov-out ./normal.bin . + + - name: Optimized Core library tests + run: | + ./odin build tests/core/speed.odin -build-mode:test -debug -file -all-packages -vet -strict-style -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -target:linux_amd64 + kcov --exclude-path=tests --exclude-path=/usr kcov-out ./speed.bin . + + - name: Internals tests + run: | + ./odin build tests/internal -build-mode:test -debug -all-packages -vet -strict-style -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -target:linux_amd64 + kcov --exclude-path=tests --exclude-path=/usr kcov-out ./internal . + + - name: Report + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + run: | + bash <(curl -s https://codecov.io/bash) -s kcov-out \ No newline at end of file -- cgit v1.2.3