[RFC,v3,00/21] apps: lc-compliance: Multi-stream tests
mbox series

Message ID 20250130115001.1129305-1-pobrn@protonmail.com
Headers show
Series
  • apps: lc-compliance: Multi-stream tests
Related show

Message

Barnabás Pőcze Jan. 30, 2025, 11:50 a.m. UTC
This changeset adds multi-stream tests based on the last two commits of
https://patchwork.libcamera.org/project/libcamera/list/?series=4234

Similarly, only two commits here deal with multi-stream tests directly:
  * Support multiple streams in helpers
  * Add multi-stream tests

Most other changes are non-functional changes.

One notable difference compared to the last patch of the aforementioned
series is that no new test is created, the current tests are kept
and are simply run with multiple streams.

Another notable change is that the `CaptureBalanced` and `CaptureUnbalanced`
are merged into the `Capture` base class.

Changes in v3:
 * propagate exceptions from deferred calls
 * cancel related deferred calls when capture session is stopped
 * make `EventLoop` a member of `Capture`
 * rename `CaptureUnbalanced` to `StopWithRequestsQueued`

Changes in v2:
 * add a couple small `EventLoop` changes
 * remove https://patchwork.libcamera.org/patch/22442/
 * merge `CaptureBalanced` and `CaptureUnbalanced`
 * run request completion handler in "main" thread

v2: https://patchwork.libcamera.org/project/libcamera/list/?series=4951
v1: https://patchwork.libcamera.org/project/libcamera/list/?series=4923

Barnabás Pőcze (21):
  apps: common: event_loop: Take callbacks by rvalue ref
  apps: common: event_loop: Disable copy/move
  apps: common: event_loop: Use `std::deque` instead of `std::list`
  apps: common: event_loop: Use single event source for deferred calls
  apps: common: event_loop: Remove unused type alias
  apps: common: event_loop: Add way to cancel deferred calls
  apps: common: event_loop: Make it possible to exit with exception
  apps: lc-compliance: Initialize `CameraManager` pointer in
    `Environment`
  apps: lc-compliance: Put tests into anonymous namespace
  apps: lc-compliance: Optimize `std::shared_ptr` usage
  apps: lc-compliance: Remove redundant getter call
  apps: lc-compliance: Don't allocate `FrameBufferAllocator` dynamically
  apps: lc-compliance: Use `std::vector` for argument array
  apps: lc-compliance: Use array instead of `std::vector`
  apps: lc-compliance: Add message to `GTEST_SKIP()`
  apps: lc-compliance: Merge `CaptureBalanced` and `CaptureUnbalanced`
  apps: lc-compliance: Support multiple streams in helpers
  apps: lc-compliance: Add multi-stream tests
  apps: lc-compliance: Run request completion handler in "main" thread
  apps: lc-compliance: Make `EventLoop` a member
  apps: lc-compliance: Rename `CaptureUnbalanced`

 src/apps/common/event_loop.cpp                | 109 ++++++---
 src/apps/common/event_loop.h                  |  31 ++-
 src/apps/lc-compliance/environment.h          |   2 +-
 src/apps/lc-compliance/helpers/capture.cpp    | 218 +++++++++---------
 src/apps/lc-compliance/helpers/capture.h      |  54 ++---
 src/apps/lc-compliance/main.cpp               |  42 +---
 src/apps/lc-compliance/tests/capture_test.cpp | 102 ++++----
 7 files changed, 289 insertions(+), 269 deletions(-)

--
2.48.1