lc-compliance: Move camera setup to CameraHolder class
Different base classes can be used for different setups on tests, but all of them will need to setup the camera for the test. To reuse that code, move it to a separate CameraHolder class that is inherited by test classes. Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Sven Püschel <s.pueschel@pengutronix.de>
This commit is contained in:
parent
d01342f1dc
commit
f3a12332f6
4 changed files with 57 additions and 14 deletions
|
@ -15,6 +15,7 @@ lc_compliance_sources = files([
|
|||
'environment.cpp',
|
||||
'helpers/capture.cpp',
|
||||
'main.cpp',
|
||||
'test_base.cpp',
|
||||
'tests/capture_test.cpp',
|
||||
])
|
||||
|
||||
|
|
28
src/apps/lc-compliance/test_base.cpp
Normal file
28
src/apps/lc-compliance/test_base.cpp
Normal file
|
@ -0,0 +1,28 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (C) 2021, Collabora Ltd.
|
||||
*
|
||||
* test_base.cpp - Base definitions for tests
|
||||
*/
|
||||
|
||||
#include "test_base.h"
|
||||
|
||||
#include "environment.h"
|
||||
|
||||
void CameraHolder::acquireCamera()
|
||||
{
|
||||
Environment *env = Environment::get();
|
||||
|
||||
camera_ = env->cm()->get(env->cameraId());
|
||||
|
||||
ASSERT_EQ(camera_->acquire(), 0);
|
||||
}
|
||||
|
||||
void CameraHolder::releaseCamera()
|
||||
{
|
||||
if (!camera_)
|
||||
return;
|
||||
|
||||
camera_->release();
|
||||
camera_.reset();
|
||||
}
|
24
src/apps/lc-compliance/test_base.h
Normal file
24
src/apps/lc-compliance/test_base.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (C) 2021, Collabora Ltd.
|
||||
*
|
||||
* test_base.h - Base definitions for tests
|
||||
*/
|
||||
|
||||
#ifndef __LC_COMPLIANCE_TEST_BASE_H__
|
||||
#define __LC_COMPLIANCE_TEST_BASE_H__
|
||||
|
||||
#include <libcamera/libcamera.h>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
class CameraHolder
|
||||
{
|
||||
protected:
|
||||
void acquireCamera();
|
||||
void releaseCamera();
|
||||
|
||||
std::shared_ptr<libcamera::Camera> camera_;
|
||||
};
|
||||
|
||||
#endif /* __LC_COMPLIANCE_TEST_BASE_H__ */
|
|
@ -15,13 +15,13 @@
|
|||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "environment.h"
|
||||
#include "test_base.h"
|
||||
|
||||
namespace {
|
||||
|
||||
using namespace libcamera;
|
||||
|
||||
class SimpleCapture : public testing::TestWithParam<std::tuple<std::vector<StreamRole>, int>>
|
||||
class SimpleCapture : public testing::TestWithParam<std::tuple<std::vector<StreamRole>, int>>, public CameraHolder
|
||||
{
|
||||
public:
|
||||
static std::string nameParameters(const testing::TestParamInfo<SimpleCapture::ParamType> &info);
|
||||
|
@ -29,8 +29,6 @@ public:
|
|||
protected:
|
||||
void SetUp() override;
|
||||
void TearDown() override;
|
||||
|
||||
std::shared_ptr<Camera> camera_;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -39,20 +37,12 @@ protected:
|
|||
*/
|
||||
void SimpleCapture::SetUp()
|
||||
{
|
||||
Environment *env = Environment::get();
|
||||
|
||||
camera_ = env->cm()->get(env->cameraId());
|
||||
|
||||
ASSERT_EQ(camera_->acquire(), 0);
|
||||
acquireCamera();
|
||||
}
|
||||
|
||||
void SimpleCapture::TearDown()
|
||||
{
|
||||
if (!camera_)
|
||||
return;
|
||||
|
||||
camera_->release();
|
||||
camera_.reset();
|
||||
releaseCamera();
|
||||
}
|
||||
|
||||
std::string SimpleCapture::nameParameters(const testing::TestParamInfo<SimpleCapture::ParamType> &info)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue