Skip to content

Enable use of RuntimeVariant to exclude runtime tests#51522

Merged
naricc merged 19 commits into
dotnet:mainfrom
naricc:naricc/runtime-mode
May 25, 2021
Merged

Enable use of RuntimeVariant to exclude runtime tests#51522
naricc merged 19 commits into
dotnet:mainfrom
naricc:naricc/runtime-mode

Conversation

@naricc

@naricc naricc commented Apr 19, 2021

Copy link
Copy Markdown
Contributor

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

ghost commented Apr 19, 2021

Copy link
Copy Markdown

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
Copy Markdown
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.

Comment thread src/tests/issues.targets Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

🎉

@naricc

naricc commented Apr 21, 2021

Copy link
Copy Markdown
Contributor Author

@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

radical commented Apr 23, 2021

Copy link
Copy Markdown
Member

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

radical commented Apr 23, 2021

Copy link
Copy Markdown
Member

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

@naricc naricc force-pushed the naricc/runtime-mode branch from d13f086 to 8b2db81 Compare April 23, 2021 17:32
@naricc

naricc commented Apr 23, 2021

Copy link
Copy Markdown
Contributor Author

@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 safern and trylek 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

radical commented Apr 23, 2021

Copy link
Copy Markdown
Member

@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.

Comment thread src/tests/issues.targets Outdated
Comment thread eng/pipelines/common/templates/runtimes/run-test-job.yml Outdated
Comment thread eng/pipelines/common/templates/runtimes/run-test-job.yml Outdated
Comment thread src/tests/issues.targets Outdated
Comment thread eng/pipelines/common/templates/runtimes/run-test-job.yml Outdated

@trylek trylek left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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

@naricc

naricc commented Apr 29, 2021

Copy link
Copy Markdown
Contributor Author

Looks like hte libraries failures are this issue: #52031

@naricc

naricc commented Apr 30, 2021

Copy link
Copy Markdown
Contributor Author

@naricc

naricc commented May 24, 2021

Copy link
Copy Markdown
Contributor Author

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

@SamMonoRT

Copy link
Copy Markdown
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