[wlan][policy] Fix timer wake flake

This change addresses a flake where some scan tests expect to wake a
pending timer and it does not exist. These tests use an executor with
real clock time, and because the timers are only 100ms, it is possible
(though unlikely, hence the infrequency of the flake) for that time to have passed
and the timer to have already awaken. This was confirmed by making the
timer even shorter and then reproducing the test failure.

This fix changes those scan tests that use `exec.wake_next_timer()` to
use `TestExecutor::new_with_fake_time`. This guarantees the timers won't
awake early. It also adds a helper method
`run_until_completion` to replace the `run_singlethreaded` usage in those tests.

Bug: 388671184
Test: fx test wlancfg-tests
Multiply: wlancfg-tests
Change-Id: Ia5040a3264df0ad348023e48dc0137014043ae1a
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1194216
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Reviewed-by: Marc Khouri <mnck@google.com>
Fuchsia-Auto-Submit: Hayden Nix <haydennix@google.com>
2 files changed
tree: b51530644cbdef879d591037537cf6f42849db73
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
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.