| name: CMock Unit Tests |
| on: [push, pull_request] |
| |
| jobs: |
| run: |
| runs-on: ubuntu-20.04 |
| steps: |
| - name: Checkout Parent Repository |
| uses: actions/checkout@v3 |
| with: |
| ref: main |
| repository: FreeRTOS/FreeRTOS |
| submodules: 'recursive' |
| fetch-depth: 1 |
| |
| # Checkout user pull request changes |
| - name: Checkout Pull Request |
| uses: actions/checkout@v3 |
| with: |
| path: ./FreeRTOS/Source |
| |
| - name: Setup Python |
| uses: actions/setup-python@master |
| with: |
| python-version: 3.8 |
| |
| - name: Install packages |
| run: | |
| sudo apt-get install lcov cflow ruby doxygen build-essential unifdef |
| - name: Run Unit Tests with ENABLE_SANITIZER=1 |
| run: | |
| make -C FreeRTOS/Test/CMock clean |
| make -C FreeRTOS/Test/CMock ENABLE_SANITIZER=1 run_col_formatted |
| - name: Run Unit Tests for coverage |
| run: | |
| make -C FreeRTOS/Test/CMock clean |
| make -C FreeRTOS/Test/CMock lcovhtml |
| lcov --config-file FreeRTOS/Test/CMock/lcovrc --summary FreeRTOS/Test/CMock/build/cmock_test.info > FreeRTOS/Test/CMock/build/cmock_test_summary.txt |
| - name: Upload coverage to Codecov |
| uses: codecov/codecov-action@v3.1.0 |
| with: |
| files: ${{ github.workspace }}/FreeRTOS/Test/CMock/build/cmock_test.info |
| root_dir: ${{ github.workspace }}/FreeRTOS/Source |
| flags: unittests |
| fail_ci_if_error: false |
| verbose: false |
| - name: Archive code coverage data |
| uses: actions/upload-artifact@v2 |
| with: |
| name: coverage-data |
| path: FreeRTOS/Test/CMock/build/cmock_test* |
| - name: Archive code coverage html report |
| uses: actions/upload-artifact@v2 |
| with: |
| name: coverage-report |
| path: FreeRTOS/Test/CMock/build/coverage |