summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/bayer-format.cpp2
-rw-r--r--test/byte-stream-buffer.cpp2
-rw-r--r--test/camera-sensor.cpp2
-rw-r--r--test/camera/buffer_import.cpp21
-rw-r--r--test/camera/capture.cpp22
-rw-r--r--test/controls/control_info.cpp2
-rw-r--r--test/controls/control_info_map.cpp2
-rw-r--r--test/controls/control_list.cpp2
-rw-r--r--test/controls/control_value.cpp2
-rw-r--r--test/delayed_controls.cpp2
-rw-r--r--test/event-dispatcher.cpp2
-rw-r--r--test/event-thread.cpp2
-rw-r--r--test/event.cpp2
-rw-r--r--test/fence.cpp77
-rw-r--r--test/file.cpp2
-rw-r--r--test/flags.cpp2
-rw-r--r--test/geometry.cpp2
-rw-r--r--test/gstreamer/gstreamer_device_provider_test.cpp2
-rw-r--r--test/gstreamer/gstreamer_multi_stream_test.cpp2
-rw-r--r--test/gstreamer/gstreamer_single_stream_test.cpp29
-rw-r--r--test/gstreamer/gstreamer_test.cpp6
-rw-r--r--test/gstreamer/gstreamer_test.h2
-rw-r--r--test/gstreamer/meson.build7
-rw-r--r--test/hotplug-cameras.cpp2
-rw-r--r--test/ipa/ipa_interface_test.cpp4
-rw-r--r--test/ipa/ipa_module_test.cpp4
-rw-r--r--test/ipa/meson.build8
-rw-r--r--test/ipa/rkisp1/meson.build15
-rw-r--r--test/ipa/rkisp1/rkisp1-utils.cpp108
-rw-r--r--test/ipc/unixsocket.cpp6
-rw-r--r--test/ipc/unixsocket_ipc.cpp2
-rw-r--r--test/libtest/buffer_source.h2
-rw-r--r--test/libtest/camera_test.h2
-rw-r--r--test/libtest/test.cpp2
-rw-r--r--test/libtest/test.h2
-rw-r--r--test/log/log_api.cpp2
-rw-r--r--test/log/log_process.cpp2
-rw-r--r--test/media_device/media_device_link_test.cpp2
-rw-r--r--test/media_device/media_device_print_test.cpp2
-rw-r--r--test/media_device/media_device_test.cpp2
-rw-r--r--test/media_device/media_device_test.h2
-rw-r--r--test/meson.build3
-rw-r--r--test/message.cpp2
-rw-r--r--test/object-delete.cpp2
-rw-r--r--test/object-invoke.cpp2
-rw-r--r--test/object.cpp2
-rw-r--r--test/process/process_test.cpp2
-rw-r--r--test/public-api.cpp2
-rw-r--r--test/serialization/control_serialization.cpp2
-rw-r--r--test/serialization/generated_serializer/generated_serializer_test.cpp2
-rw-r--r--test/serialization/ipa_data_serializer_test.cpp2
-rw-r--r--test/serialization/serialization_test.cpp2
-rw-r--r--test/serialization/serialization_test.h2
-rw-r--r--test/shared-fd.cpp2
-rw-r--r--test/signal-threads.cpp2
-rw-r--r--test/signal.cpp2
-rw-r--r--test/span.cpp2
-rw-r--r--test/stream/stream_colorspace.cpp2
-rw-r--r--test/stream/stream_formats.cpp2
-rw-r--r--test/threads.cpp2
-rw-r--r--test/timer-fail.cpp2
-rw-r--r--test/timer-thread.cpp2
-rw-r--r--test/timer.cpp2
-rw-r--r--test/transform.cpp2
-rw-r--r--test/unique-fd.cpp2
-rw-r--r--test/utils.cpp2
-rwxr-xr-xtest/v4l2_compat/v4l2_compat_test.py2
-rw-r--r--test/v4l2_subdevice/v4l2_subdevice_test.cpp2
-rw-r--r--test/v4l2_subdevice/v4l2_subdevice_test.h2
-rw-r--r--test/v4l2_videodevice/capture_async.cpp11
-rw-r--r--test/v4l2_videodevice/controls.cpp2
-rw-r--r--test/v4l2_videodevice/v4l2_videodevice_test.h2
-rw-r--r--test/yaml-parser.cpp2
73 files changed, 306 insertions, 133 deletions
diff --git a/test/bayer-format.cpp b/test/bayer-format.cpp
index 54f03487..f8d19804 100644
--- a/test/bayer-format.cpp
+++ b/test/bayer-format.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Sebastian Fricke
*
- * bayer_format.cpp - BayerFormat class tests
+ * BayerFormat class tests
*/
#include <iostream>
diff --git a/test/byte-stream-buffer.cpp b/test/byte-stream-buffer.cpp
index 04ff0571..04aab3d2 100644
--- a/test/byte-stream-buffer.cpp
+++ b/test/byte-stream-buffer.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2018, Google Inc.
*
- * byte_stream_buffer.cpp - ByteStreamBuffer tests
+ * ByteStreamBuffer tests
*/
#include <array>
diff --git a/test/camera-sensor.cpp b/test/camera-sensor.cpp
index 9503d775..1d402c43 100644
--- a/test/camera-sensor.cpp
+++ b/test/camera-sensor.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * camera-sensor.cpp - Camera sensor tests
+ * Camera sensor tests
*/
#include <algorithm>
diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp
index 92884004..815d1cae 100644
--- a/test/camera/buffer_import.cpp
+++ b/test/camera/buffer_import.cpp
@@ -63,6 +63,8 @@ protected:
request->reuse();
request->addBuffer(stream, buffer);
camera_->queueRequest(request);
+
+ dispatcher_->interrupt();
}
int init() override
@@ -76,6 +78,8 @@ protected:
return TestFail;
}
+ dispatcher_ = Thread::current()->eventDispatcher();
+
return TestPass;
}
@@ -133,17 +137,20 @@ protected:
}
}
- EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
+ const unsigned int nFrames = cfg.bufferCount * 2;
Timer timer;
- timer.start(1000ms);
- while (timer.isRunning())
- dispatcher->processEvents();
+ timer.start(500ms * nFrames);
+ while (timer.isRunning()) {
+ dispatcher_->processEvents();
+ if (completeRequestsCount_ > nFrames)
+ break;
+ }
- if (completeRequestsCount_ < cfg.bufferCount * 2) {
+ if (completeRequestsCount_ < nFrames) {
std::cout << "Failed to capture enough frames (got "
<< completeRequestsCount_ << " expected at least "
- << cfg.bufferCount * 2 << ")" << std::endl;
+ << nFrames << ")" << std::endl;
return TestFail;
}
@@ -161,6 +168,8 @@ protected:
}
private:
+ EventDispatcher *dispatcher_;
+
std::vector<std::unique_ptr<Request>> requests_;
unsigned int completeBuffersCount_;
diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
index de824083..8766fb19 100644
--- a/test/camera/capture.cpp
+++ b/test/camera/capture.cpp
@@ -59,6 +59,8 @@ protected:
request->reuse();
request->addBuffer(stream, buffer);
camera_->queueRequest(request);
+
+ dispatcher_->interrupt();
}
int init() override
@@ -73,6 +75,7 @@ protected:
}
allocator_ = new FrameBufferAllocator(camera_);
+ dispatcher_ = Thread::current()->eventDispatcher();
return TestPass;
}
@@ -135,19 +138,20 @@ protected:
}
}
- EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
+ unsigned int nFrames = allocator_->buffers(stream).size() * 2;
Timer timer;
- timer.start(1000ms);
- while (timer.isRunning())
- dispatcher->processEvents();
-
- unsigned int nbuffers = allocator_->buffers(stream).size();
+ timer.start(500ms * nFrames);
+ while (timer.isRunning()) {
+ dispatcher_->processEvents();
+ if (completeRequestsCount_ > nFrames)
+ break;
+ }
- if (completeRequestsCount_ < nbuffers * 2) {
+ if (completeRequestsCount_ < nFrames) {
cout << "Failed to capture enough frames (got "
<< completeRequestsCount_ << " expected at least "
- << nbuffers * 2 << ")" << endl;
+ << nFrames * 2 << ")" << endl;
return TestFail;
}
@@ -164,6 +168,8 @@ protected:
return TestPass;
}
+ EventDispatcher *dispatcher_;
+
std::vector<std::unique_ptr<Request>> requests_;
std::unique_ptr<CameraConfiguration> config_;
diff --git a/test/controls/control_info.cpp b/test/controls/control_info.cpp
index 1176a502..e1bb43f0 100644
--- a/test/controls/control_info.cpp
+++ b/test/controls/control_info.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * control_info.cpp - ControlInfo tests
+ * ControlInfo tests
*/
#include <iostream>
diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
index 29b33515..b0be14b5 100644
--- a/test/controls/control_info_map.cpp
+++ b/test/controls/control_info_map.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * control_info.cpp - ControlInfoMap tests
+ * ControlInfoMap tests
*/
#include <iostream>
diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
index bb35aab7..e27325c3 100644
--- a/test/controls/control_list.cpp
+++ b/test/controls/control_list.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * control_list.cpp - ControlList tests
+ * ControlList tests
*/
#include <iostream>
diff --git a/test/controls/control_value.cpp b/test/controls/control_value.cpp
index ad8e05d0..344107fa 100644
--- a/test/controls/control_value.cpp
+++ b/test/controls/control_value.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * control_value.cpp - ControlValue tests
+ * ControlValue tests
*/
#include <algorithm>
diff --git a/test/delayed_controls.cpp b/test/delayed_controls.cpp
index a8ce9828..7bd30e7a 100644
--- a/test/delayed_controls.cpp
+++ b/test/delayed_controls.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * delayed_controls.cpp - libcamera delayed controls test
+ * libcamera delayed controls test
*/
#include <iostream>
diff --git a/test/event-dispatcher.cpp b/test/event-dispatcher.cpp
index 9b07ab2b..f71c1c0d 100644
--- a/test/event-dispatcher.cpp
+++ b/test/event-dispatcher.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * event-dispatcher.cpp - Event dispatcher test
+ * Event dispatcher test
*/
#include <chrono>
diff --git a/test/event-thread.cpp b/test/event-thread.cpp
index d6e5d27a..5499bbf8 100644
--- a/test/event-thread.cpp
+++ b/test/event-thread.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * event-thread.cpp - Threaded event test
+ * Threaded event test
*/
#include <chrono>
diff --git a/test/event.cpp b/test/event.cpp
index 19dceae1..9f7b1ed4 100644
--- a/test/event.cpp
+++ b/test/event.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * event.cpp - Event test
+ * Event test
*/
#include <iostream>
diff --git a/test/fence.cpp b/test/fence.cpp
index 1e38bc2f..8095b228 100644
--- a/test/fence.cpp
+++ b/test/fence.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2021, Google Inc.
*
- * fence.cpp - Fence test
+ * Fence test
*/
#include <iostream>
@@ -43,7 +43,6 @@ private:
void signalFence();
- std::unique_ptr<Fence> fence_;
EventDispatcher *dispatcher_;
UniqueFD eventFd_;
UniqueFD eventFd2_;
@@ -58,8 +57,11 @@ private:
bool expectedCompletionResult_ = true;
bool setFence_ = true;
- unsigned int completedRequest_;
-
+ /*
+ * Request IDs track the number of requests that have completed. They
+ * are one-based, and don't wrap.
+ */
+ unsigned int completedRequestId_;
unsigned int signalledRequestId_;
unsigned int expiredRequestId_;
unsigned int nbuffers_;
@@ -127,8 +129,19 @@ int FenceTest::init()
return TestFail;
}
- signalledRequestId_ = nbuffers_ - 2;
- expiredRequestId_ = nbuffers_ - 1;
+ completedRequestId_ = 0;
+
+ /*
+ * All but two requests are queued without a fence. Request
+ * expiredRequestId_ will be queued with a fence that we won't signal
+ * (which is then expected to expire), and request signalledRequestId_
+ * will be queued with a fence that gets signalled. Select nbuffers_
+ * and nbuffers_ * 2 for those two requests, to space them by a few
+ * frames while still not requiring a long time for the test to
+ * complete.
+ */
+ expiredRequestId_ = nbuffers_;
+ signalledRequestId_ = nbuffers_ * 2;
return TestPass;
}
@@ -190,16 +203,16 @@ void FenceTest::requestRequeue(Request *request)
const Request::BufferMap &buffers = request->buffers();
const Stream *stream = buffers.begin()->first;
FrameBuffer *buffer = buffers.begin()->second;
- uint64_t cookie = request->cookie();
request->reuse();
- if (cookie == signalledRequestId_ && setFence_) {
+ if (completedRequestId_ == signalledRequestId_ - nbuffers_ && setFence_) {
/*
- * The second time this request is queued add a fence to it.
- *
- * The main loop signals it by using a timer to write to the
- * efd2_ file descriptor before the fence expires.
+ * This is the request that will be used to test fence
+ * signalling when it completes next time. Add a fence to it,
+ * using efd2_. The main loop will signal the fence by using a
+ * timer to write to the efd2_ file descriptor before the fence
+ * expires.
*/
std::unique_ptr<Fence> fence =
std::make_unique<Fence>(std::move(eventFd2_));
@@ -214,16 +227,15 @@ void FenceTest::requestRequeue(Request *request)
void FenceTest::requestComplete(Request *request)
{
- uint64_t cookie = request->cookie();
- completedRequest_ = cookie;
+ completedRequestId_++;
/*
- * The last request is expected to fail as its fence has not been
- * signaled.
+ * Request expiredRequestId_ is expected to fail as its fence has not
+ * been signalled.
*
* Validate the fence status but do not re-queue it.
*/
- if (cookie == expiredRequestId_) {
+ if (completedRequestId_ == expiredRequestId_) {
if (validateExpiredRequest(request) != TestPass)
expectedCompletionResult_ = false;
@@ -231,7 +243,7 @@ void FenceTest::requestComplete(Request *request)
return;
}
- /* Validate all requests but the last. */
+ /* Validate all other requests. */
if (validateRequest(request) != TestPass) {
expectedCompletionResult_ = false;
@@ -272,15 +284,16 @@ int FenceTest::run()
}
int ret;
- if (i == expiredRequestId_) {
+ if (i == expiredRequestId_ - 1) {
/* This request will have a fence, and it will expire. */
- fence_ = std::make_unique<Fence>(std::move(eventFd_));
- if (!fence_->isValid()) {
+ std::unique_ptr<Fence> fence =
+ std::make_unique<Fence>(std::move(eventFd_));
+ if (!fence->isValid()) {
cerr << "Fence should be valid" << endl;
return TestFail;
}
- ret = request->addBuffer(stream_, buffer.get(), std::move(fence_));
+ ret = request->addBuffer(stream_, buffer.get(), std::move(fence));
} else {
/* All other requests will have no Fence. */
ret = request->addBuffer(stream_, buffer.get());
@@ -314,15 +327,21 @@ int FenceTest::run()
Timer fenceTimer;
fenceTimer.timeout.connect(this, &FenceTest::signalFence);
- /* Loop for one second. */
+ /*
+ * Loop long enough for all requests to complete, allowing 500ms per
+ * request.
+ */
Timer timer;
- timer.start(1000ms);
- while (timer.isRunning() && expectedCompletionResult_) {
- if (completedRequest_ == signalledRequestId_ && setFence_)
+ timer.start(500ms * (signalledRequestId_ + 1));
+ while (timer.isRunning() && expectedCompletionResult_ &&
+ completedRequestId_ <= signalledRequestId_ + 1) {
+ if (completedRequestId_ == signalledRequestId_ - 1 && setFence_)
/*
- * signalledRequestId_ has just completed and it has
- * been re-queued with a fence. Start the timer to
- * signal the fence in 10 msec.
+ * The request just before signalledRequestId_ has just
+ * completed. Request signalledRequestId_ has been
+ * queued with a fence, and libcamera is likely already
+ * waiting on the fence, or will soon. Start the timer
+ * to signal the fence in 10 msec.
*/
fenceTimer.start(10ms);
diff --git a/test/file.cpp b/test/file.cpp
index 5c978ebf..170e6ccd 100644
--- a/test/file.cpp
+++ b/test/file.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * file.cpp - File I/O operations tests
+ * File I/O operations tests
*/
#include <fstream>
diff --git a/test/flags.cpp b/test/flags.cpp
index 2177e247..85c34788 100644
--- a/test/flags.cpp
+++ b/test/flags.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * flags.cpp - Flags tests
+ * Flags tests
*/
#include <iostream>
diff --git a/test/geometry.cpp b/test/geometry.cpp
index 008d51ea..64169206 100644
--- a/test/geometry.cpp
+++ b/test/geometry.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * geometry.cpp - Geometry classes tests
+ * Geometry classes tests
*/
#include <iostream>
diff --git a/test/gstreamer/gstreamer_device_provider_test.cpp b/test/gstreamer/gstreamer_device_provider_test.cpp
index 237af8cd..8b8e7cba 100644
--- a/test/gstreamer/gstreamer_device_provider_test.cpp
+++ b/test/gstreamer/gstreamer_device_provider_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2023, Umang Jain <umang.jain@ideasonboard.com>
*
- * gstreamer_single_stream_test.cpp - GStreamer single stream capture test
+ * GStreamer single stream capture test
*/
#include <vector>
diff --git a/test/gstreamer/gstreamer_multi_stream_test.cpp b/test/gstreamer/gstreamer_multi_stream_test.cpp
index cd669308..263d1e86 100644
--- a/test/gstreamer/gstreamer_multi_stream_test.cpp
+++ b/test/gstreamer/gstreamer_multi_stream_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2021, Vedant Paranjape
*
- * gstreamer_multi_stream_test.cpp - GStreamer multi stream capture test
+ * GStreamer multi stream capture test
*/
#include <iostream>
diff --git a/test/gstreamer/gstreamer_single_stream_test.cpp b/test/gstreamer/gstreamer_single_stream_test.cpp
index 301e4a93..3ef2d323 100644
--- a/test/gstreamer/gstreamer_single_stream_test.cpp
+++ b/test/gstreamer/gstreamer_single_stream_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2021, Vedant Paranjape
*
- * gstreamer_single_stream_test.cpp - GStreamer single stream capture test
+ * GStreamer single stream capture test
*/
#include <iostream>
@@ -29,30 +29,21 @@ protected:
if (status_ != TestPass)
return status_;
- const gchar *streamDescription = "fakesink";
- g_autoptr(GError) error0 = NULL;
- stream0_ = gst_parse_bin_from_description_full(streamDescription, TRUE,
- NULL,
- GST_PARSE_FLAG_FATAL_ERRORS,
- &error0);
-
- if (!stream0_) {
- g_printerr("Bin could not be created (%s)\n", error0->message);
+ fakesink_ = gst_element_factory_make("fakesink", nullptr);
+ if (!fakesink_) {
+ g_printerr("Your installation is missing 'fakesink'\n");
return TestFail;
}
- g_object_ref_sink(stream0_);
-
- if (createPipeline() != TestPass)
- return TestFail;
+ g_object_ref_sink(fakesink_);
- return TestPass;
+ return createPipeline();
}
int run() override
{
/* Build the pipeline */
- gst_bin_add_many(GST_BIN(pipeline_), libcameraSrc_, stream0_, NULL);
- if (gst_element_link(libcameraSrc_, stream0_) != TRUE) {
+ gst_bin_add_many(GST_BIN(pipeline_), libcameraSrc_, fakesink_, nullptr);
+ if (!gst_element_link(libcameraSrc_, fakesink_)) {
g_printerr("Elements could not be linked.\n");
return TestFail;
}
@@ -68,11 +59,11 @@ protected:
void cleanup() override
{
- g_clear_object(&stream0_);
+ g_clear_object(&fakesink_);
}
private:
- GstElement *stream0_;
+ GstElement *fakesink_;
};
TEST_REGISTER(GstreamerSingleStreamTest)
diff --git a/test/gstreamer/gstreamer_test.cpp b/test/gstreamer/gstreamer_test.cpp
index e8119b85..a15fef0e 100644
--- a/test/gstreamer/gstreamer_test.cpp
+++ b/test/gstreamer/gstreamer_test.cpp
@@ -9,12 +9,17 @@
#include <libcamera/base/utils.h>
+#if HAVE_ASAN
+#include <sanitizer/asan_interface.h>
+#endif
+
#include "gstreamer_test.h"
#include "test.h"
using namespace std;
+#if HAVE_ASAN
extern "C" {
const char *__asan_default_options()
{
@@ -26,6 +31,7 @@ const char *__asan_default_options()
return "detect_leaks=false";
}
}
+#endif
GstreamerTest::GstreamerTest(unsigned int numStreams)
: pipeline_(nullptr), libcameraSrc_(nullptr)
diff --git a/test/gstreamer/gstreamer_test.h b/test/gstreamer/gstreamer_test.h
index aa2261e2..abb37c1b 100644
--- a/test/gstreamer/gstreamer_test.h
+++ b/test/gstreamer/gstreamer_test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2021, Vedant Paranjape
*
- * gstreamer_test.cpp - GStreamer test base class
+ * GStreamer test base class
*/
#pragma once
diff --git a/test/gstreamer/meson.build b/test/gstreamer/meson.build
index f3ba5a23..37ad125e 100644
--- a/test/gstreamer/meson.build
+++ b/test/gstreamer/meson.build
@@ -11,8 +11,15 @@ gstreamer_tests = [
]
gstreamer_dep = dependency('gstreamer-1.0', required : true)
+gstreamer_test_args = []
+
+if asan_enabled
+ gstreamer_test_args += ['-D', 'HAVE_ASAN=1']
+endif
+
foreach test : gstreamer_tests
exe = executable(test['name'], test['sources'], 'gstreamer_test.cpp',
+ cpp_args : gstreamer_test_args,
dependencies : [libcamera_private, gstreamer_dep],
link_with : test_libraries,
include_directories : test_includes_internal)
diff --git a/test/hotplug-cameras.cpp b/test/hotplug-cameras.cpp
index 5d9260a2..530e9a31 100644
--- a/test/hotplug-cameras.cpp
+++ b/test/hotplug-cameras.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Umang Jain <email@uajain.com>
*
- * hotplug-cameras.cpp - Test cameraAdded/cameraRemoved signals in CameraManager
+ * Test cameraAdded/cameraRemoved signals in CameraManager
*/
#include <dirent.h>
diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp
index 56f3cd6d..e840f6ab 100644
--- a/test/ipa/ipa_interface_test.cpp
+++ b/test/ipa/ipa_interface_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * ipa_interface_test.cpp - Test the IPA interface
+ * Test the IPA interface
*/
#include <fcntl.h>
@@ -56,7 +56,7 @@ protected:
const std::vector<PipelineHandlerFactoryBase *> &factories =
PipelineHandlerFactoryBase::factories();
for (const PipelineHandlerFactoryBase *factory : factories) {
- if (factory->name() == "PipelineHandlerVimc") {
+ if (factory->name() == "vimc") {
pipe_ = factory->create(nullptr);
break;
}
diff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp
index bd5e0e4c..1c97da32 100644
--- a/test/ipa/ipa_module_test.cpp
+++ b/test/ipa/ipa_module_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * ipa_module_test.cpp - Test loading of the VIMC IPA module and verify its info
+ * Test loading of the VIMC IPA module and verify its info
*/
#include <iostream>
@@ -57,7 +57,7 @@ protected:
const struct IPAModuleInfo testInfo = {
IPA_MODULE_API_VERSION,
0,
- "PipelineHandlerVimc",
+ "vimc",
"vimc",
};
diff --git a/test/ipa/meson.build b/test/ipa/meson.build
index 180b0da0..fe21ca58 100644
--- a/test/ipa/meson.build
+++ b/test/ipa/meson.build
@@ -1,5 +1,7 @@
# SPDX-License-Identifier: CC0-1.0
+subdir('rkisp1')
+
ipa_test = [
{'name': 'ipa_module_test', 'sources': ['ipa_module_test.cpp']},
{'name': 'ipa_interface_test', 'sources': ['ipa_interface_test.cpp']},
@@ -7,9 +9,9 @@ ipa_test = [
foreach test : ipa_test
exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
- dependencies : libcamera_private,
- link_with : [libipa, test_libraries],
- include_directories : [libipa_includes, test_includes_internal])
+ dependencies : [libcamera_private, libipa_dep],
+ link_with : [test_libraries],
+ include_directories : [test_includes_internal])
test(test['name'], exe, suite : 'ipa')
endforeach
diff --git a/test/ipa/rkisp1/meson.build b/test/ipa/rkisp1/meson.build
new file mode 100644
index 00000000..5b08e293
--- /dev/null
+++ b/test/ipa/rkisp1/meson.build
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: CC0-1.0
+
+rkisp1_ipa_test = [
+ {'name': 'rkisp1-utils', 'sources': ['rkisp1-utils.cpp']},
+]
+
+foreach test : rkisp1_ipa_test
+ exe = executable(test['name'], test['sources'], libcamera_generated_ipa_headers,
+ dependencies : [libcamera_private, libipa_dep],
+ link_with : [test_libraries],
+ include_directories : [test_includes_internal,
+ '../../../src/ipa/rkisp1/'])
+
+ test(test['name'], exe, suite : 'ipa')
+endforeach
diff --git a/test/ipa/rkisp1/rkisp1-utils.cpp b/test/ipa/rkisp1/rkisp1-utils.cpp
new file mode 100644
index 00000000..b1863894
--- /dev/null
+++ b/test/ipa/rkisp1/rkisp1-utils.cpp
@@ -0,0 +1,108 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (C) 2024, Paul Elder <paul.elder@ideasonboard.com>
+ *
+ * Miscellaneous utility tests
+ */
+
+#include <cmath>
+#include <iostream>
+#include <map>
+#include <stdint.h>
+
+#include "../src/ipa/rkisp1/utils.h"
+
+#include "test.h"
+
+using namespace std;
+using namespace libcamera;
+using namespace ipa::rkisp1;
+
+class RkISP1UtilsTest : public Test
+{
+protected:
+ /* R for real, I for integer */
+ template<unsigned int IntPrec, unsigned int FracPrec, typename I, typename R>
+ int testFixedToFloat(I input, R expected)
+ {
+ R out = utils::fixedToFloatingPoint<IntPrec, FracPrec, R>(input);
+ R prec = 1.0 / (1 << FracPrec);
+ if (std::abs(out - expected) > prec) {
+ cerr << "Reverse conversion expected " << input
+ << " to convert to " << expected
+ << ", got " << out << std::endl;
+ return TestFail;
+ }
+
+ return TestPass;
+ }
+
+ template<unsigned int IntPrec, unsigned int FracPrec, typename T>
+ int testSingleFixedPoint(double input, T expected)
+ {
+ T ret = utils::floatingToFixedPoint<IntPrec, FracPrec, T>(input);
+ if (ret != expected) {
+ cerr << "Expected " << input << " to convert to "
+ << expected << ", got " << ret << std::endl;
+ return TestFail;
+ }
+
+ /*
+ * The precision check is fairly arbitrary but is based on what
+ * the rkisp1 is capable of in the crosstalk module.
+ */
+ double f = utils::fixedToFloatingPoint<IntPrec, FracPrec, double>(ret);
+ if (std::abs(f - input) > 0.005) {
+ cerr << "Reverse conversion expected " << ret
+ << " to convert to " << input
+ << ", got " << f << std::endl;
+ return TestFail;
+ }
+
+ return TestPass;
+ }
+
+ int testFixedPoint()
+ {
+ /*
+ * The second 7.992 test is to test that unused bits don't
+ * affect the result.
+ */
+ std::map<double, uint16_t> testCases = {
+ { 7.992, 0x3ff },
+ { 0.2, 0x01a },
+ { -0.2, 0x7e6 },
+ { -0.8, 0x79a },
+ { -0.4, 0x7cd },
+ { -1.4, 0x74d },
+ { -8, 0x400 },
+ { 0, 0 },
+ };
+
+ int ret;
+ for (const auto &testCase : testCases) {
+ ret = testSingleFixedPoint<4, 7, uint16_t>(testCase.first,
+ testCase.second);
+ if (ret != TestPass)
+ return ret;
+ }
+
+ /* Special case with a superfluous one in the unused bits */
+ ret = testFixedToFloat<4, 7, uint16_t, double>(0xbff, 7.992);
+ if (ret != TestPass)
+ return ret;
+
+ return TestPass;
+ }
+
+ int run()
+ {
+ /* fixed point conversion test */
+ if (testFixedPoint() != TestPass)
+ return TestFail;
+
+ return TestPass;
+ }
+};
+
+TEST_REGISTER(RkISP1UtilsTest)
diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
index 1d4df287..2546882d 100644
--- a/test/ipc/unixsocket.cpp
+++ b/test/ipc/unixsocket.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * unixsocket.cpp - Unix socket IPC test
+ * Unix socket IPC test
*/
#include <algorithm>
@@ -34,6 +34,8 @@ using namespace libcamera;
using namespace std;
using namespace std::chrono_literals;
+namespace {
+
int calculateLength(int fd)
{
lseek(fd, 0, 0);
@@ -43,6 +45,8 @@ int calculateLength(int fd)
return size;
}
+} /* namespace */
+
class UnixSocketTestSlave
{
public:
diff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp
index 3ee6017e..df7d9c2b 100644
--- a/test/ipc/unixsocket_ipc.cpp
+++ b/test/ipc/unixsocket_ipc.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * unixsocket_ipc.cpp - Unix socket IPC test
+ * Unix socket IPC test
*/
#include <algorithm>
diff --git a/test/libtest/buffer_source.h b/test/libtest/buffer_source.h
index 0cc71aa5..495da8a9 100644
--- a/test/libtest/buffer_source.h
+++ b/test/libtest/buffer_source.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * buffer_source.h - libcamera camera test helper to create FrameBuffers
+ * libcamera camera test helper to create FrameBuffers
*/
#pragma once
diff --git a/test/libtest/camera_test.h b/test/libtest/camera_test.h
index 0b178bc2..713b503f 100644
--- a/test/libtest/camera_test.h
+++ b/test/libtest/camera_test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * camera_test.h - libcamera camera test base class
+ * libcamera camera test base class
*/
#pragma once
diff --git a/test/libtest/test.cpp b/test/libtest/test.cpp
index af37b4dd..4e03def9 100644
--- a/test/libtest/test.cpp
+++ b/test/libtest/test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2018, Google Inc.
*
- * test.cpp - libcamera test base class
+ * libcamera test base class
*/
#include <stdlib.h>
diff --git a/test/libtest/test.h b/test/libtest/test.h
index 23b07743..3a90885d 100644
--- a/test/libtest/test.h
+++ b/test/libtest/test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2018, Google Inc.
*
- * test.h - libcamera test base class
+ * libcamera test base class
*/
#pragma once
diff --git a/test/log/log_api.cpp b/test/log/log_api.cpp
index 53118960..0b999738 100644
--- a/test/log/log_api.cpp
+++ b/test/log/log_api.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * log.cpp - log API test
+ * log API test
*/
#include <algorithm>
diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
index 1926c560..9609e23d 100644
--- a/test/log/log_process.cpp
+++ b/test/log/log_process.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * log_process.cpp - Logging in isolated child process test
+ * Logging in isolated child process test
*/
#include <fcntl.h>
diff --git a/test/media_device/media_device_link_test.cpp b/test/media_device/media_device_link_test.cpp
index e11f6b78..31528000 100644
--- a/test/media_device/media_device_link_test.cpp
+++ b/test/media_device/media_device_link_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * media_device_link_test.cpp - Tests link handling on VIMC media device
+ * Tests link handling on VIMC media device
*/
#include <iostream>
diff --git a/test/media_device/media_device_print_test.cpp b/test/media_device/media_device_print_test.cpp
index cdec5b8d..63aeed48 100644
--- a/test/media_device/media_device_print_test.cpp
+++ b/test/media_device/media_device_print_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2018-2019, Google Inc.
*
- * media_device_print_test.cpp - Print out media devices
+ * Print out media devices
*/
#include <iostream>
diff --git a/test/media_device/media_device_test.cpp b/test/media_device/media_device_test.cpp
index 1397d123..3e41d0f0 100644
--- a/test/media_device/media_device_test.cpp
+++ b/test/media_device/media_device_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * media_device_test.cpp - libcamera media device test base class
+ * libcamera media device test base class
*/
#include <iostream>
diff --git a/test/media_device/media_device_test.h b/test/media_device/media_device_test.h
index 9b226f1a..5223b760 100644
--- a/test/media_device/media_device_test.h
+++ b/test/media_device/media_device_test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * media_device_test.h - libcamera media device test base class
+ * libcamera media device test base class
*/
#pragma once
diff --git a/test/meson.build b/test/meson.build
index 8b6057d4..5ed052ed 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -89,6 +89,7 @@ foreach test : public_tests
exe = executable(test['name'], test['sources'],
dependencies : deps,
+ implicit_include_directories : false,
link_with : test_libraries,
include_directories : test_includes_public)
@@ -103,6 +104,7 @@ foreach test : internal_tests
exe = executable(test['name'], test['sources'],
dependencies : deps,
+ implicit_include_directories : false,
link_with : test_libraries,
include_directories : test_includes_internal)
@@ -117,6 +119,7 @@ foreach test : internal_non_parallel_tests
exe = executable(test['name'], test['sources'],
dependencies : deps,
+ implicit_include_directories : false,
link_with : test_libraries,
include_directories : test_includes_internal)
diff --git a/test/message.cpp b/test/message.cpp
index 2f9f281c..19e6646d 100644
--- a/test/message.cpp
+++ b/test/message.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * message.cpp - Messages test
+ * Messages test
*/
#include <chrono>
diff --git a/test/object-delete.cpp b/test/object-delete.cpp
index 80b7dc41..676c3970 100644
--- a/test/object-delete.cpp
+++ b/test/object-delete.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * object.cpp - Object deletion tests
+ * Object deletion tests
*/
#include <iostream>
diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp
index b1c0f473..def1e61e 100644
--- a/test/object-invoke.cpp
+++ b/test/object-invoke.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * object-invoke.cpp - Cross-thread Object method invocation test
+ * Cross-thread Object method invocation test
*/
#include <iostream>
diff --git a/test/object.cpp b/test/object.cpp
index cbd0d3ec..95dc1ef3 100644
--- a/test/object.cpp
+++ b/test/object.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * object.cpp - Object tests
+ * Object tests
*/
#include <iostream>
diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
index cb6940c6..e9f5e7e9 100644
--- a/test/process/process_test.cpp
+++ b/test/process/process_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * process_test.cpp - Process test
+ * Process test
*/
#include <iostream>
diff --git a/test/public-api.cpp b/test/public-api.cpp
index a1cebcf9..b1336f75 100644
--- a/test/public-api.cpp
+++ b/test/public-api.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2021, Google Inc.
*
- * public-api.cpp - Public API validation
+ * Public API validation
*/
#include <libcamera/libcamera.h>
diff --git a/test/serialization/control_serialization.cpp b/test/serialization/control_serialization.cpp
index a507d98a..06c572b7 100644
--- a/test/serialization/control_serialization.cpp
+++ b/test/serialization/control_serialization.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * control_serialization.cpp - Serialize and deserialize controls
+ * Serialize and deserialize controls
*/
#include <iostream>
diff --git a/test/serialization/generated_serializer/generated_serializer_test.cpp b/test/serialization/generated_serializer/generated_serializer_test.cpp
index 4670fe46..4b11d67f 100644
--- a/test/serialization/generated_serializer/generated_serializer_test.cpp
+++ b/test/serialization/generated_serializer/generated_serializer_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * generated_serializer_test.cpp - Test generated serializer
+ * Test generated serializer
*/
#include <algorithm>
diff --git a/test/serialization/ipa_data_serializer_test.cpp b/test/serialization/ipa_data_serializer_test.cpp
index 377ecdb0..aea63c73 100644
--- a/test/serialization/ipa_data_serializer_test.cpp
+++ b/test/serialization/ipa_data_serializer_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * ipa_data_serializer_test.cpp - Test serializing/deserializing with IPADataSerializer
+ * Test serializing/deserializing with IPADataSerializer
*/
#include <algorithm>
diff --git a/test/serialization/serialization_test.cpp b/test/serialization/serialization_test.cpp
index 11d0f0f3..af9969fd 100644
--- a/test/serialization/serialization_test.cpp
+++ b/test/serialization/serialization_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * serialization_test.cpp - Base class for serialization tests
+ * Base class for serialization tests
*/
#include "serialization_test.h"
diff --git a/test/serialization/serialization_test.h b/test/serialization/serialization_test.h
index 609f9fdf..760e3721 100644
--- a/test/serialization/serialization_test.h
+++ b/test/serialization/serialization_test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * serialization_test.h - Base class for serialization tests
+ * Base class for serialization tests
*/
#pragma once
diff --git a/test/shared-fd.cpp b/test/shared-fd.cpp
index 997d7be1..57199dfe 100644
--- a/test/shared-fd.cpp
+++ b/test/shared-fd.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * shared_fd.cpp - SharedFD test
+ * SharedFD test
*/
#include <fcntl.h>
diff --git a/test/signal-threads.cpp b/test/signal-threads.cpp
index 8c212b6f..c4789c83 100644
--- a/test/signal-threads.cpp
+++ b/test/signal-threads.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * signal-threads.cpp - Cross-thread signal delivery test
+ * Cross-thread signal delivery test
*/
#include <chrono>
diff --git a/test/signal.cpp b/test/signal.cpp
index 5c6b304d..3f596b22 100644
--- a/test/signal.cpp
+++ b/test/signal.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * signal.cpp - Signal test
+ * Signal test
*/
#include <iostream>
diff --git a/test/span.cpp b/test/span.cpp
index abf3a5d6..5452967d 100644
--- a/test/span.cpp
+++ b/test/span.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * span.cpp - Span tests
+ * Span tests
*/
/*
diff --git a/test/stream/stream_colorspace.cpp b/test/stream/stream_colorspace.cpp
index 1b7afe65..4c904c4c 100644
--- a/test/stream/stream_colorspace.cpp
+++ b/test/stream/stream_colorspace.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2022, Ideas on Board Oy.
*
- * stream_colorspace.cpp - Stream colorspace adjustment test
+ * Stream colorspace adjustment test
*/
#include <iostream>
diff --git a/test/stream/stream_formats.cpp b/test/stream/stream_formats.cpp
index 99fa0385..553b59aa 100644
--- a/test/stream/stream_formats.cpp
+++ b/test/stream/stream_formats.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * stream_formats.cpp - StreamFormats test
+ * StreamFormats test
*/
#include <iostream>
diff --git a/test/threads.cpp b/test/threads.cpp
index 8f366c9d..ceb4fa0f 100644
--- a/test/threads.cpp
+++ b/test/threads.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * threads.cpp - Threads test
+ * Threads test
*/
#include <chrono>
diff --git a/test/timer-fail.cpp b/test/timer-fail.cpp
index 82854b89..0ced6441 100644
--- a/test/timer-fail.cpp
+++ b/test/timer-fail.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2024, Ideas on Board Oy
*
- * timer-fail.cpp - Threaded timer failure test
+ * Threaded timer failure test
*/
#include <chrono>
diff --git a/test/timer-thread.cpp b/test/timer-thread.cpp
index 8675e248..55e5cfdf 100644
--- a/test/timer-thread.cpp
+++ b/test/timer-thread.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * timer-thread.cpp - Threaded timer test
+ * Threaded timer test
*/
#include <chrono>
diff --git a/test/timer.cpp b/test/timer.cpp
index 0f01c3cb..2eacc059 100644
--- a/test/timer.cpp
+++ b/test/timer.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * timer.cpp - Timer test
+ * Timer test
*/
#include <chrono>
diff --git a/test/transform.cpp b/test/transform.cpp
index fbc0308c..4ec7a1eb 100644
--- a/test/transform.cpp
+++ b/test/transform.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2023, Ideas On Board Oy
*
- * transform.cpp - Transform and Orientation tests
+ * Transform and Orientation tests
*/
#include <iostream>
diff --git a/test/unique-fd.cpp b/test/unique-fd.cpp
index eb3b591f..e556439e 100644
--- a/test/unique-fd.cpp
+++ b/test/unique-fd.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2021, Google Inc.
*
- * unique-fd.cpp - UniqueFD test
+ * UniqueFD test
*/
#include <fcntl.h>
diff --git a/test/utils.cpp b/test/utils.cpp
index fc56e14e..41af954b 100644
--- a/test/utils.cpp
+++ b/test/utils.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2018, Google Inc.
*
- * utils.cpp - Miscellaneous utility tests
+ * Miscellaneous utility tests
*/
#include <iostream>
diff --git a/test/v4l2_compat/v4l2_compat_test.py b/test/v4l2_compat/v4l2_compat_test.py
index bd89d496..443babc2 100755
--- a/test/v4l2_compat/v4l2_compat_test.py
+++ b/test/v4l2_compat/v4l2_compat_test.py
@@ -4,7 +4,7 @@
#
# Author: Paul Elder <paul.elder@ideasonboard.com>
#
-# v4l2_compat_test.py - Test the V4L2 compatibility layer
+# Test the V4L2 compatibility layer
import argparse
import glob
diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.cpp b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
index d8fbfd9f..c349c9e3 100644
--- a/test/v4l2_subdevice/v4l2_subdevice_test.cpp
+++ b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * v4l2_subdevice_test.cpp - VIMC-based V4L2 subdevice test
+ * VIMC-based V4L2 subdevice test
*/
#include <iostream>
diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.h b/test/v4l2_subdevice/v4l2_subdevice_test.h
index e73c583b..89b78302 100644
--- a/test/v4l2_subdevice/v4l2_subdevice_test.h
+++ b/test/v4l2_subdevice/v4l2_subdevice_test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * v4l2_subdevice_test.h - VIMC-based V4L2 subdevice test
+ * VIMC-based V4L2 subdevice test
*/
#pragma once
diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
index 42e1e671..67366461 100644
--- a/test/v4l2_videodevice/capture_async.cpp
+++ b/test/v4l2_videodevice/capture_async.cpp
@@ -61,10 +61,12 @@ protected:
if (ret)
return TestFail;
- timeout.start(10000ms);
+ const unsigned int nFrames = 30;
+
+ timeout.start(500ms * nFrames);
while (timeout.isRunning()) {
dispatcher->processEvents();
- if (frames > 30)
+ if (frames > nFrames)
break;
}
@@ -73,8 +75,9 @@ protected:
return TestFail;
}
- if (frames < 30) {
- std::cout << "Failed to capture 30 frames within timeout." << std::endl;
+ if (frames < nFrames) {
+ std::cout << "Failed to capture " << nFrames
+ << " frames within timeout." << std::endl;
return TestFail;
}
diff --git a/test/v4l2_videodevice/controls.cpp b/test/v4l2_videodevice/controls.cpp
index 0f603b85..b0130295 100644
--- a/test/v4l2_videodevice/controls.cpp
+++ b/test/v4l2_videodevice/controls.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * controls.cpp - V4L2 device controls handling test
+ * V4L2 device controls handling test
*/
#include <algorithm>
diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.h b/test/v4l2_videodevice/v4l2_videodevice_test.h
index d2de1a6d..b5871ce6 100644
--- a/test/v4l2_videodevice/v4l2_videodevice_test.h
+++ b/test/v4l2_videodevice/v4l2_videodevice_test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2018, Google Inc.
*
- * vl42device_test.h - libcamera v4l2device test base class
+ * libcamera v4l2device test base class
*/
#pragma once
diff --git a/test/yaml-parser.cpp b/test/yaml-parser.cpp
index 2d92463a..81c82983 100644
--- a/test/yaml-parser.cpp
+++ b/test/yaml-parser.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2022, Google Inc.
*
- * yaml-parser.cpp - YAML parser operations tests
+ * YAML parser operations tests
*/
#include <array>