macrotest icon indicating copy to clipboard operation
macrotest copied to clipboard

Use subdirectory within target/tests/

Open ijackson opened this issue 2 years ago • 0 comments

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_DIR to 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 in cargo(). (Because the creation should be done in prepare(), not cargo().)
  • So, pass the value though in a new pub field in Project.
  • Abolish the now-unused target_dir field of Project.

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.

ijackson avatar Jan 15 '23 13:01 ijackson