[roll] Roll fuchsia [run-test-suite] Preliminary directory output implementation

Adds an implementation of directory output that only records results
and names. The serializable definition of the output is placed in a new
library so that ffx plugins may use them directly.
This doesn't yet save artifacts or timing information.

Currently, running an example test
ffx component test --experimental-output-directory test-output fuchsia-pkg://fuchsia.com/run_test_suite_integration_tests#meta/logging_test.cm
produces two json files:

test_output/run_summary.json
{
  "version": "0",
  "outcome": "PASSED",
  "suites": [
    {
      "summary": "1.json"
    }
  ]
}

test_output_1.json
{
  "version": "0",
  "outcome": "PASSED",
  "name": "fuchsia-pkg://fuchsia.com/run_test_suite_integration_tests#meta/logging_test.cm",
  "cases": [
    {
      "outcome": "PASSED",
      "name": "log_and_exit"
    }
  ]
}

Testing: new unit tests
Original-Bug: 75133

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/513514
Original-Revision: f87006583cb619e071662a81088f7aa2a1047cad
GitOrigin-RevId: d4e1887ad7adcf44d8611f01111bb99c8c9ed7ec
Change-Id: Ie6be3546d853c9e1ba53af9a50c22fab2e8a41d4
1 file changed
tree: 6f39551d3d40a9ced19e600bec8289c31c35ccba
  1. garnet/
  2. infra/
  3. peridot/
  4. third_party/
  5. topaz/
  6. zircon/
  7. firmware
  8. flower
  9. jiri.lock
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.