-
Notifications
You must be signed in to change notification settings - Fork 123
flowey: new xflowey vmm-tests command #1405
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
base: main
Are you sure you want to change the base?
Conversation
Oh wow this is exciting - I've been wanting to look at trying to implement this |
For example, to build everything for ARM and copy it to a windows directory:
Then run on the destination machine:
(I will document this and maybe include the command as a script file in the output dir) |
@@ -24,7 +24,7 @@ pub const MDBOOK_ADMONISH: &str = "1.18.0"; | |||
pub const MDBOOK_MERMAID: &str = "0.14.0"; | |||
pub const RUSTUP_TOOLCHAIN: &str = "1.87.0"; | |||
pub const MU_MSVM: &str = "24.0.4"; | |||
pub const NEXTEST: &str = "0.9.74"; | |||
pub const NEXTEST: &str = "0.9.96"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are we getting?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A prebuilt ARM64 windows binary. Prior to 0.9.94, their pipeline didn't build for windows arm64.
/// Custom list of artifacts to build | ||
build: BuildSelections, | ||
}, | ||
Flags { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer to see a more scalable approach, one that makes it easier to add/remove test categories in one place in the code (as opposed to requiring changes in clap, here, in the code below that constructs the filter, etc.), and that makes it easier to set and control the defaults.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm yeah I agree that would be better, but I haven't thought of a better alternative yet. I wanted to have the logic for generating the test filter in the job file so that I could easily select which things needed to get built. I didn't see an example of a better way in the repo. I was generally copying the structure of build-igvm here.
// Copyright (c) Microsoft Corporation. | ||
// Licensed under the MIT License. | ||
|
||
//! A local-only job that builds everything needed and runs the VMM tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In practice does this pretty much only work under WSL?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the cross compiling would probably only work in WSL, but you could run Windows tests on Windows and Linux tests on (non-WSL) Linux, I think. I haven't tested it yet though.
Out of curiosity - is the idea of having a flowey-backed petri_artifact_resolver still something that's on folk's radar? This approach, where flowey drives nextest execution, has the unfortunate property of having to write and maintain an entirely new in-house CLI for executing tests (i.e: the new The inverse approach, where users invoke There's also the "middle ground" approach, where there is a Anyways, just some food for thought. If this is the easiest on-ramp to enable simple local test runs, then obviously #shipit *then again, you're already doing that in the CI case anyways, so as long as you've got good code-sharing between those two paths, maybe its not a big deal. |
Having So, I think we'd still want a wrapper command, even if we did more to automate the discovery of what needed to be built. |
Sounds like the hybrid, multi-command approach of having a i.e: a user workflow would look like:
If a "one click" wrapper is needed, it can certainly be implemented on-top of this workflow, but it really seems unfortunate to have yet another bespoke, complex in-house CLI for folks to memorize (vs. the relatively "simple" resolve-test-artifacts CLI I'm suggesting here). |
A new xflowey command that builds everything necessary to run the VMM tests.