From patchwork Thu Dec 22 01:01:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 18051 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id B1CA0C3213 for ; Thu, 22 Dec 2022 01:01:48 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7ABAD633B5; Thu, 22 Dec 2022 02:01:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1671670908; bh=W7OagI3dcESu4HQVZcBjXRmxc1imErCyI26RX/fnR3w=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=bDG6QTAR1FbyUDlirQUZe/Igh1FKDVHBDaLQkPCsgCJooeZdGeQz/CASCiRzoLIkD pqd5Qd/Mnlzdo8T3cB+HCgCzwdufL+vwH3rEzgK4dfmKXeK8jtClrSTuUiii8fLQdO 05GbBqBWwNlR9QKAdyf1EnaFTlZn0l5pFQWcDRx/td87wtFRNyPIYXtOidO+JUKorc ht9TNdE3qQXYaSXZrex6tfOhiwTagUf6E0xm06xeVTm8/I0ALANf6kj/2rAJQNlFkt iNPXwjpcJltmKhqJHH96r8bXIsqTYejHK2KQH59ZCcJBL3uFUWJWHxorXy/2TjLr/V lQI8tWo8LerSg== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6036B633AE for ; Thu, 22 Dec 2022 02:01:46 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Yg0ZyMAP"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi [213.243.189.158]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id C39C0903 for ; Thu, 22 Dec 2022 02:01:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1671670906; bh=W7OagI3dcESu4HQVZcBjXRmxc1imErCyI26RX/fnR3w=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Yg0ZyMAPBgfZVoT0ZsLYOmp3SiOTakB66nELQOcRdOOTyIkdmN7tik8QX6gC80xrY ooAiQ7bjfkIe69uzH64zKGmUFxl/WY0KjTEJJxwnC8KZ8AEmPg/nnyO2ycMbjCm6S5 Be82zEiPbh34nqlG6ww3yG8UhQcSGa/xJw+oa9KQ= To: libcamera-devel@lists.libcamera.org Date: Thu, 22 Dec 2022 03:01:32 +0200 Message-Id: <20221222010132.22177-5-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.38.2 In-Reply-To: <20221222010132.22177-1-laurent.pinchart@ideasonboard.com> References: <20221222010132.22177-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v1 4/4] test: Drop pipeline test X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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. Signed-off-by: Laurent Pinchart Reviewed-by: Umang Jain Reviewed-by: Paul Elder --- 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 -#include -#include -#include - -#include -#include - -#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 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 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 &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 &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 - -#include -#include -#include - -#include -#include - -#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 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 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 &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 &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)