Repository navigation
Make the full test suite pass on Linux (platform-independent tests and paths) - #2
Closed
GrahamTheCoder wants to merge 5 commits into
Closed
GrahamTheCoder wants to merge 5 commits into
GrahamTheCoder wants to merge 5 commits into
Conversation
- Add Utils.RootedPath for OS-valid fake absolute paths - Compare solution file output ignoring EOL differences - Parse comment line numbers without relying on newline chars - Normalise newlines in XmlTests self-verifying fixture - Set EnableWindowsTargeting and use separator-neutral filters in multi-file fixture - Handle both path separators in SolutionFileTextEditor Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019FEr8H2e8jJFhFcBcweGhR
…leton Roslyn's workspace skeleton reference is unreadable on Linux, hiding all source types from the C# view and changing enum cast conversions. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019FEr8H2e8jJFhFcBcweGhR
GrahamTheCoder
commented
Nov 10, 2026
…ion directions Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019FEr8H2e8jJFhFcBcweGhR
- Restore VB defines (and My template) that Roslyn loses on Unix when MSBuild mangles quoted defines - Replace unreadable workspace project references with emitted metadata on Unix - Make project file, solution, resx and generated-file path handling separator agnostic Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019FEr8H2e8jJFhFcBcweGhR
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019FEr8H2e8jJFhFcBcweGhR
Owner
Author
|
Superseded by icsharpcode#1308 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The full test suite now passes on Linux (
net10.0: 1216 passed, 0 failed, 7 skipped, all pre-existingSkips). Differences are handled in shared places rather than per test..gitattributesis unchanged (* text eol=crlf).Not yet verified: Windows (CI) and
net8.0locally.Where each kind of difference is handled
\r\non every OS.Utils.RootedPath(...)builds OS-valid fake absolute paths instead ofC:\....Utils.HomogenizeEolon both sides.ConverterTestBaseparsesSourceLine:Nby digits, so it no longer depends on newline characters.XmlTests.vbnormalisesEnvironment.NewLine.MultiFileTestFixturesetsEnableWindowsTargeting(WinForms projects restore on Linux) and uses separator-neutralobj/binfilters.Math.Round/Conversions).CreateReferenceOnlyProjectFromAnyOptionsAsyncnow references metadata emitted directly from the project's compilation (no private members, as Roslyn's skeleton does), used by both conversion directions. It falls back to the workspace project reference if emit fails.CodeConv):\"escaping in VB/define:args into/", so Roslyn dropped all VB defines, including_MyType. The converter then compiled a My template that can't build. Defines are now re-read fromFinalDefineConstantson non-Windows and applied to both parse and compilation options.BC31519); they are replaced with emitted metadata (Unix only)..sln/.slnx/project-reference rewriting, resx and designer handling,obj/bin/AssemblyInfodetection and project-file source-to-target replacements now accept either separator and preserve the separators already in the file (PathConverter.EscapeSeparatorAgnostic).Tests/Readme.mdhas a new "Cross-platform (Windows and Linux)" section stating where each concern belongs, linked fromCONTRIBUTING.md.Review notes
MsBuildWorkspaceConverter) are guarded byPath.DirectorySeparatorChar, so Windows behaviour there is unchanged. TheProjectExtensionsmetadata-reference change and the path/regex changes apply on all platforms, so Windows CI is the real check for those.dotnet msbuild -getPropertyonce per VB project, and copies the My template via compilation options rather than reflection.Test plan
dotnet test Tests/Tests.csproj -f net10.0on Linux: all passnet8.0(running locally)🤖 Generated with Claude Code
https://claude.ai/code/session_019FEr8H2e8jJFhFcBcweGhR