Skip to content

Comments

Add tests for ToHarfBuzzBlob disposal behavior (#3466)#3467

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/add-tests-for-issue-3466
Draft

Add tests for ToHarfBuzzBlob disposal behavior (#3466)#3467
Copilot wants to merge 3 commits intomainfrom
copilot/add-tests-for-issue-3466

Conversation

Copy link
Contributor

Copilot AI commented Jan 27, 2026

Description of Change

Add test coverage for PR #3466's behavioral change where ToHarfBuzzBlob no longer disposes the SKStreamAsset parameter.

Tests Added (6 methods in SKShaperTest.cs)

  • ToHarfBuzzBlobDoesNotDisposeStream - Stream remains accessible after blob creation
  • ToHarfBuzzBlobStreamMustBeDisposedByCaller - Validates caller disposal responsibility
  • ToHarfBuzzBlobBlobCanBeUsedWithinStreamLifetime - Safe usage pattern: using (stream) using (blob)
  • ToHarfBuzzBlobWorksWithNonMemoryMappedStream - Memory copy fallback path (when GetMemoryBase() returns zero)
  • SKShaperConstructorSucceeds - Integration test for SKShaper with new behavior
  • ToHarfBuzzBlobCanCreateMultipleBlobsFromSameStream - Stream reusability validation

Test Expectations

Current code (before #3466): Tests fail - blob incorrectly disposes stream via destroy callback
After #3466 merge: Tests pass - caller manages stream lifecycle

Bugs Fixed

None. (Test-only PR supporting #3466)

API Changes

None.

Behavioral Changes

None.

Required skia PR

None.

PR Checklist

  • Has tests (if omitted, state reason in description)
  • Rebased on top of main at time of PR
  • Merged related skia PRs
  • Changes adhere to coding standard
  • Updated documentation

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 0t3vsblobprodcus362.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • 1k9vsblobprodcus379.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • 1s1vsblobprodcus386.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • 4myvsblobprodcus32.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • 4vyvsblobprodcus361.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • 7devsblobprodcus323.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • 7k6vsblobprodcus337.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • c50vsblobprodcus330.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • c78vsblobprodcus322.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • cflvsblobprodcus383.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • frdvsblobprodcus327.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • jd4vsblobprodcus366.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • kh4vsblobprodcus325.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • l49vsblobprodcus358.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • l7avsblobprodcus319.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet tool restore (dns block)
  • lylvsblobprodcus31.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • m6xvsblobprodcus342.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • pc2vsblobprodcus360.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • rcxvsblobprodcus328.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • u3hvsblobprodcus371.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • u6ovsblobprodcus377.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • uy6vsblobprodcus34.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)
  • yluvsblobprodcus367.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet build tests/SkiaSharp.Tests.Console/SkiaSharp.Tests.Console.csproj (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

please look at #3466 and write some tests for this change.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits January 27, 2026 22:22
Co-authored-by: mattleibow <1096616+mattleibow@users.noreply.github.com>
Co-authored-by: mattleibow <1096616+mattleibow@users.noreply.github.com>
Copilot AI changed the title [WIP] Add tests for changes in issue #3466 Add tests for ToHarfBuzzBlob disposal behavior (#3466) Jan 27, 2026
Copilot AI requested a review from mattleibow January 27, 2026 22:30
mattleibow added a commit that referenced this pull request Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants