diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2025-06-11 20:39:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-11 20:39:48 +0200 |
| commit | 8a08edbdc7776eef7dd541f66c8eb56322753fa1 (patch) | |
| tree | 2726ab628abef888fdeaa6ea63cdd0f2bed5e487 /.github/workflows | |
| parent | 7bfd70a8283f89eb149d88a8a1f8560e6b9fee27 (diff) | |
| parent | 828d4c71d2b82f5786f63bdf7ac6a10fe92670ea (diff) | |
Merge pull request #5319 from Kelimion/coverage
Add code coverage
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/cover.yml | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/.github/workflows/cover.yml b/.github/workflows/cover.yml new file mode 100644 index 000000000..9d0fcfeb4 --- /dev/null +++ b/.github/workflows/cover.yml @@ -0,0 +1,60 @@ +name: Test Coverage +on: [push, pull_request, workflow_dispatch] + +jobs: + build_linux_amd64: + runs-on: ubuntu-latest + 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 https://github.com/SimonKagstrom/kcov.git + mkdir kcov/build + cd kcov/build + cmake .. + sudo make + sudo make install + cd ../.. + kcov --version + + - 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 . + + - uses: codecov/codecov-action@v5 + with: + name: Ubuntu Coverage # optional + token: ${{ secrets.CODECOV_TOKEN }} + verbose: true # optional (default = false + directory: kcov-out/kcov-merged
\ No newline at end of file |