Skip to content

Updates - #558

Open
stefannikolei wants to merge 7 commits into
SixLabors:mainfrom
stefannikolei:sn/updates
Open

Updates#558
stefannikolei wants to merge 7 commits into
SixLabors:mainfrom
stefannikolei:sn/updates

Conversation

@stefannikolei

Copy link
Copy Markdown
Contributor

Updated to .net10/.net11
Migrated to slnx
Updated SharedInfrastructure for XUnit.V3 v4 💩💩💩

@stefannikolei

Copy link
Copy Markdown
Contributor Author

That test error on .net11 looks really strange. The actual and expected size differ quite a lot. On .net10 everything works.

@JimBobSquarePants

Copy link
Copy Markdown
Member

That test error on .net11 looks really strange. The actual and expected size differ quite a lot. On .net10 everything works.

It’s possible to download the failed artefacts from that test (see ci output for link). We can use that to figure out what is happening.

@stefannikolei

stefannikolei commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author
VisualTest_SyntheticBold_-CFF-

Reproduced on my machine

.net11
image
net10
image

@JimBobSquarePants

Copy link
Copy Markdown
Member

Interesting! So this is one of three things.

A bug in our code
A bug in the runtime
An expected breaking change in the runtime.

@stefannikolei

Copy link
Copy Markdown
Contributor Author

Interesting! So this is one of three things.

A bug in our code A bug in the runtime An expected breaking change in the runtime.

would you mind checking it on win?

@JimBobSquarePants

Copy link
Copy Markdown
Member

I'll have to wait until tomorrow my time now. it's late here. Hopefully I can figure it out quickly.

@stefannikolei

Copy link
Copy Markdown
Contributor Author

I'll have to wait until tomorrow my time now. it's late here. Hopefully I can figure it out quickly.

When it is not reproducible on win. Then let me know. I can give you access to my Mac.

  CffBoundsFinder.GetBounds() cast the float.MaxValue/MinValue
  straight to short when a charstring never emitted a path operation
  (e.g. the space glyph). That overflow is unspecified by the C# spec;
  .NET 10 happened to produce small values, but .NET 11 preview saturates
  to short.MinValue/MaxValue instead, producing bogus +/-32767 unit
  bounds that blew up text layout for any run containing a space in a
  CFF font. Return Bounds.Empty when no point was ever recorded.
@codecov

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80%. Comparing base (c68b27d) to head (2370c8b).

Additional details and impacted files
@@          Coverage Diff           @@
##            main    #558    +/-   ##
======================================
- Coverage     81%     80%    -1%     
======================================
  Files        406     406            
  Lines      35672   35674     +2     
  Branches    5561    5518    -43     
======================================
- Hits       29126   28840   -286     
- Misses      5375    5397    +22     
- Partials    1171    1437   +266     
Flag Coverage Δ
unittests 80% <100%> (-1%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@stefannikolei

Copy link
Copy Markdown
Contributor Author

@JimBobSquarePants

Copy link
Copy Markdown
Member

@JimBobSquarePants This is the documentation to the change in the runtime which caused this.

https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/preview7/runtime.md#saturating-floatdouble-conversions-to-small-integral-types

I actually had a hunch it might be that change. it bit me during some testing a while back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants