Add localloc empty stack verification#73109
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsAccording to III.3.47 stack must be empty before
|
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
| { | ||
| } | ||
|
|
||
| .class public auto ansi beforefieldinit LocAllocTests |
There was a problem hiding this comment.
Could you please add a positive test as well?
There was a problem hiding this comment.
Sure, added test for stack underflow & positive test
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Co-authored-by: Dan Moseley <danmose@microsoft.com>
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@trylek @jkoritzinsky The tests at https://github.com/dotnet/runtime/tree/main/src/tests/ilverify are not running as part of |
|
I have taken a first look. I believe the problem is not a direct consequence of test merging even though it may have been affected by some of the related script refactorings. In particular, the |
jkotas
left a comment
There was a problem hiding this comment.
I have verified that the tests are passing locally.
|
Thank you! |
|
Glad I could help! |
As JanK noticed in dotnet#73109, outerloop tests don't run the ilverify/ILVerificationTests.csproj test project. This is because the project is somewhat atypical in residing just one directory level beneath the test binary root folder; all other tests reside under at least two directory levels and the legacy XUnit wrapper generator reflects it so that each wrapper corresponds to a two-level directory subtree. The pre-existing logic for determining active two-level test directories was quite hacky and perf-costly; I probably accidentally removed the support for single-subfolder tests in one of my refactorings of the src/tests/build.proj script. This change fixes it and makes the construction of TestDirectories much more efficient as we no longer construct a Carthesian product of all tests and all two-level folder directories. Thanks Tomas
As JanK noticed in #73109, outerloop tests don't run the ilverify/ILVerificationTests.csproj test project. This is because the project is somewhat atypical in residing just one directory level beneath the test binary root folder; all other tests reside under at least two directory levels and the legacy XUnit wrapper generator reflects it so that each wrapper corresponds to a two-level directory subtree. The pre-existing logic for determining active two-level test directories was quite hacky and perf-costly; I probably accidentally removed the support for single-subfolder tests in one of my refactorings of the src/tests/build.proj script. This change fixes it and makes the construction of TestDirectories much more efficient as we no longer construct a Carthesian product of all tests and all two-level folder directories. Thanks Tomas
According to III.3.47 stack must be empty before
locallocinstruction