Summary
Test on ubuntu-latest fails on main. Every test in AppDataBatchManagerTests throws before reaching its assertion:
System.FormatException: Cannot convert "ktsu.BlastMerge.Test" to RelativeDirectoryPath
at ktsu.AppDataStorage.AppData.get_AppDomain()
at ktsu.AppDataStorage.AppData.get_Path()
at ktsu.AppDataStorage.AppData`1.LoadOrCreate()
at ktsu.BlastMerge.Services.AppDataBatchManager.get_AppData()
Windows passes.
There is nothing to fix here
The defect is in ktsu.Semantics.Paths, reached through ktsu.AppDataStorage. IsDirectoryPathAttribute validates a path by calling File.Exists, which for a relative path resolves against the current working directory. On Linux, .NET publishes an extensionless apphost named exactly ktsu.BlastMerge.Test beside the test assembly, so the check finds that file and rejects the name. On Windows the apphost is ktsu.BlastMerge.Test.exe, so it does not.
The name is identical on both platforms. Only what is on disk beside the process differs.
Tracked upstream: ktsu-dev/Semantics#196.
What unblocks it
A released ktsu.Semantics.Paths carrying that fix, then picking it up here. No change to this repository is expected to be needed, and it is worth re-checking rather than assuming once the dependency moves.
Verified
Cloned at main, ran the suite on Linux and on Windows. The only Linux failures are the ones above, all with the same cause.
Summary
Test on ubuntu-latestfails onmain. Every test inAppDataBatchManagerTeststhrows before reaching its assertion:Windows passes.
There is nothing to fix here
The defect is in
ktsu.Semantics.Paths, reached throughktsu.AppDataStorage.IsDirectoryPathAttributevalidates a path by callingFile.Exists, which for a relative path resolves against the current working directory. On Linux, .NET publishes an extensionless apphost named exactlyktsu.BlastMerge.Testbeside the test assembly, so the check finds that file and rejects the name. On Windows the apphost isktsu.BlastMerge.Test.exe, so it does not.The name is identical on both platforms. Only what is on disk beside the process differs.
Tracked upstream: ktsu-dev/Semantics#196.
What unblocks it
A released
ktsu.Semantics.Pathscarrying that fix, then picking it up here. No change to this repository is expected to be needed, and it is worth re-checking rather than assuming once the dependency moves.Verified
Cloned at
main, ran the suite on Linux and on Windows. The only Linux failures are the ones above, all with the same cause.