[libcamera-devel] [PATCH v1 4/4] test: Drop pipeline test
Umang Jain
umang.jain at ideasonboard.com
Fri Dec 23 16:23:29 CET 2022
Hi Laurent,
On 12/22/22 6:31 AM, Laurent Pinchart via libcamera-devel wrote:
> The two pipeline test (for ipu3 and rkisp1) are meant to perform very
> basic validation of the corresponding pipeline handlers, limited to
> verifying camera enumeration. They are not unit tests as such, they are
> superseded by the lc-compliance tool, and they are never used in
> practice (and always skipped). Drop them.
Makes sense
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
> test/meson.build | 1 -
> test/pipeline/ipu3/ipu3_pipeline_test.cpp | 126 ------------------
> test/pipeline/ipu3/meson.build | 14 --
> test/pipeline/meson.build | 4 -
> test/pipeline/rkisp1/meson.build | 14 --
> test/pipeline/rkisp1/rkisp1_pipeline_test.cpp | 115 ----------------
> 6 files changed, 274 deletions(-)
> delete mode 100644 test/pipeline/ipu3/ipu3_pipeline_test.cpp
> delete mode 100644 test/pipeline/ipu3/meson.build
> delete mode 100644 test/pipeline/meson.build
> delete mode 100644 test/pipeline/rkisp1/meson.build
> delete mode 100644 test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
>
> diff --git a/test/meson.build b/test/meson.build
> index 19726f37421d..b227be818419 100644
> --- a/test/meson.build
> +++ b/test/meson.build
> @@ -32,7 +32,6 @@ subdir('ipa')
> subdir('ipc')
> subdir('log')
> subdir('media_device')
> -subdir('pipeline')
> subdir('process')
> subdir('py')
> subdir('serialization')
> diff --git a/test/pipeline/ipu3/ipu3_pipeline_test.cpp b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> deleted file mode 100644
> index 9e647af5fdf8..000000000000
> --- a/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> +++ /dev/null
> @@ -1,126 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> -/*
> - * Copyright (C) 2019, Google Inc.
> - *
> - * ipu3_pipeline_test.cpp - Intel IPU3 pipeline test
> - */
> -
> -#include <iostream>
> -#include <sys/stat.h>
> -#include <sys/types.h>
> -#include <unistd.h>
> -
> -#include <libcamera/camera.h>
> -#include <libcamera/camera_manager.h>
> -
> -#include "libcamera/internal/device_enumerator.h"
> -#include "libcamera/internal/media_device.h"
> -#include "libcamera/internal/media_object.h"
> -
> -#include "test.h"
> -
> -using namespace std;
> -using namespace libcamera;
> -
> -/*
> - * Verify that the Intel IPU3 pipeline handler gets matched and cameras
> - * are enumerated correctly.
> - *
> - * The test is supposed to be run on an IPU3 platform, otherwise it gets
> - * skipped.
> - *
> - * The test lists all cameras registered in the system, if any camera is
> - * available at all.
> - */
> -class IPU3PipelineTest : public Test
> -{
> -protected:
> - int init();
> - int run();
> - void cleanup();
> -
> -private:
> - CameraManager *cameraManager_;
> - unsigned int sensors_;
> -};
> -
> -int IPU3PipelineTest::init()
> -{
> - unique_ptr<DeviceEnumerator> enumerator = DeviceEnumerator::create();
> - if (!enumerator) {
> - cerr << "Failed to create device enumerator" << endl;
> - return TestFail;
> - }
> -
> - if (enumerator->enumerate()) {
> - cerr << "Failed to enumerate media devices" << endl;
> - return TestFail;
> - }
> -
> - DeviceMatch imgu_dm("ipu3-imgu");
> - DeviceMatch cio2_dm("ipu3-cio2");
> -
> - if (!enumerator->search(imgu_dm)) {
> - cerr << "Failed to find IPU3 IMGU: test skip" << endl;
> - return TestSkip;
> - }
> -
> - std::shared_ptr<MediaDevice> cio2 = enumerator->search(cio2_dm);
> - if (!cio2) {
> - cerr << "Failed to find IPU3 CIO2: test skip" << endl;
> - return TestSkip;
> - }
> -
> - /*
> - * Camera sensor are connected to the CIO2 unit.
> - * Count how many sensors are connected in the system
> - * and later verify this matches the number of registered
> - * cameras.
> - */
> - int ret = cio2->populate();
> - if (ret) {
> - cerr << "Failed to populate media device " << cio2->deviceNode() << endl;
> - return TestFail;
> - }
> -
> - sensors_ = 0;
> - const vector<MediaEntity *> &entities = cio2->entities();
> - for (MediaEntity *entity : entities) {
> - if (entity->function() == MEDIA_ENT_F_CAM_SENSOR)
> - sensors_++;
> - }
> -
> - enumerator.reset(nullptr);
> -
> - cameraManager_ = new CameraManager();
> - ret = cameraManager_->start();
> - if (ret) {
> - cerr << "Failed to start the CameraManager" << endl;
> - return TestFail;
> - }
> -
> - return 0;
> -}
> -
> -int IPU3PipelineTest::run()
> -{
> - auto cameras = cameraManager_->cameras();
> - for (const std::shared_ptr<Camera> &cam : cameras)
> - cout << "Found camera '" << cam->id() << "'" << endl;
> -
> - if (cameras.size() != sensors_) {
> - cerr << cameras.size() << " cameras registered, but " << sensors_
> - << " were expected" << endl;
> - return TestFail;
> - }
> -
> - return TestPass;
> -}
> -
> -void IPU3PipelineTest::cleanup()
> -{
> - cameraManager_->stop();
> - delete cameraManager_;
> -}
> -
> -TEST_REGISTER(IPU3PipelineTest)
> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build
> deleted file mode 100644
> index af075707f505..000000000000
> --- a/test/pipeline/ipu3/meson.build
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -# SPDX-License-Identifier: CC0-1.0
> -
> -ipu3_test = [
> - {'name': 'ipu3_pipeline_test', 'sources': ['ipu3_pipeline_test.cpp']},
> -]
> -
> -foreach test : ipu3_test
> - exe = executable(test['name'], test['sources'],
> - dependencies : libcamera_private,
> - link_with : test_libraries,
> - include_directories : test_includes_internal)
> -
> - test(test['name'], exe, suite : 'ipu3', is_parallel : false)
> -endforeach
> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build
> deleted file mode 100644
> index 6e7901fee38f..000000000000
> --- a/test/pipeline/meson.build
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# SPDX-License-Identifier: CC0-1.0
> -
> -subdir('ipu3')
> -subdir('rkisp1')
> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build
> deleted file mode 100644
> index 1d178ad9da6f..000000000000
> --- a/test/pipeline/rkisp1/meson.build
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -# SPDX-License-Identifier: CC0-1.0
> -
> -rkisp1_test = [
> - {'name': 'rkisp1_pipeline_test', 'sources': ['rkisp1_pipeline_test.cpp']},
> -]
> -
> -foreach test : rkisp1_test
> - exe = executable(test['name'], test['sources'],
> - dependencies : libcamera_private,
> - link_with : test_libraries,
> - include_directories : test_includes_internal)
> -
> - test(test['name'], exe, suite : 'rkisp1', is_parallel : false)
> -endforeach
> diff --git a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> deleted file mode 100644
> index acaf3c33b529..000000000000
> --- a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> +++ /dev/null
> @@ -1,115 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> -/*
> - * Copyright (C) 2020, Linaro
> - *
> - * Based on test/pipeline/ipu3/ipu3_pipeline_test.cpp
> - *
> - * rkisp1_pipeline_test.cpp - Rockchip RK3399 rkisp1 pipeline test
> - */
> -
> -#include <iostream>
> -
> -#include <sys/stat.h>
> -#include <sys/types.h>
> -#include <unistd.h>
> -
> -#include <libcamera/camera.h>
> -#include <libcamera/camera_manager.h>
> -
> -#include "libcamera/internal/device_enumerator.h"
> -#include "libcamera/internal/media_device.h"
> -#include "libcamera/internal/media_object.h"
> -
> -#include "test.h"
> -
> -using namespace std;
> -using namespace libcamera;
> -
> -/*
> - * Verify that the RK3399 pipeline handler gets matched and cameras
> - * are enumerated correctly.
> - *
> - * The test is supposed to be run on rockchip platform.
> - *
> - * The test lists all cameras registered in the system, if any camera is
> - * available at all.
> - */
> -class RKISP1PipelineTest : public Test
> -{
> -protected:
> - int init();
> - int run();
> - void cleanup();
> -
> -private:
> - CameraManager *cameraManager_;
> - unsigned int sensors_;
> -};
> -
> -int RKISP1PipelineTest::init()
> -{
> - unique_ptr<DeviceEnumerator> enumerator = DeviceEnumerator::create();
> - if (!enumerator) {
> - cerr << "Failed to create device enumerator" << endl;
> - return TestFail;
> - }
> -
> - if (enumerator->enumerate()) {
> - cerr << "Failed to enumerate media devices" << endl;
> - return TestFail;
> - }
> -
> - DeviceMatch dm("rkisp1");
> -
> - std::shared_ptr<MediaDevice> rkisp1 = enumerator->search(dm);
> - if (!rkisp1) {
> - cerr << "Failed to find rkisp1: test skip" << endl;
> - return TestSkip;
> - }
> -
> - int ret = rkisp1->populate();
> - if (ret) {
> - cerr << "Failed to populate media device "
> - << rkisp1->deviceNode() << endl;
> - return TestFail;
> - }
> -
> - sensors_ = 0;
> - const vector<MediaEntity *> &entities = rkisp1->entities();
> - for (MediaEntity *entity : entities) {
> - if (entity->function() == MEDIA_ENT_F_CAM_SENSOR)
> - sensors_++;
> - }
> -
> - cameraManager_ = new CameraManager();
> - ret = cameraManager_->start();
> - if (ret) {
> - cerr << "Failed to start the CameraManager" << endl;
> - return TestFail;
> - }
> -
> - return 0;
> -}
> -
> -int RKISP1PipelineTest::run()
> -{
> - auto cameras = cameraManager_->cameras();
> - for (const std::shared_ptr<Camera> &cam : cameras)
> - cout << "Found camera '" << cam->id() << "'" << endl;
> -
> - if (cameras.size() != sensors_) {
> - cerr << cameras.size() << " cameras registered, but " << sensors_
> - << " were expected" << endl;
> - return TestFail;
> - }
> -
> - return TestPass;
> -}
> -
> -void RKISP1PipelineTest::cleanup()
> -{
> - cameraManager_->stop();
> - delete cameraManager_;
> -}
> -
> -TEST_REGISTER(RKISP1PipelineTest)
More information about the libcamera-devel
mailing list