Add checks to track down flake

Add explicit checks for scalability_mode presence

This is to help with identifying the source of flakiness:

gen/third_party/libc++/src/include/optional:874: libc++ Hardening
assertion this->has_value() failed: optional operator* called on a
disengaged value *** SIGABRT received at time=1756631788 on cpu 3 ***
PC: @ 0x7ffff709eb1c (unknown) pthread_kill
    @     0x555557ef1364        256  absl::AbslFailureSignalHandler()
    @     0x555555d5169e         64  SignalAction()
    @     0x7ffff7045320  157537360  (unknown)
    @     0x7ffff704526e         32  raise
    @     0x7ffff70288ff        192  abort
    @     0x55555b0c8552        624  std::__Cr::__libcpp_verbose_abort()
    @     0x55555654b2ff       2656  webrtc::PeerConnectionEncodingsIntegrationParameterizedTest_Simulcast_Test::TestBody()
    @     0x5555580ec194         80  testing::Test::Run()
    @     0x5555580eec8c        144  testing::TestInfo::Run()
    @     0x5555580f1687        288  testing::TestSuite::Run()
    @     0x555558126a25        608  testing::internal::UnitTestImpl::RunAllTests()
    @     0x555558124fb1         96  testing::UnitTest::Run()
    @     0x55555826a970       1024  webrtc::(anonymous namespace)::TestMainImpl::Run()
    @     0x555557e3d081        272  main
    @     0x7ffff702a1ca        160  (unknown)
    @     0x7ffff702a28b         96  __libc_start_main
    @     0x555555cd32fa  (unknown)  _start

To help diagnose the intermittent failures, this change adds explicit
`EXPECT_TRUE` assertions to verify that `scalability_mode.has_value()`
before checking the mode's string content. These more granular checks
will help pinpoint the root cause of the test flake.

Bug: none
Change-Id: Ia3d846cde1a28ec397a20573b929dad3bf0636fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/407340
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45502}
1 file changed
tree: 8df205f69a9bfc497f5c06a4e808431fe3c79e80
  1. api/
  2. audio/
  3. build_overrides/
  4. call/
  5. common_audio/
  6. common_video/
  7. data/
  8. docs/
  9. examples/
  10. experiments/
  11. g3doc/
  12. infra/
  13. logging/
  14. media/
  15. modules/
  16. net/
  17. p2p/
  18. pc/
  19. resources/
  20. rtc_base/
  21. rtc_tools/
  22. sdk/
  23. stats/
  24. system_wrappers/
  25. test/
  26. tools_webrtc/
  27. video/
  28. .clang-format
  29. .clang-tidy
  30. .git-blame-ignore-revs
  31. .gitignore
  32. .gn
  33. .mailmap
  34. .rustfmt.toml
  35. .style.yapf
  36. .vpython3
  37. AUTHORS
  38. BUILD.gn
  39. CODE_OF_CONDUCT.md
  40. codereview.settings
  41. DEPS
  42. DIR_METADATA
  43. ENG_REVIEW_OWNERS
  44. LICENSE
  45. license_template.txt
  46. native-api.md
  47. OWNERS
  48. OWNERS_INFRA
  49. PATENTS
  50. PRESUBMIT.py
  51. presubmit_test.py
  52. presubmit_test_mocks.py
  53. pylintrc
  54. pylintrc_old_style
  55. README.chromium
  56. README.md
  57. WATCHLISTS
  58. webrtc.gni
  59. webrtc_lib_link_test.cc
  60. whitespace.txt
README.md

WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.

The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.

Development

See here for instructions on how to get started developing with the native code.

Authoritative list of directories that contain the native API header files.

More info