diff options
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/coverage.yml | 77 | 
1 files changed, 71 insertions, 6 deletions
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 946113a..1957e90 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -5,8 +5,9 @@ on:      branches: [ master ]  jobs: -  coverage: -    name: Gather coverage data +  # cargo test normally +  grcov: +    name: Gather coverage data with grcov      runs-on: ubuntu-latest      steps:        - name: Checkout branch @@ -17,11 +18,75 @@ jobs:          uses: actions-rs/toolchain@v1          with:            profile: minimal -      - name: Run tests with tarpaulin -        uses: actions-rs/tarpaulin@v0.1 +          # toolchain: nightly +          toolchain: nightly-2020-03-12 # latest nightly makes `quote` crash with -Zno-landing-pads +          override: true +      - name: Ensure workspace is clean +        uses: actions-rs/cargo@v1          with: -          args: '--all --exclude-files abnf_to_pest/* --exclude-files dhall_proc_macros/*' +          command: clean +      - name: Run tests with -Zprofile +        uses: actions-rs/cargo@v1 +        with: +          command: test +        env: +          CI_GRCOV: '1' #  Tell the test harness to increase stack size +          CARGO_INCREMENTAL: '0' +          RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Zno-landing-pads' +      - name: Run grcov +        id: grcov +        uses: actions-rs/grcov@v0.1 +      - name: Upload coverage data to codecov.io +        uses: codecov/codecov-action@v1 +        with: +          token: ${{secrets.CODECOV_TOKEN}} +          file: ${{steps.grcov.outputs.report}} + +  # Collect each feature independently to help identify missing tests +  grcov-split: +    name: Gather coverage data with grcov +    runs-on: ubuntu-latest +    strategy: +      matrix: +        feature: +          - parser +          - printer +          - binary +          - import +          - beta_normalize +          - alpha_normalize +          - type_inference +    steps: +      - name: Checkout branch +        uses: actions/checkout@master +        with: +          submodules: true +      - name: Setup Rust toolchain +        uses: actions-rs/toolchain@v1 +        with: +          profile: minimal +          # toolchain: nightly +          toolchain: nightly-2020-03-12 # latest nightly makes `quote` crash with -Zno-landing-pads +          override: true +      - name: Ensure workspace is clean +        uses: actions-rs/cargo@v1 +        with: +          command: clean +      - name: Run tests with -Zprofile +        uses: actions-rs/cargo@v1 +        with: +          command: test +          args: tests::spec::${{matrix.feature}} +        env: +          CI_GRCOV: '1' #  Tell the test harness to increase stack size +          CARGO_INCREMENTAL: '0' +          RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Zno-landing-pads' +      - name: Run grcov +        id: grcov +        uses: actions-rs/grcov@v0.1        - name: Upload coverage data to codecov.io -        uses: codecov/codecov-action@v1.0.2 +        uses: codecov/codecov-action@v1          with:            token: ${{secrets.CODECOV_TOKEN}} +          file: ${{steps.grcov.outputs.report}} +          flags: ${{matrix.feature}}  | 
