[libcamera-devel] [PATCH] test: camera: Fix initialisation

Kieran Bingham kieran.bingham at ideasonboard.com
Thu May 30 15:38:49 CEST 2019


Three tests {capture,configuration_set,statemachine} override the
CameraTest::init() function, and call it as the first action.

However they were not checking the return value, and each of the tests
will segfault if the VIMC camera is not obtained.

Check the return value of the CameraTest base class initialisation and
return any errors to the test suite if initialisation fails.

Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
 test/camera/capture.cpp           | 4 +++-
 test/camera/configuration_set.cpp | 4 +++-
 test/camera/statemachine.cpp      | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
index c0835c250c65..98e71905531c 100644
--- a/test/camera/capture.cpp
+++ b/test/camera/capture.cpp
@@ -42,7 +42,9 @@ protected:
 
 	int init() override
 	{
-		CameraTest::init();
+		int ret = CameraTest::init();
+		if (ret)
+			return ret;
 
 		config_ = camera_->generateConfiguration({ StreamRole::VideoRecording });
 		if (!config_ || config_->size() != 1) {
diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp
index 9f10f795a5d8..f88da96ca2b7 100644
--- a/test/camera/configuration_set.cpp
+++ b/test/camera/configuration_set.cpp
@@ -18,7 +18,9 @@ class ConfigurationSet : public CameraTest
 protected:
 	int init() override
 	{
-		CameraTest::init();
+		int ret = CameraTest::init();
+		if (ret)
+			return ret;
 
 		config_ = camera_->generateConfiguration({ StreamRole::VideoRecording });
 		if (!config_ || config_->size() != 1) {
diff --git a/test/camera/statemachine.cpp b/test/camera/statemachine.cpp
index d489f197e402..84d2a6fab5f0 100644
--- a/test/camera/statemachine.cpp
+++ b/test/camera/statemachine.cpp
@@ -235,7 +235,9 @@ protected:
 
 	int init() override
 	{
-		CameraTest::init();
+		int ret = CameraTest::init();
+		if (ret)
+			return ret;
 
 		defconf_ = camera_->generateConfiguration({ StreamRole::VideoRecording });
 		if (!defconf_) {
-- 
2.20.1



More information about the libcamera-devel mailing list