Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Re-Enable StructABI test for xplat#18496

Merged
jashook merged 1 commit into
dotnet:masterfrom
jashook:enable_structabi
Jun 18, 2018
Merged

Re-Enable StructABI test for xplat#18496
jashook merged 1 commit into
dotnet:masterfrom
jashook:enable_structabi

Conversation

@jashook
Copy link
Copy Markdown

@jashook jashook commented Jun 15, 2018

I have also doubled the callsites to test the managed-to-managed caller/callee pair.

This change will also set this test to run by default as an innerloop test.

@jashook
Copy link
Copy Markdown
Author

jashook commented Jun 15, 2018

Fixes #18485

@jashook jashook requested a review from CarolEidt June 16, 2018 17:27
@jashook
Copy link
Copy Markdown
Author

jashook commented Jun 16, 2018

/cc @dotnet/jit-contrib

Copy link
Copy Markdown

@CarolEidt CarolEidt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great - thanks for doing this!
You mentioned that there was an issue with this test if not building tests natively - was fixing it as simple as quoting the name of the lib in the DllImport or was there some other fix I missed seeing?

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
<CLRTestPriority>1</CLRTestPriority>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! Not sure why this wouldn't always have been Pri0 as long as it was not disabled.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The csproj had the 1 set, so the project would not have been built (or run) without priority=1.

@jashook
Copy link
Copy Markdown
Author

jashook commented Jun 18, 2018

Correct, there was some cruft in the test to specify the dll to call into. This looked like it was required in older released of core, but has now been fixed.

@jashook
Copy link
Copy Markdown
Author

jashook commented Jun 18, 2018

I think the test still has a fatal flaw, in that the structs passed are never promoted. My guess is because they are immediately returned. It is worth further investigation to possible add another call which does not echo the structs, to hopefully test promotion.

@CarolEidt is there a stress mode that overly promotes struct types? Or any thoughts around such a mode?

@jashook
Copy link
Copy Markdown
Author

jashook commented Jun 18, 2018

Thank you for reviewing!

@CarolEidt
Copy link
Copy Markdown

I think the test still has a fatal flaw, in that the structs passed are never promoted. My guess is because they are immediately returned.

The bigger issue is that they've been passed in as parameters. Hopefully that will improve soon. In my test for #18499 I used a static struct to get around that.

Is there a stress mode that overly promotes struct types? Or any thoughts around such a mode?

This was proposed in #11888

@jashook jashook merged commit 6a35855 into dotnet:master Jun 18, 2018
@jashook jashook deleted the enable_structabi branch June 18, 2018 17:32
ok = EnoughRegistersSysV2Wrapper();
ok = EnoughRegistersSysV3Wrapper();
ok = EnoughRegistersSysV4Wrapper();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test is going to pass now if the last test passes -- it will ignore all other test case results.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for catching this. I have opened #18529 to address it.

@jashook jashook restored the enable_structabi branch June 18, 2018 17:58
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants