Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable use of RuntimeVariant to exclude runtime tests #51522

Merged
merged 19 commits into from
May 25, 2021

Conversation

naricc
Copy link
Contributor

@naricc naricc commented Apr 19, 2021

Currently, we can only exclude tests based on architecture, runtime flavor (mono/coreclr), and operating system. This change additionally allows the exclusions of tests based on runtime variants, such as interpreter, jit, or llvmaot.

I haven't gotten a full green build out of this yet, but I believe it trying to run the right things now. So I am making it ready for review.

Fixes #49653

@ghost
Copy link

ghost commented Apr 19, 2021

Tagging subscribers to this area: @directhex
See info in area-owners.md if you want to be subscribed.

Issue Details

Currently, we can only exclude tests based on architecture, runtime flavor (mono/coreclr), and operating system. This change additionally allows the exclusions of tests based on runtime variants, such as interpreter, jit, or llvmaot.

This is in draft while I work out the CI parts of it.

Author: naricc
Assignees: -
Labels:

area-Infrastructure-mono

Milestone: -

@naricc naricc force-pushed the naricc/runtime-mode branch 2 times, most recently from 413b869 to f342783 Compare April 19, 2021 20:38
@SamMonoRT
Copy link
Member

@naricc - while thinking about this, also consider the possibility of adding an extra refinement for differentiating Interpreter WASM v/s AOT WASM test runs. Quite likely the set of failures maybe different.

<!-- The following only fail in the mono interpreter, but we don't have a way to exclude based on scenario yet -->

<ExcludeList Include = "$(XunitTestBinBase)/JIT/jit64/opt/cse/HugeArray1/**">
<!-- Known failures for mono runtime on *all* architectures/operating systems in interpreter runtime mode -->
Copy link
Member

Choose a reason for hiding this comment

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

🎉

@naricc
Copy link
Contributor Author

naricc commented Apr 21, 2021

@SamMonoRT Yeah, I had considered that. For interpreter wasm we can already just look at the architecture and variant; same for aot. The mechanism is general enough that we should be able to use it for any of the jit/aot/aotllvm things we have, just by defining a new variant for each.

It would be nice if I could create an enum for this, but there is no such facility in msbuild, or any way to statically check that the names agree with what it is in the build yml files.

@radical
Copy link
Member

radical commented Apr 23, 2021

Can we surface this in PlatformDetection (or similar) so that it can be used with attributes like ActiveIssue? You will probably have to use #ifdef FOO+msbuild to define FOO. It would be useful here.

@radical
Copy link
Member

radical commented Apr 23, 2021

I was trying https://gist.github.com/radical/dcbadb80909bd78fbabc4020a6018298#file-foo-diff-L74-L96, but that wouldn't be enough.

@naricc
Copy link
Contributor Author

naricc commented Apr 23, 2021

@radical Maybe. I am not sure what you had in mind exactly, adding a "GetRuntimeVariant" method to PlatformDetection?

Currently this is only for the runtime tests, which have their own unique way of building and don't use PlatfromDetection.

@naricc naricc marked this pull request as ready for review April 23, 2021 17:40
@naricc naricc requested review from trylek and safern April 23, 2021 17:40
@naricc naricc changed the title [DRAFT] Enable use of RuntimeVariant to exclude runtime tests Enable use of RuntimeVariant to exclude runtime tests Apr 23, 2021
@naricc naricc added the test-enhancement Improvements of test source code label Apr 23, 2021
@radical
Copy link
Member

radical commented Apr 23, 2021

@radical Maybe. I am not sure what you had in mind exactly, adding a "GetRuntimeVariant" method to PlatformDetection?

Currently this is only for the runtime tests, which have their own unique way of building and don't use PlatfromDetection.

Oh ok, I was mistaken then. I'll add something for the library tests.

Copy link
Member

@trylek trylek left a comment

Choose a reason for hiding this comment

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

LGTM, thank you!

@imhameed
Copy link
Contributor

_il_relu_conv, deadoponerrorinfunclet_r, and deadoponerrorinfunclet_d should be disabled for LLVM AOT; these are genuine failures.

@naricc
Copy link
Contributor Author

naricc commented Apr 29, 2021

Looks like hte libraries failures are this issue: #52031

@naricc
Copy link
Contributor Author

naricc commented Apr 30, 2021

@naricc
Copy link
Contributor Author

naricc commented May 24, 2021

Some how I didn't merge this. Re-opening.

@SamMonoRT
Copy link
Member

Don't see how your changes can cause Library/WASM lane failures @steveisok are these known issues and we can merge this PR ?

@naricc naricc merged commit 24544e0 into dotnet:main May 25, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jun 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Infrastructure-mono test-enhancement Improvements of test source code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Exclude Runtime Tests based on Runtime Mode [Interpreter/JIT/AOT]
9 participants