Skip to content

Remove usage of FreeRTOS timers from asyncFreeRtos #123

Remove usage of FreeRTOS timers from asyncFreeRtos

Remove usage of FreeRTOS timers from asyncFreeRtos #123

Workflow file for this run

name: Code Coverage
on:
workflow_call:
push:
branches:
- main
pull_request:
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Pull and Run Docker with GCC 11.4.0 and LCOV
run: |
docker pull ubuntu:22.04
docker run --rm -v $(pwd):/workspace -w /workspace ubuntu:22.04 bash -c "
apt-get update &&
apt-get install -y gcc-11 g++-11 lcov wget cmake zip &&
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 &&
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100 &&
update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-11 100 &&
gcc --version &&
gcov --version &&
lcov --version &&
# Clean old coverage files
rm -rf cmake-build-unit-tests/*.gcda cmake-build-unit-tests/*.gcno &&
# Configure and build the tests
rm -rf cmake-build-unit-tests &&
cmake -B cmake-build-unit-tests -S executables/unitTest -DBUILD_UNIT_TESTS=ON -DCMAKE_BUILD_TYPE=${BUILD_TYPE} &&
cmake --build cmake-build-unit-tests -j4 &&
ctest --test-dir cmake-build-unit-tests -j4 &&
# Capture code coverage
lcov --no-external --capture --directory . \
--output-file cmake-build-unit-tests/coverage_unfiltered.info &&
# Filter out 3rd party and mock files
lcov --remove cmake-build-unit-tests/coverage_unfiltered.info \
'*libs/3rdparty/googletest/*' \
'*/mock/*' \
'*/gmock/*' \
'*/gtest/*' \
'*/test/*' \
--output-file cmake-build-unit-tests/coverage.info &&
# Generate HTML coverage report
genhtml cmake-build-unit-tests/coverage.info \
--output-directory cmake-build-unit-tests/coverage &&
# Zip the coverage report
mv cmake-build-unit-tests/coverage code_coverage &&
zip -r code_coverage.zip code_coverage
"
- name: Upload code coverage artifact
uses: actions/upload-artifact@v4
with:
name: code_coverage
path: code_coverage.zip