summaryrefslogtreecommitdiff
path: root/test/camera/statemachine.cpp
diff options
context:
space:
mode:
authorNĂ­colas F. R. A. Prado <nfraprado@collabora.com>2021-07-02 09:21:10 -0300
committerJacopo Mondi <jacopo@jmondi.org>2021-07-06 12:40:41 +0200
commitb0bf6b0aa90e2ce94ec77e389eea0e5849f2eaec (patch)
tree64973d1d420cd5db0442f5f595f292fddc26b6c1 /test/camera/statemachine.cpp
parentd7415bc4e46fe8aa25a495c79516d9882a35a5aa (diff)
libcamera: camera: Make stop() idempotent
Make Camera::stop() idempotent so that it can be called in any state and consecutive times. When called in any state other than CameraRunning, it is a no-op. This simplifies the cleanup path for applications. Signed-off-by: NĂ­colas F. R. A. Prado <nfraprado@collabora.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'test/camera/statemachine.cpp')
-rw-r--r--test/camera/statemachine.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/test/camera/statemachine.cpp b/test/camera/statemachine.cpp
index f0c3d776..26fb5ca1 100644
--- a/test/camera/statemachine.cpp
+++ b/test/camera/statemachine.cpp
@@ -41,13 +41,13 @@ protected:
if (camera_->queueRequest(&request) != -EACCES)
return TestFail;
- if (camera_->stop() != -EACCES)
- return TestFail;
-
/* Test operations which should pass. */
if (camera_->release())
return TestFail;
+ if (camera_->stop())
+ return TestFail;
+
/* Test valid state transitions, end in Acquired state. */
if (camera_->acquire())
return TestFail;
@@ -71,7 +71,8 @@ protected:
if (camera_->queueRequest(&request) != -EACCES)
return TestFail;
- if (camera_->stop() != -EACCES)
+ /* Test operations which should pass. */
+ if (camera_->stop())
return TestFail;
/* Test valid state transitions, end in Configured state. */
@@ -97,14 +98,14 @@ protected:
if (camera_->queueRequest(&request1) != -EACCES)
return TestFail;
- if (camera_->stop() != -EACCES)
- return TestFail;
-
/* Test operations which should pass. */
std::unique_ptr<Request> request2 = camera_->createRequest();
if (!request2)
return TestFail;
+ if (camera_->stop())
+ return TestFail;
+
/* Test valid state transitions, end in Running state. */
if (camera_->release())
return TestFail;