-
Notifications
You must be signed in to change notification settings - Fork 899
Sandbox test repositories in TMP #1018
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
Conversation
Mac has a weird /private/var/tmp vs /var/tmp usage for temporary directory paths. Also, what happens when the test suite fails? Is the directory guaranteed to be cleaned up? Windows is that weird OS which doesn't cleanup Temp dir on restart. |
Are they ever? |
Is it ok to add a dependency on Mono.Unix? What about people who use CoreCLR? |
Rephrased: I'm totally ok with this solution, but we need to ensure coreclr as a target doesn't fail. 💃 Other than that, reflection usage there is fine by me. I'm not suggesting we depend on Mono.Unix assembly for the test run. |
It's much more likely that the temp directory gets cleaned that a relative path to your We don't take a hard dependency on |
👍 |
@Therzok The test repositories are cleaned in a "best effort" mode. From time to time, we forget to properly release a handle and Ok to squash and merge? |
Fine by me. |
👍 |
cca5705
to
956691f
Compare
I've added some minor tweaks:
I'd be a taker for a final review |
Ok to merge? |
Sandbox test repositories in TMP
{ | ||
string tempPath; | ||
|
||
var unixPath = Type.GetType("Mono.Unix.UnixPath, Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"); |
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 know this feedback is a bit late, but here we go:
Elsewhere we use Type type = Type.GetType("Mono.Runtime")
to determine if we are running on mono - should we put this logic into a function that can be called? Or maybe this is only expected to succeed when running on Mono and *nix?
Also, might be nice to include a little more documentation around why this extra logic is necessary, where the publicKeytoken was found, (and maybe change the name to BuildTemporaryReposPath
).
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.
This is a bit different. You could be running with Mono on Windows (lol :D) or embedded systems that don't have Mono.Unix. We're only doing that if we have the supplied functionality.
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.
The bit we care about isn't that we're running on mono, but that we can run realpath()
, and we only really need it for OS X because that's the one with the silly rewrites of temp paths. Anywhere else we can take it or leave it.
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.
Thanks for the explanation - I think having this captured in code comments could be valuable. Also, it seems we are looking for a version of the assembly with a particular public key - This is because we only expect to work with version built by who ever controls that key?
No description provided.