[sc] Validate component runner when using config.

Add new test cases for CML without a program section and with
an unknown runner. `cmc` itself enforces that if you have a program
section you specify a runner so there's no need to test that separately.

Requires defining a number of new empty binaries to ensure that our test
components are well-formed for the validator. Bare Rust binaries
currently need the syslog manifest shard even if they don't explicitly
depend on the syslog backend, which is tracked in fxb/97805.

Refactors integration test for the component_hub library so the resolved
config has a valid runner.

Refactors integration test for structured config validator to use an
archived package rather than just the package manifest and meta.far.
Adding an empty binary to the package includes a number of dynamic
libraries as well, and it would be fragile to list them individually
in the test build rules. Using an archived package ensures that all
files needed by the test are available.

Depends on I731575ecb8f2e84a79c8ea6d5488a7914e361e9d.

Fixed: 99713
Change-Id: I3abbbf7e067c1bb7b95a9439fb8a3a07196aa90b
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/678022
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Fuchsia-Auto-Submit: Adam Perry <adamperry@google.com>
Reviewed-by: Xyan Bhatnagar <xbhatnag@google.com>
22 files changed
tree: e6a0ee51cdd23a9994aea4676a815872487fc3d7
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. analysis_options.yaml
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. LICENSE
  28. OWNERS
  29. PATENTS
  30. pyrightconfig.json
  31. README.md
  32. rustfmt.toml
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

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.