Skip to content

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 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
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