From 3c23b46cfbe88e10cc48518599651deb3fa164ea Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Thu, 13 Feb 2025 20:43:02 +1300 Subject: [PATCH] Add coverage for fiber profiler. --- .github/workflows/test-coverage.yaml | 12 ++++++++++-- gems.rb | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml index d45d9ae..03cd19f 100644 --- a/.github/workflows/test-coverage.yaml +++ b/.github/workflows/test-coverage.yaml @@ -27,8 +27,15 @@ jobs: ruby: "3.3" selector: EPoll - os: ubuntu - ruby: "3.3" + ruby: "3.4" + selector: EPoll + - os: ubuntu + ruby: "3.4" + selector: URing + - os: ubuntu + ruby: "3.4" selector: URing + fiber_profile_capture: "true" - os: ubuntu ruby: "head" selector: URing @@ -51,13 +58,14 @@ jobs: env: IO_EVENT_SELECTOR: ${{matrix.selector}} ASYNC_SCHEDULER_DEFAULT_WORKER_POOL: ${{matrix.worker_pool}} + FIBER_PROFILER_CAPTURE: ${{matrix.fiber_profile_capture}} run: bundle exec bake test - uses: actions/upload-artifact@v4 with: include-hidden-files: true if-no-files-found: error - name: coverage-${{matrix.os}}-${{matrix.ruby}}-${{matrix.selector}}-${{matrix.worker_pool}} + name: coverage-${{matrix.os}}-${{matrix.ruby}}-${{matrix.selector}}-${{matrix.worker_pool}}-${{matrix.fiber_profile_capture}} path: .covered.db validate: diff --git a/gems.rb b/gems.rb index 8dca18b..1f97ada 100644 --- a/gems.rb +++ b/gems.rb @@ -10,7 +10,11 @@ gemspec # gem "io-event", git: "https://github.com/socketry/io-event.git" -gem "fiber-profiler" + +# In order to capture both code paths in coverage, we need to optionally load this gem: +if ENV["FIBER_PROFILER_CAPTURE"] == "true" + gem "fiber-profiler" +end group :maintenance, optional: true do gem "bake-gem"