Uh oh!
There was an error while loading. Please reload this page.
Make remote-test-client and remote-test-server compatible with windows - #72672
Conversation
rust-highfive
commented
May 27, 2020
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nikomatsakis (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
Mark-Simulacrum
left a comment
There was a problem hiding this comment.
I can't be sure this is correct for Windows, but it largely seems fine to me. Left one nit.
Uh oh!
There was an error while loading. Please reload this page.
d566ef7 to
94b7d27Comparenikomatsakis
commented
May 28, 2020
Just for reference: DLL Search Order for Desktop Applications EDIT: Similar handling for DLL loading here |
rylev
commented
May 28, 2020
Pinging @kennykerr and @sivadeilra as well. |
retep998
commented
May 28, 2020
The |
kennykerr
commented
May 28, 2020
Looks good. |
Mark-Simulacrum
commented
May 28, 2020
@bors r+ |
bors
commented
May 28, 2020
📌 Commit 94b7d27d3b7b59a55cf7ee66709cebeb25ea99ae has been approved by |
There was a problem hiding this comment.
Argh, yes! Really gotta setup WSL2 or a VM to test this, will do that later today.
(Is there a way to quickly run the equivalent of cargo check for different targets that don't support building form the host?)
There was a problem hiding this comment.
You can use cross
e.g.
cross check --target x86_64-unknown-linux-gnuThere was a problem hiding this comment.
Thanks, will check it out later today
94b7d27 to
36d6791Compareseritools
commented
May 29, 2020
What's the correct procedure here? I guess bors is gonna fail the merge when trying to test anything that's tested via the remote server. Can the new commit be re-submitted before it has to do all of that? 😅 ( @nikomatsakis ) |
Mark-Simulacrum
commented
May 29, 2020
It's automatically removed from queue if new commits are pushed, though there is the edge case of already being in a rollup. I think we're all good here though, so let's @bors r+ |
bors
commented
May 29, 2020
📌 Commit 36d6791 has been approved by |
seritools
commented
May 29, 2020
Gotcha, thanks! |
…rk-Simulacrum Make remote-test-client and remote-test-server compatible with windows `compiletest` and `remote-test-client`: The command line for `remote-test-client` was changed slightly to allow cross-platform compatible paths. The old way of supplying the support libs was by joining their paths with the executable path with `:`. This caused Windows-style paths to be split after the directory letter. Now, the number of support libs is provided as a parameter as well, and the support lib paths are split off from the regular args in the client. `remote-test-server`: - Marked Unix-only parts as such and implemented Windows alternatives - On Windows `LD_LIBRARY_PATH` doesn't exist. Libraries are loaded from `PATH` though, so that's the way around it. - Tiny cleanup: `Command::args`/`envs` instead of manually looping over them - The temp path for Windows has to be set via environment variable, since there isn't a global temp directory that would work on every machine (as a static string)
…rk-Simulacrum Make remote-test-client and remote-test-server compatible with windows `compiletest` and `remote-test-client`: The command line for `remote-test-client` was changed slightly to allow cross-platform compatible paths. The old way of supplying the support libs was by joining their paths with the executable path with `:`. This caused Windows-style paths to be split after the directory letter. Now, the number of support libs is provided as a parameter as well, and the support lib paths are split off from the regular args in the client. `remote-test-server`: - Marked Unix-only parts as such and implemented Windows alternatives - On Windows `LD_LIBRARY_PATH` doesn't exist. Libraries are loaded from `PATH` though, so that's the way around it. - Tiny cleanup: `Command::args`/`envs` instead of manually looping over them - The temp path for Windows has to be set via environment variable, since there isn't a global temp directory that would work on every machine (as a static string)
RalfJung
commented
May 30, 2020
Failed in #72786 (comment). |
36d6791 to
f07a093CompareWow, the error seems weird :S Can't see any reason why this shouldn't run on I've manually compiled and opened for that target it via While testing I've noticed that the client has a help text that I didn't update before, so I've done that to align it with the new parameters. Any ideas? |
Mark-Simulacrum
commented
May 31, 2020
Oh, I forgot -- I think we also need to update Line 1773 in 4512721 Line 1891 in 4512721 I'm not sure what the second place there is doing but the first one is using cargo's support for test runners, loosely documented here -- https://doc.rust-lang.org/nightly/cargo/reference/config.html?highlight=runner#targettriplerunner -- though as we're setting the environment variable I suspect we can't use arrays. |
seritools
commented
May 31, 2020
Ohh, now everything makes sense!
Because of this I think we have to move the submodule count before the executable, should be doable :) It doesn't seem like the cargo runner has a way of supplying support libs anyways, so setting it to About the second occurrence (l. 1891): That one is for the |
`compiletest` and `remote-test-client`: The command line for `remote-test-client` was changed slightly to allow cross-platform compatible paths. The old way of supplying the support libs was by joining their paths with the executable path with `:`. This caused Windows-style paths to be split after the directory letter. Now, the number of support libs is provided as a parameter as well, and the support lib paths are split off from the regular args in the client. `remote-test-server`: - Marked Unix-only parts as such and implemented Windows alternatives - On Windows `LD_LIBRARY_PATH` doesn't exist. Libraries are loaded from `PATH` though, so that's the way around it. - Tiny cleanup: `Command::args`/`envs` instead of manually looping over them - The temp path for Windows has to be set via environment variable, since there isn't a global temp directory that would work on every machine (as a static string)
f07a093 to
5f179c1CompareSince cargo appends executable/args, the support_lib count parameter has to come first.
5f179c1 to
036da3aCompareAlright! Let's give it another shot if everything looks good. |
Mark-Simulacrum
commented
May 31, 2020
@bors r+ rollup=never |
bors
commented
May 31, 2020
📌 Commit 036da3a has been approved by |
Dylan-DPC-zz
commented
Jun 2, 2020
@bors p=1 |
bors
commented
Jun 2, 2020
bors
commented
Jun 2, 2020
☀️ Test successful - checks-azure |
compiletestandremote-test-client:The command line for
remote-test-clientwas changed slightly to allow cross-platform compatible paths. The old way of supplying the support libs was by joining their paths with the executable pathwith
:. This caused Windows-style paths to be split after the directory letter. Now, the number of support libs is provided as a parameter as well, and the support lib paths are split off from the regular args in the client.remote-test-server:LD_LIBRARY_PATHdoesn't exist. Libraries are loaded fromPATHthough, so that's the way around it.Command::args/envsinstead of manually looping over them