[libcamera-devel] [PATCH v3 4/7] apps: lc-compliance: Re-organize source directory

Stefan Klug stefan.klug at ideasonboard.com
Fri Mar 15 12:54:04 CET 2024


Hi Jacopo,

thanks for the patch. Had I known that before... :-)

On Sat, Dec 30, 2023 at 05:29:09PM +0100, Jacopo Mondi wrote:
> Before adding more tests and more helper classes to lc-compliance,
> reorganize the source tree to split test and helpers in two separate
> directories.
> 
> While at it, rename the 'SimpleCapture' class and its derived classes to
> just 'Capture'. Rename the source files accordingly.
> 
> Re-sort headers inclusions to please checkstyle.py too.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

look all good to me.

Reviewed-by: Stefan Klug <stefan.klug at ideasonboard.com> 
Tested-by: Stefan Klug <stefan.klug at ideasonboard.com> 

Cheers,
Stefan

> ---
>  .../capture.cpp}                              | 38 +++++++++----------
>  .../{simple_capture.h => helpers/capture.h}   | 14 +++----
>  src/apps/lc-compliance/meson.build            | 10 ++++-
>  .../{ => tests}/capture_test.cpp              |  9 +++--
>  4 files changed, 39 insertions(+), 32 deletions(-)
>  rename src/apps/lc-compliance/{simple_capture.cpp => helpers/capture.cpp} (81%)
>  rename src/apps/lc-compliance/{simple_capture.h => helpers/capture.h} (76%)
>  rename src/apps/lc-compliance/{ => tests}/capture_test.cpp (95%)
> 
> diff --git a/src/apps/lc-compliance/simple_capture.cpp b/src/apps/lc-compliance/helpers/capture.cpp
> similarity index 81%
> rename from src/apps/lc-compliance/simple_capture.cpp
> rename to src/apps/lc-compliance/helpers/capture.cpp
> index 545b444c2593..5aab973f0392 100644
> --- a/src/apps/lc-compliance/simple_capture.cpp
> +++ b/src/apps/lc-compliance/helpers/capture.cpp
> @@ -5,24 +5,24 @@
>   * simple_capture.cpp - Simple capture helper
>   */
>  
> -#include <gtest/gtest.h>
> +#include "capture.h"
>  
> -#include "simple_capture.h"
> +#include <gtest/gtest.h>
>  
>  using namespace libcamera;
>  
> -SimpleCapture::SimpleCapture(std::shared_ptr<Camera> camera)
> +Capture::Capture(std::shared_ptr<Camera> camera)
>  	: loop_(nullptr), camera_(camera),
>  	  allocator_(std::make_unique<FrameBufferAllocator>(camera))
>  {
>  }
>  
> -SimpleCapture::~SimpleCapture()
> +Capture::~Capture()
>  {
>  	stop();
>  }
>  
> -void SimpleCapture::configure(StreamRole role)
> +void Capture::configure(StreamRole role)
>  {
>  	config_ = camera_->generateConfiguration({ role });
>  
> @@ -42,7 +42,7 @@ void SimpleCapture::configure(StreamRole role)
>  	}
>  }
>  
> -void SimpleCapture::start()
> +void Capture::start()
>  {
>  	Stream *stream = config_->at(0).stream();
>  	int count = allocator_->allocate(stream);
> @@ -50,12 +50,12 @@ void SimpleCapture::start()
>  	ASSERT_GE(count, 0) << "Failed to allocate buffers";
>  	EXPECT_EQ(count, config_->at(0).bufferCount) << "Allocated less buffers than expected";
>  
> -	camera_->requestCompleted.connect(this, &SimpleCapture::requestComplete);
> +	camera_->requestCompleted.connect(this, &Capture::requestComplete);
>  
>  	ASSERT_EQ(camera_->start(), 0) << "Failed to start camera";
>  }
>  
> -void SimpleCapture::stop()
> +void Capture::stop()
>  {
>  	if (!config_ || !allocator_->allocated())
>  		return;
> @@ -69,14 +69,14 @@ void SimpleCapture::stop()
>  	allocator_->free(stream);
>  }
>  
> -/* SimpleCaptureBalanced */
> +/* CaptureBalanced */
>  
> -SimpleCaptureBalanced::SimpleCaptureBalanced(std::shared_ptr<Camera> camera)
> -	: SimpleCapture(camera)
> +CaptureBalanced::CaptureBalanced(std::shared_ptr<Camera> camera)
> +	: Capture(camera)
>  {
>  }
>  
> -void SimpleCaptureBalanced::capture(unsigned int numRequests)
> +void CaptureBalanced::capture(unsigned int numRequests)
>  {
>  	start();
>  
> @@ -116,7 +116,7 @@ void SimpleCaptureBalanced::capture(unsigned int numRequests)
>  	ASSERT_EQ(captureCount_, captureLimit_);
>  }
>  
> -int SimpleCaptureBalanced::queueRequest(Request *request)
> +int CaptureBalanced::queueRequest(Request *request)
>  {
>  	queueCount_++;
>  	if (queueCount_ > captureLimit_)
> @@ -125,7 +125,7 @@ int SimpleCaptureBalanced::queueRequest(Request *request)
>  	return camera_->queueRequest(request);
>  }
>  
> -void SimpleCaptureBalanced::requestComplete(Request *request)
> +void CaptureBalanced::requestComplete(Request *request)
>  {
>  	EXPECT_EQ(request->status(), Request::Status::RequestComplete)
>  		<< "Request didn't complete successfully";
> @@ -141,14 +141,14 @@ void SimpleCaptureBalanced::requestComplete(Request *request)
>  		loop_->exit(-EINVAL);
>  }
>  
> -/* SimpleCaptureUnbalanced */
> +/* CaptureUnbalanced */
>  
> -SimpleCaptureUnbalanced::SimpleCaptureUnbalanced(std::shared_ptr<Camera> camera)
> -	: SimpleCapture(camera)
> +CaptureUnbalanced::CaptureUnbalanced(std::shared_ptr<Camera> camera)
> +	: Capture(camera)
>  {
>  }
>  
> -void SimpleCaptureUnbalanced::capture(unsigned int numRequests)
> +void CaptureUnbalanced::capture(unsigned int numRequests)
>  {
>  	start();
>  
> @@ -179,7 +179,7 @@ void SimpleCaptureUnbalanced::capture(unsigned int numRequests)
>  	ASSERT_EQ(status, 0);
>  }
>  
> -void SimpleCaptureUnbalanced::requestComplete(Request *request)
> +void CaptureUnbalanced::requestComplete(Request *request)
>  {
>  	captureCount_++;
>  	if (captureCount_ >= captureLimit_) {
> diff --git a/src/apps/lc-compliance/simple_capture.h b/src/apps/lc-compliance/helpers/capture.h
> similarity index 76%
> rename from src/apps/lc-compliance/simple_capture.h
> rename to src/apps/lc-compliance/helpers/capture.h
> index 2911d6019923..0574ab1c7ac7 100644
> --- a/src/apps/lc-compliance/simple_capture.h
> +++ b/src/apps/lc-compliance/helpers/capture.h
> @@ -13,14 +13,14 @@
>  
>  #include "../common/event_loop.h"
>  
> -class SimpleCapture
> +class Capture
>  {
>  public:
>  	void configure(libcamera::StreamRole role);
>  
>  protected:
> -	SimpleCapture(std::shared_ptr<libcamera::Camera> camera);
> -	virtual ~SimpleCapture();
> +	Capture(std::shared_ptr<libcamera::Camera> camera);
> +	virtual ~Capture();
>  
>  	void start();
>  	void stop();
> @@ -35,10 +35,10 @@ protected:
>  	std::vector<std::unique_ptr<libcamera::Request>> requests_;
>  };
>  
> -class SimpleCaptureBalanced : public SimpleCapture
> +class CaptureBalanced : public Capture
>  {
>  public:
> -	SimpleCaptureBalanced(std::shared_ptr<libcamera::Camera> camera);
> +	CaptureBalanced(std::shared_ptr<libcamera::Camera> camera);
>  
>  	void capture(unsigned int numRequests);
>  
> @@ -51,10 +51,10 @@ private:
>  	unsigned int captureLimit_;
>  };
>  
> -class SimpleCaptureUnbalanced : public SimpleCapture
> +class CaptureUnbalanced : public Capture
>  {
>  public:
> -	SimpleCaptureUnbalanced(std::shared_ptr<libcamera::Camera> camera);
> +	CaptureUnbalanced(std::shared_ptr<libcamera::Camera> camera);
>  
>  	void capture(unsigned int numRequests);
>  
> diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build
> index 2f07a50f171b..ae8c6f4db51b 100644
> --- a/src/apps/lc-compliance/meson.build
> +++ b/src/apps/lc-compliance/meson.build
> @@ -11,10 +11,15 @@ endif
>  lc_compliance_enabled = true
>  
>  lc_compliance_sources = files([
> -    'capture_test.cpp',
>      'environment.cpp',
> +    'helpers/capture.cpp',
>      'main.cpp',
> -    'simple_capture.cpp',
> +    'tests/capture_test.cpp',
> +])
> +
> +lc_compliance_includes = ([
> +    include_directories('.'),
> +    include_directories('helpers/')
>  ])
>  
>  lc_compliance  = executable('lc-compliance', lc_compliance_sources,
> @@ -26,5 +31,6 @@ lc_compliance  = executable('lc-compliance', lc_compliance_sources,
>                                  libevent,
>                                  libgtest,
>                              ],
> +                            include_directories : lc_compliance_includes,
>                              install : true,
>                              install_tag : 'bin-devel')
> diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/tests/capture_test.cpp
> similarity index 95%
> rename from src/apps/lc-compliance/capture_test.cpp
> rename to src/apps/lc-compliance/tests/capture_test.cpp
> index 1dcfcf92fc8c..284d36307619 100644
> --- a/src/apps/lc-compliance/capture_test.cpp
> +++ b/src/apps/lc-compliance/tests/capture_test.cpp
> @@ -6,12 +6,13 @@
>   * capture_test.cpp - Test camera capture
>   */
>  
> +#include "capture.h"
> +
>  #include <iostream>
>  
>  #include <gtest/gtest.h>
>  
>  #include "environment.h"
> -#include "simple_capture.h"
>  
>  using namespace libcamera;
>  
> @@ -83,7 +84,7 @@ TEST_P(SingleStream, Capture)
>  {
>  	auto [role, numRequests] = GetParam();
>  
> -	SimpleCaptureBalanced capture(camera_);
> +	CaptureBalanced capture(camera_);
>  
>  	capture.configure(role);
>  
> @@ -102,7 +103,7 @@ TEST_P(SingleStream, CaptureStartStop)
>  	auto [role, numRequests] = GetParam();
>  	unsigned int numRepeats = 3;
>  
> -	SimpleCaptureBalanced capture(camera_);
> +	CaptureBalanced capture(camera_);
>  
>  	capture.configure(role);
>  
> @@ -121,7 +122,7 @@ TEST_P(SingleStream, UnbalancedStop)
>  {
>  	auto [role, numRequests] = GetParam();
>  
> -	SimpleCaptureUnbalanced capture(camera_);
> +	CaptureUnbalanced capture(camera_);
>  
>  	capture.configure(role);
>  


More information about the libcamera-devel mailing list