diff options
Diffstat (limited to 'src/apps/lc-compliance')
-rw-r--r-- | src/apps/lc-compliance/meson.build | 1 | ||||
-rw-r--r-- | src/apps/lc-compliance/test_base.cpp | 28 | ||||
-rw-r--r-- | src/apps/lc-compliance/test_base.h | 24 | ||||
-rw-r--r-- | src/apps/lc-compliance/tests/capture_test.cpp | 18 |
4 files changed, 57 insertions, 14 deletions
diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build index b1f605f3..80b9a160 100644 --- a/src/apps/lc-compliance/meson.build +++ b/src/apps/lc-compliance/meson.build @@ -15,6 +15,7 @@ lc_compliance_sources = files([ 'environment.cpp', 'helpers/capture.cpp', 'main.cpp', + 'test_base.cpp', 'tests/capture_test.cpp', ]) diff --git a/src/apps/lc-compliance/test_base.cpp b/src/apps/lc-compliance/test_base.cpp new file mode 100644 index 00000000..c9957b9e --- /dev/null +++ b/src/apps/lc-compliance/test_base.cpp @@ -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(); +} diff --git a/src/apps/lc-compliance/test_base.h b/src/apps/lc-compliance/test_base.h new file mode 100644 index 00000000..52347749 --- /dev/null +++ b/src/apps/lc-compliance/test_base.h @@ -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__ */ diff --git a/src/apps/lc-compliance/tests/capture_test.cpp b/src/apps/lc-compliance/tests/capture_test.cpp index d02caa8a..29d8b7f8 100644 --- a/src/apps/lc-compliance/tests/capture_test.cpp +++ b/src/apps/lc-compliance/tests/capture_test.cpp @@ -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) |