[session_shell] Convert tests to use RequestStart().

This removes all use of Start() to start stories and replaces it
with RequestStart(), except from the session_shell test. That test
continues to exercise both ways to start stories until Start() is
removed altogether.

Move the existing implementation of SessionShell in the session_shell
test SessionShellImpl to a common location lib/testing where it can be
reused by other tests.

Create a common base class SessionShellBase for all test SessionShell
components that uniformly creates an instance of SessionShellImpl. Also
move setup of SessionShellContext and StoryProvider into the shared base
class, reducing boiler plate across tests.

Convert all test SessionShell components to use SessionShellBase.

Convert all test SessionShell components to use RequestStart() instead
of Start() to start stories. The SessionShellImpl instance in their
base classes handles the ensuiing AttachView() and DetachView calls.

Collateral cleanup:

* Simplify requests for PuppetMaster from environment.

* Uniformly use Signal() rather than Logout() to finish the test.

* Remove scheduling of timeouts that are redundant with the timeout
  in dev_base_shell.

* Remove redundant using declarations for TestPoint.

* Remove one unused declaration of Await.

* Convert component_context test to a sequential flow to
  avoid hitting timeouts, and for consistency with other tests.

* Convert component_context test to use Signal() and Await()
  rather than Get() and Put().

MF-121 #comment Convert tests to use RequestStart().

TESTED=/pkgfs/packages/modular_tests/0/test/run_modular_tests.sh
  Manually verified that without the SessionShellImpl, sessionmgr
  crashes in an FTL_CHECK() when the SessionShell uses RequestStart().

Change-Id: I145a9dfdd7a64ada7b63d56f125cb78c2ec351a7
29 files changed
tree: b2fc69de639e6f121d424bac34b96ad65b47a6a0
  1. bin/
  2. boards/
  3. build/
  4. cloud/
  5. docs/
  6. examples/
  7. infra/
  8. lib/
  9. packages/
  10. products/
  11. public/
  12. tests/
  13. third_party/
  14. web/
  15. .clang-format
  16. .clang-tidy
  17. .gitignore
  18. AUTHORS
  19. BUILD.gn
  20. CONTRIBUTING.md
  21. LICENSE
  22. navbar.md
  23. PATENTS
  24. README.md
README.md

Peridot

Peridot is a framework for composed, intelligent and distributed user experiences.

Applications not explicitly designed to interoperate (and possibly implemented in different programming languages) are ephemerally downloaded and dynamically composed to run in a shared context. The framework manages application lifecycle, resources and view hierarchy; and well as context and suggestion infrastructure.

State of Peridot experiences is transparently synchronized across user devices using a distributed offline-first storage system.

Read more