[WIP] Fix FileNotFoundException in NativeAOT test - #132173
[WIP] Fix FileNotFoundException in NativeAOT test#132173AndyAyersMS with Copilot wants to merge 2 commits into
Conversation
|
Azure Pipelines: 16 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries |
…pendency Co-authored-by: AndyAyersMS <10121823+AndyAyersMS@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
src/tests/JIT/Regression/JitBlue/Runtime_101046/Runtime_101046.ilproj:11
- The x64 Unix gating comment links to issue #131997, but that issue tracks a NativeAOT FileNotFoundException (TestLibrary) rather than the uint16 pinvoke normalization behavior described here. This makes the gate hard to audit later; please remove the incorrect link or replace it with the correct tracking issue for the normalization mismatch.
<!-- The JIT only normalizes small primitive pinvoke arguments where the ABI requires it, but the
clang-compiled callee assumes normalization on x64 Unix: https://github.com/dotnet/runtime/issues/131997 -->
<CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'x64' and '$(TargetsUnix)' == 'true'">true</CLRTestTargetUnsupported>
|
@jakobbotsch do you think we need to extend the small type normalization in #106314 to linux x64 too? Apparently clang depends on this and GCC does not. |
What is the example where clang depends on that? I believe the upper bits are undefined in SysV so that sounds like a clang bug. |
Runtime_101046.csprojandRuntime_101046.ilprojshared the same project name, so they sharedOutputPath/IntermediateOutputPathand the generated.cmd/.shwrapper and overwrote each other's outputs. After Enable out-of-process tests for CoreCLR browser WASM #131110 added aTestLibraryProjectReference+[ActiveIssue(typeof(PlatformDetection), ...)]to the C# variant only, NativeAOT builds could ILC-compile the C# assembly withoutTestLibraryin its reference set, so__GeneratedMainWrapper.Main()became a throwing body (FileNotFoundException: Could not find file 'TestLibrary').Runtime_101046_1(project, source file, test class) so the two tests no longer share output/intermediate directoriesTestLibrary-basedActiveIssuegate with theCLRTestTargetUnsupportedproject gate used by sibling native-asset testsuint16, the clang-built callee assumes normalization) — needs a JIT-team decision, noted for follow-upclr+libsand the test tree, ran both wrappers on linux-x64 (Runtime_101046_1passes; IL variant excluded on x64 Unix)