[libcamera-devel,v3,4/7] apps: lc-compliance: Re-organize source directory
diff mbox series

Message ID 20231230162912.827669-5-jacopo.mondi@ideasonboard.com
State Accepted
Headers show
Series
  • apps: lc-compliance: Properties and multi-stream tests
Related show

Commit Message

Jacopo Mondi Dec. 30, 2023, 4:29 p.m. UTC
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@ideasonboard.com>
---
 .../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%)

Comments

Kieran Bingham Jan. 12, 2024, 11:41 a.m. UTC | #1
Quoting Jacopo Mondi via libcamera-devel (2023-12-30 16:29:09)
> 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.

Sounds reasonable. I expect there might be other 'capture' helpers in
the future too.


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> 
> Re-sort headers inclusions to please checkstyle.py too.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> ---
>  .../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);
>  
> -- 
> 2.41.0
>
Stefan Klug March 15, 2024, 11:54 a.m. UTC | #2
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@ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

look all good to me.

Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> 
Tested-by: Stefan Klug <stefan.klug@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);
>

Patch
diff mbox series

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);