[build] Make host_test_data() play nicely with variants

For a build with variants of the host toolchain, let
VLT (Variant Location Test) = the variant-selected host test (i.e., the
one that gets put it host_x64-asan)
BLT (Base Location Test) = a hardlink of the VLT to the "normal" build
subdirectory (i.e., host_x64)

host_test_data() is meant to record metadata of runtime dependencies of
a host test for Infra's benefit (i.e., so that it can grab those files
along with the associated test's executable, and then run everything
outside of the build directory). This change is meant to address the
current limitation of 'VLT/BLT of tests and their runtime deps', which
can mean a few things:

(1) Test metadata records the test's path as VLT or BLT, and the test's
runtime deps as one of the two possible locations it could have been
copied to; these can diverge. This is a general problem/bug, which can
be quite frustrating and confusing to hit on. We tidy up a previous
mitigation against this in this change.

(2) One of VLT/BLT executes successfully, while the other complains that
it can't find its dependencies.

(3) The BLT does not have dependencies on its runtime deps. In this
situation minimally building the BLT won't result in the runtime deps
being copied to the place it expects them.

Change-Id: I1e7a1228438a75b0938c1125022959c48191c070
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/476198
Commit-Queue: Joshua Seaton <joshuaseaton@google.com>
Reviewed-by: David Turner <digit@google.com>
2 files changed
tree: 7519b35687ee26582b910a9d4825a3d6948a4f9c
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.