macrotest
macrotest copied to clipboard
Use subdirectory within target/tests/
Use subdirectory within target/tests/
Or to put it another way, do not assume that the project's target/tests/target/ is ours to use as we wish.
Specifically,
- Change the the pathname to pass to cargo in
CARGO_TARGET_DIRto add/ "macrotest"at the end. - Create it, which is now necessary, because it's not a parent of
project.dir. - Construct it in
Project::prepare, rather than incargo(). (Because the creation should be done inprepare(), notcargo().) - So, pass the value though in a new
pubfield inProject. - Abolish the now-unused
target_dirfield ofProject.
Empirically, this is sufficient on its own to resolve https://github.com/eupn/macrotest/issues/83 https://github.com/dtolnay/trybuild/issues/218
(I don't know precisely what the difference is between trybuild's and macrotest's build invocations. It is possible that it would be better for cargo to be able to cache both in the target directory, but I think we should use a namespaced directory, regardless.)
I have submitted a similar merge request https://github.com/dtolnay/trybuild/pull/219 for trybuild, which, likewise, is sufficient on its own to resolve the problem I was experiencing. I think these changes should be made to both packages.