summaryrefslogtreecommitdiff
path: root/src/lc-compliance/capture_test.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-20 00:44:55 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-20 13:36:25 +0300
commit84ad104499d9efc0253dae1a60ee070ed375ad95 (patch)
treed10fd53eb79cebb28fa3f72b18b46dddb6382b83 /src/lc-compliance/capture_test.cpp
parentdaf3f4b59f4ea0ecb42c6a39fe909f071d3a2842 (diff)
Move test applications to src/apps/
The cam and qcam test application share code, currently through a crude hack that references the cam source files directly from the qcam meson.build file. To prepare for the introduction of hosting that code in a static library, move all applications to src/apps/. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/lc-compliance/capture_test.cpp')
-rw-r--r--src/lc-compliance/capture_test.cpp128
1 files changed, 0 insertions, 128 deletions
diff --git a/src/lc-compliance/capture_test.cpp b/src/lc-compliance/capture_test.cpp
deleted file mode 100644
index 52578207..00000000
--- a/src/lc-compliance/capture_test.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (C) 2020, Google Inc.
- * Copyright (C) 2021, Collabora Ltd.
- *
- * capture_test.cpp - Test camera capture
- */
-
-#include <iostream>
-
-#include <gtest/gtest.h>
-
-#include "environment.h"
-#include "simple_capture.h"
-
-using namespace libcamera;
-
-const std::vector<int> NUMREQUESTS = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 };
-const std::vector<StreamRole> ROLES = { Raw, StillCapture, VideoRecording, Viewfinder };
-
-class SingleStream : public testing::TestWithParam<std::tuple<StreamRole, int>>
-{
-public:
- static std::string nameParameters(const testing::TestParamInfo<SingleStream::ParamType> &info);
-
-protected:
- void SetUp() override;
- void TearDown() override;
-
- std::shared_ptr<Camera> camera_;
-};
-
-/*
- * We use gtest's SetUp() and TearDown() instead of constructor and destructor
- * in order to be able to assert on them.
- */
-void SingleStream::SetUp()
-{
- Environment *env = Environment::get();
-
- camera_ = env->cm()->get(env->cameraId());
-
- ASSERT_EQ(camera_->acquire(), 0);
-}
-
-void SingleStream::TearDown()
-{
- if (!camera_)
- return;
-
- camera_->release();
- camera_.reset();
-}
-
-std::string SingleStream::nameParameters(const testing::TestParamInfo<SingleStream::ParamType> &info)
-{
- std::map<StreamRole, std::string> rolesMap = { { Raw, "Raw" },
- { StillCapture, "StillCapture" },
- { VideoRecording, "VideoRecording" },
- { Viewfinder, "Viewfinder" } };
-
- std::string roleName = rolesMap[std::get<0>(info.param)];
- std::string numRequestsName = std::to_string(std::get<1>(info.param));
-
- return roleName + "_" + numRequestsName;
-}
-
-/*
- * Test single capture cycles
- *
- * Makes sure the camera completes the exact number of requests queued. Example
- * failure is a camera that completes less requests than the number of requests
- * queued.
- */
-TEST_P(SingleStream, Capture)
-{
- auto [role, numRequests] = GetParam();
-
- SimpleCaptureBalanced capture(camera_);
-
- capture.configure(role);
-
- capture.capture(numRequests);
-}
-
-/*
- * Test multiple start/stop cycles
- *
- * Makes sure the camera supports multiple start/stop cycles. Example failure is
- * a camera that does not clean up correctly in its error path but is only
- * tested by single-capture applications.
- */
-TEST_P(SingleStream, CaptureStartStop)
-{
- auto [role, numRequests] = GetParam();
- unsigned int numRepeats = 3;
-
- SimpleCaptureBalanced capture(camera_);
-
- capture.configure(role);
-
- for (unsigned int starts = 0; starts < numRepeats; starts++)
- capture.capture(numRequests);
-}
-
-/*
- * Test unbalanced stop
- *
- * Makes sure the camera supports a stop with requests queued. Example failure
- * is a camera that does not handle cancelation of buffers coming back from the
- * video device while stopping.
- */
-TEST_P(SingleStream, UnbalancedStop)
-{
- auto [role, numRequests] = GetParam();
-
- SimpleCaptureUnbalanced capture(camera_);
-
- capture.configure(role);
-
- capture.capture(numRequests);
-}
-
-INSTANTIATE_TEST_SUITE_P(CaptureTests,
- SingleStream,
- testing::Combine(testing::ValuesIn(ROLES),
- testing::ValuesIn(NUMREQUESTS)),
- SingleStream::nameParameters);