[roll] Roll fuchsia [lacewing] Implement a "three strikes" timeout.

This CL changes how timeouts and interrupts impact lacewing tests in a
few ways.
1. We actually pass the timeout from the build file to the lacewing
   test. Previously, only infra saw it.
2. We additionally pass a "cleanup period" duration, during which we
   expect the test to do stuff that aides in debugging failures.
3. The test driver will send SIGTERM to the underlying test process at
   the beginning of the cleanup period, as well as at the end. Then it
   gets a final 30 second grace period, followed by SIGKILL.

In my experimentation, this works surprisingly well. When mobly gets
SIGTERM, it raises `TestAbortAll`, which tells the test to "skip this"
and move closer to exiting. So concretely:

- The first SIGTERM arrives during a test that's hanging. Mobly
  immediately aborts the test and moves onto the teardown handlers. This
  begins the "cleanup period."
- If the cleanup is taking too long, we send another SIGTERM and that
  aborts whatever the teardown was working on, and moves onto the next
  bit of teardown (i.e., goes from `teardown_test` to `teardown_class`
  or `clean_up`).
- That last phase is (hopefully) pretty quick and finishes up before
  we have to send SIGKILL.

Original-Bug: 488024065
Original-Bug: 491872342

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1535135
Original-Revision: 14db289b51814b5f1cb9ea9a0e94a728c5ff89e2
GitOrigin-RevId: aec586e8d78fecf27a403dff1d9721c7ac0957aa
Change-Id: I906ff4a5f1c893b07cfb91b0d9418c90fc84fe88
1 file changed
tree: 00192861067a8b1a40aeef390c8db6a04d9bed12
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. 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 in one of the communication channels documented at get involved.

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.