[{"id":26139,"web_url":"https://patchwork.libcamera.org/comment/26139/","msgid":"<3d1ecfa2-e4cf-97fb-7c08-fa7efc563b25@ideasonboard.com>","date":"2022-12-23T15:23:29","subject":"Re: [libcamera-devel] [PATCH v1 4/4] test: Drop pipeline test","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 12/22/22 6:31 AM, Laurent Pinchart via libcamera-devel wrote:\n> The two pipeline test (for ipu3 and rkisp1) are meant to perform very\n> basic validation of the corresponding pipeline handlers, limited to\n> verifying camera enumeration. They are not unit tests as such, they are\n> superseded by the lc-compliance tool, and they are never used in\n> practice (and always skipped). Drop them.\n\nMakes sense\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n> ---\n>   test/meson.build                              |   1 -\n>   test/pipeline/ipu3/ipu3_pipeline_test.cpp     | 126 ------------------\n>   test/pipeline/ipu3/meson.build                |  14 --\n>   test/pipeline/meson.build                     |   4 -\n>   test/pipeline/rkisp1/meson.build              |  14 --\n>   test/pipeline/rkisp1/rkisp1_pipeline_test.cpp | 115 ----------------\n>   6 files changed, 274 deletions(-)\n>   delete mode 100644 test/pipeline/ipu3/ipu3_pipeline_test.cpp\n>   delete mode 100644 test/pipeline/ipu3/meson.build\n>   delete mode 100644 test/pipeline/meson.build\n>   delete mode 100644 test/pipeline/rkisp1/meson.build\n>   delete mode 100644 test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n>\n> diff --git a/test/meson.build b/test/meson.build\n> index 19726f37421d..b227be818419 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -32,7 +32,6 @@ subdir('ipa')\n>   subdir('ipc')\n>   subdir('log')\n>   subdir('media_device')\n> -subdir('pipeline')\n>   subdir('process')\n>   subdir('py')\n>   subdir('serialization')\n> diff --git a/test/pipeline/ipu3/ipu3_pipeline_test.cpp b/test/pipeline/ipu3/ipu3_pipeline_test.cpp\n> deleted file mode 100644\n> index 9e647af5fdf8..000000000000\n> --- a/test/pipeline/ipu3/ipu3_pipeline_test.cpp\n> +++ /dev/null\n> @@ -1,126 +0,0 @@\n> -/* SPDX-License-Identifier: GPL-2.0-or-later */\n> -/*\n> - * Copyright (C) 2019, Google Inc.\n> - *\n> - * ipu3_pipeline_test.cpp - Intel IPU3 pipeline test\n> - */\n> -\n> -#include <iostream>\n> -#include <sys/stat.h>\n> -#include <sys/types.h>\n> -#include <unistd.h>\n> -\n> -#include <libcamera/camera.h>\n> -#include <libcamera/camera_manager.h>\n> -\n> -#include \"libcamera/internal/device_enumerator.h\"\n> -#include \"libcamera/internal/media_device.h\"\n> -#include \"libcamera/internal/media_object.h\"\n> -\n> -#include \"test.h\"\n> -\n> -using namespace std;\n> -using namespace libcamera;\n> -\n> -/*\n> - * Verify that the Intel IPU3 pipeline handler gets matched and cameras\n> - * are enumerated correctly.\n> - *\n> - * The test is supposed to be run on an IPU3 platform, otherwise it gets\n> - * skipped.\n> - *\n> - * The test lists all cameras registered in the system, if any camera is\n> - * available at all.\n> - */\n> -class IPU3PipelineTest : public Test\n> -{\n> -protected:\n> -\tint init();\n> -\tint run();\n> -\tvoid cleanup();\n> -\n> -private:\n> -\tCameraManager *cameraManager_;\n> -\tunsigned int sensors_;\n> -};\n> -\n> -int IPU3PipelineTest::init()\n> -{\n> -\tunique_ptr<DeviceEnumerator> enumerator = DeviceEnumerator::create();\n> -\tif (!enumerator) {\n> -\t\tcerr << \"Failed to create device enumerator\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tif (enumerator->enumerate()) {\n> -\t\tcerr << \"Failed to enumerate media devices\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tDeviceMatch imgu_dm(\"ipu3-imgu\");\n> -\tDeviceMatch cio2_dm(\"ipu3-cio2\");\n> -\n> -\tif (!enumerator->search(imgu_dm)) {\n> -\t\tcerr << \"Failed to find IPU3 IMGU: test skip\" << endl;\n> -\t\treturn TestSkip;\n> -\t}\n> -\n> -\tstd::shared_ptr<MediaDevice> cio2 = enumerator->search(cio2_dm);\n> -\tif (!cio2) {\n> -\t\tcerr << \"Failed to find IPU3 CIO2: test skip\" << endl;\n> -\t\treturn TestSkip;\n> -\t}\n> -\n> -\t/*\n> -\t * Camera sensor are connected to the CIO2 unit.\n> -\t * Count how many sensors are connected in the system\n> -\t * and later verify this matches the number of registered\n> -\t * cameras.\n> -\t */\n> -\tint ret = cio2->populate();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to populate media device \" << cio2->deviceNode() << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tsensors_ = 0;\n> -\tconst vector<MediaEntity *> &entities = cio2->entities();\n> -\tfor (MediaEntity *entity : entities) {\n> -\t\tif (entity->function() == MEDIA_ENT_F_CAM_SENSOR)\n> -\t\t\tsensors_++;\n> -\t}\n> -\n> -\tenumerator.reset(nullptr);\n> -\n> -\tcameraManager_ = new CameraManager();\n> -\tret = cameraManager_->start();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to start the CameraManager\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn 0;\n> -}\n> -\n> -int IPU3PipelineTest::run()\n> -{\n> -\tauto cameras = cameraManager_->cameras();\n> -\tfor (const std::shared_ptr<Camera> &cam : cameras)\n> -\t\tcout << \"Found camera '\" << cam->id() << \"'\" << endl;\n> -\n> -\tif (cameras.size() != sensors_) {\n> -\t\tcerr << cameras.size() << \" cameras registered, but \" << sensors_\n> -\t\t     << \" were expected\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn TestPass;\n> -}\n> -\n> -void IPU3PipelineTest::cleanup()\n> -{\n> -\tcameraManager_->stop();\n> -\tdelete cameraManager_;\n> -}\n> -\n> -TEST_REGISTER(IPU3PipelineTest)\n> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> deleted file mode 100644\n> index af075707f505..000000000000\n> --- a/test/pipeline/ipu3/meson.build\n> +++ /dev/null\n> @@ -1,14 +0,0 @@\n> -# SPDX-License-Identifier: CC0-1.0\n> -\n> -ipu3_test = [\n> -    {'name': 'ipu3_pipeline_test', 'sources': ['ipu3_pipeline_test.cpp']},\n> -]\n> -\n> -foreach test : ipu3_test\n> -    exe = executable(test['name'], test['sources'],\n> -                     dependencies : libcamera_private,\n> -                     link_with : test_libraries,\n> -                     include_directories : test_includes_internal)\n> -\n> -    test(test['name'], exe, suite : 'ipu3', is_parallel : false)\n> -endforeach\n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> deleted file mode 100644\n> index 6e7901fee38f..000000000000\n> --- a/test/pipeline/meson.build\n> +++ /dev/null\n> @@ -1,4 +0,0 @@\n> -# SPDX-License-Identifier: CC0-1.0\n> -\n> -subdir('ipu3')\n> -subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> deleted file mode 100644\n> index 1d178ad9da6f..000000000000\n> --- a/test/pipeline/rkisp1/meson.build\n> +++ /dev/null\n> @@ -1,14 +0,0 @@\n> -# SPDX-License-Identifier: CC0-1.0\n> -\n> -rkisp1_test = [\n> -    {'name': 'rkisp1_pipeline_test', 'sources': ['rkisp1_pipeline_test.cpp']},\n> -]\n> -\n> -foreach test : rkisp1_test\n> -    exe = executable(test['name'], test['sources'],\n> -                     dependencies : libcamera_private,\n> -                     link_with : test_libraries,\n> -                     include_directories : test_includes_internal)\n> -\n> -    test(test['name'], exe, suite : 'rkisp1', is_parallel : false)\n> -endforeach\n> diff --git a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> deleted file mode 100644\n> index acaf3c33b529..000000000000\n> --- a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> +++ /dev/null\n> @@ -1,115 +0,0 @@\n> -/* SPDX-License-Identifier: GPL-2.0-or-later */\n> -/*\n> - * Copyright (C) 2020, Linaro\n> - *\n> - * Based on test/pipeline/ipu3/ipu3_pipeline_test.cpp\n> - *\n> - * rkisp1_pipeline_test.cpp - Rockchip RK3399 rkisp1 pipeline test\n> - */\n> -\n> -#include <iostream>\n> -\n> -#include <sys/stat.h>\n> -#include <sys/types.h>\n> -#include <unistd.h>\n> -\n> -#include <libcamera/camera.h>\n> -#include <libcamera/camera_manager.h>\n> -\n> -#include \"libcamera/internal/device_enumerator.h\"\n> -#include \"libcamera/internal/media_device.h\"\n> -#include \"libcamera/internal/media_object.h\"\n> -\n> -#include \"test.h\"\n> -\n> -using namespace std;\n> -using namespace libcamera;\n> -\n> -/*\n> - * Verify that the RK3399 pipeline handler gets matched and cameras\n> - * are enumerated correctly.\n> - *\n> - * The test is supposed to be run on rockchip platform.\n> - *\n> - * The test lists all cameras registered in the system, if any camera is\n> - * available at all.\n> - */\n> -class RKISP1PipelineTest : public Test\n> -{\n> -protected:\n> -\tint init();\n> -\tint run();\n> -\tvoid cleanup();\n> -\n> -private:\n> -\tCameraManager *cameraManager_;\n> -\tunsigned int sensors_;\n> -};\n> -\n> -int RKISP1PipelineTest::init()\n> -{\n> -\tunique_ptr<DeviceEnumerator> enumerator = DeviceEnumerator::create();\n> -\tif (!enumerator) {\n> -\t\tcerr << \"Failed to create device enumerator\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tif (enumerator->enumerate()) {\n> -\t\tcerr << \"Failed to enumerate media devices\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tDeviceMatch dm(\"rkisp1\");\n> -\n> -\tstd::shared_ptr<MediaDevice> rkisp1 = enumerator->search(dm);\n> -\tif (!rkisp1) {\n> -\t\tcerr << \"Failed to find rkisp1: test skip\" << endl;\n> -\t\treturn TestSkip;\n> -\t}\n> -\n> -\tint ret = rkisp1->populate();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to populate media device \"\n> -\t\t     << rkisp1->deviceNode() << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tsensors_ = 0;\n> -\tconst vector<MediaEntity *> &entities = rkisp1->entities();\n> -\tfor (MediaEntity *entity : entities) {\n> -\t\tif (entity->function() == MEDIA_ENT_F_CAM_SENSOR)\n> -\t\t\tsensors_++;\n> -\t}\n> -\n> -\tcameraManager_ = new CameraManager();\n> -\tret = cameraManager_->start();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to start the CameraManager\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn 0;\n> -}\n> -\n> -int RKISP1PipelineTest::run()\n> -{\n> -\tauto cameras = cameraManager_->cameras();\n> -\tfor (const std::shared_ptr<Camera> &cam : cameras)\n> -\t\tcout << \"Found camera '\" << cam->id() << \"'\" << endl;\n> -\n> -\tif (cameras.size() != sensors_) {\n> -\t\tcerr << cameras.size() << \" cameras registered, but \" << sensors_\n> -\t\t     << \" were expected\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn TestPass;\n> -}\n> -\n> -void RKISP1PipelineTest::cleanup()\n> -{\n> -\tcameraManager_->stop();\n> -\tdelete cameraManager_;\n> -}\n> -\n> -TEST_REGISTER(RKISP1PipelineTest)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 3A0EBC3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 23 Dec 2022 15:23:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A1C88623B8;\n\tFri, 23 Dec 2022 16:23:37 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F0BD162398\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 23 Dec 2022 16:23:35 +0100 (CET)","from [IPV6:2401:4900:1f3f:cd5d:4e48:3b91:9262:9565] (unknown\n\t[IPv6:2401:4900:1f3f:cd5d:4e48:3b91:9262:9565])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8B142492;\n\tFri, 23 Dec 2022 16:23:34 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671809017;\n\tbh=/E1WX/IByQ5NgH+AXXb3haX7k3XGhowCjAyo+eJdWRU=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=QTa7/aD5OhXuB6+R6yiUt84YaQu/5V/my+TK1Khq7JFM8WnaDClGNbVvV37iR+/C0\n\tz+WEH/UFdd8yAfgb+ASYYwimq4Bey5rNUsqdXGSa13qj5PHyzHZhyFsfGKvtQM0HB7\n\t8sZ9xtGIx35JQgALBrRfCC9M3m51cdAy4gFr1Zhzep3jdmPbzseGNhK23EGR/TFKYT\n\tqKd/N9IPsgDZWyM5eNBMKQ17FMM11FjAmZ/vdhsaF+Xtyctovqn3EJ6HkqOlL4ei3X\n\tMFjXw40wKqEnV5DcOPvmg8kHwXKvlKNfnLbVZeUCSh+LO74JmWOVmt4mIYF/StoykB\n\tNSQpLohcbEZ3Q==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1671809015;\n\tbh=/E1WX/IByQ5NgH+AXXb3haX7k3XGhowCjAyo+eJdWRU=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=utWg2VznE65BV+wIK+NsP2oDhtun1kq6RRsBOgUQC9nL4eo471jHWcgSdTjRo3eUY\n\tOsGe02427F7LHtNhgWEk7IyNj/FJOB2fLwbZ+/AXGVlWndHVl8CfSl5E5Vqp0ltg7D\n\thUkd2FqcNYHcrO+ZPWPYV1b+E06l6vUswg3S9uJM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"utWg2Vzn\"; dkim-atps=neutral","Message-ID":"<3d1ecfa2-e4cf-97fb-7c08-fa7efc563b25@ideasonboard.com>","Date":"Fri, 23 Dec 2022 20:53:29 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101\n\tThunderbird/102.5.1","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20221222010132.22177-1-laurent.pinchart@ideasonboard.com>\n\t<20221222010132.22177-5-laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20221222010132.22177-5-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [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":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26151,"web_url":"https://patchwork.libcamera.org/comment/26151/","msgid":"<Y6ZHhB2yDlbyr8eY@pyrite.rasen.tech>","date":"2022-12-24T00:27:48","subject":"Re: [libcamera-devel] [PATCH v1 4/4] test: Drop pipeline test","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"On Thu, Dec 22, 2022 at 03:01:32AM +0200, Laurent Pinchart via libcamera-devel wrote:\n> The two pipeline test (for ipu3 and rkisp1) are meant to perform very\n\ns/test/tests/\n\n> basic validation of the corresponding pipeline handlers, limited to\n> verifying camera enumeration. They are not unit tests as such, they are\n> superseded by the lc-compliance tool, and they are never used in\n> practice (and always skipped). Drop them.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  test/meson.build                              |   1 -\n>  test/pipeline/ipu3/ipu3_pipeline_test.cpp     | 126 ------------------\n>  test/pipeline/ipu3/meson.build                |  14 --\n>  test/pipeline/meson.build                     |   4 -\n>  test/pipeline/rkisp1/meson.build              |  14 --\n>  test/pipeline/rkisp1/rkisp1_pipeline_test.cpp | 115 ----------------\n>  6 files changed, 274 deletions(-)\n>  delete mode 100644 test/pipeline/ipu3/ipu3_pipeline_test.cpp\n>  delete mode 100644 test/pipeline/ipu3/meson.build\n>  delete mode 100644 test/pipeline/meson.build\n>  delete mode 100644 test/pipeline/rkisp1/meson.build\n>  delete mode 100644 test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> \n> diff --git a/test/meson.build b/test/meson.build\n> index 19726f37421d..b227be818419 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -32,7 +32,6 @@ subdir('ipa')\n>  subdir('ipc')\n>  subdir('log')\n>  subdir('media_device')\n> -subdir('pipeline')\n>  subdir('process')\n>  subdir('py')\n>  subdir('serialization')\n> diff --git a/test/pipeline/ipu3/ipu3_pipeline_test.cpp b/test/pipeline/ipu3/ipu3_pipeline_test.cpp\n> deleted file mode 100644\n> index 9e647af5fdf8..000000000000\n> --- a/test/pipeline/ipu3/ipu3_pipeline_test.cpp\n> +++ /dev/null\n> @@ -1,126 +0,0 @@\n> -/* SPDX-License-Identifier: GPL-2.0-or-later */\n> -/*\n> - * Copyright (C) 2019, Google Inc.\n> - *\n> - * ipu3_pipeline_test.cpp - Intel IPU3 pipeline test\n> - */\n> -\n> -#include <iostream>\n> -#include <sys/stat.h>\n> -#include <sys/types.h>\n> -#include <unistd.h>\n> -\n> -#include <libcamera/camera.h>\n> -#include <libcamera/camera_manager.h>\n> -\n> -#include \"libcamera/internal/device_enumerator.h\"\n> -#include \"libcamera/internal/media_device.h\"\n> -#include \"libcamera/internal/media_object.h\"\n> -\n> -#include \"test.h\"\n> -\n> -using namespace std;\n> -using namespace libcamera;\n> -\n> -/*\n> - * Verify that the Intel IPU3 pipeline handler gets matched and cameras\n> - * are enumerated correctly.\n> - *\n> - * The test is supposed to be run on an IPU3 platform, otherwise it gets\n> - * skipped.\n> - *\n> - * The test lists all cameras registered in the system, if any camera is\n> - * available at all.\n> - */\n> -class IPU3PipelineTest : public Test\n> -{\n> -protected:\n> -\tint init();\n> -\tint run();\n> -\tvoid cleanup();\n> -\n> -private:\n> -\tCameraManager *cameraManager_;\n> -\tunsigned int sensors_;\n> -};\n> -\n> -int IPU3PipelineTest::init()\n> -{\n> -\tunique_ptr<DeviceEnumerator> enumerator = DeviceEnumerator::create();\n> -\tif (!enumerator) {\n> -\t\tcerr << \"Failed to create device enumerator\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tif (enumerator->enumerate()) {\n> -\t\tcerr << \"Failed to enumerate media devices\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tDeviceMatch imgu_dm(\"ipu3-imgu\");\n> -\tDeviceMatch cio2_dm(\"ipu3-cio2\");\n> -\n> -\tif (!enumerator->search(imgu_dm)) {\n> -\t\tcerr << \"Failed to find IPU3 IMGU: test skip\" << endl;\n> -\t\treturn TestSkip;\n> -\t}\n> -\n> -\tstd::shared_ptr<MediaDevice> cio2 = enumerator->search(cio2_dm);\n> -\tif (!cio2) {\n> -\t\tcerr << \"Failed to find IPU3 CIO2: test skip\" << endl;\n> -\t\treturn TestSkip;\n> -\t}\n> -\n> -\t/*\n> -\t * Camera sensor are connected to the CIO2 unit.\n> -\t * Count how many sensors are connected in the system\n> -\t * and later verify this matches the number of registered\n> -\t * cameras.\n> -\t */\n> -\tint ret = cio2->populate();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to populate media device \" << cio2->deviceNode() << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tsensors_ = 0;\n> -\tconst vector<MediaEntity *> &entities = cio2->entities();\n> -\tfor (MediaEntity *entity : entities) {\n> -\t\tif (entity->function() == MEDIA_ENT_F_CAM_SENSOR)\n> -\t\t\tsensors_++;\n> -\t}\n> -\n> -\tenumerator.reset(nullptr);\n> -\n> -\tcameraManager_ = new CameraManager();\n> -\tret = cameraManager_->start();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to start the CameraManager\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn 0;\n> -}\n> -\n> -int IPU3PipelineTest::run()\n> -{\n> -\tauto cameras = cameraManager_->cameras();\n> -\tfor (const std::shared_ptr<Camera> &cam : cameras)\n> -\t\tcout << \"Found camera '\" << cam->id() << \"'\" << endl;\n> -\n> -\tif (cameras.size() != sensors_) {\n> -\t\tcerr << cameras.size() << \" cameras registered, but \" << sensors_\n> -\t\t     << \" were expected\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn TestPass;\n> -}\n> -\n> -void IPU3PipelineTest::cleanup()\n> -{\n> -\tcameraManager_->stop();\n> -\tdelete cameraManager_;\n> -}\n> -\n> -TEST_REGISTER(IPU3PipelineTest)\n> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> deleted file mode 100644\n> index af075707f505..000000000000\n> --- a/test/pipeline/ipu3/meson.build\n> +++ /dev/null\n> @@ -1,14 +0,0 @@\n> -# SPDX-License-Identifier: CC0-1.0\n> -\n> -ipu3_test = [\n> -    {'name': 'ipu3_pipeline_test', 'sources': ['ipu3_pipeline_test.cpp']},\n> -]\n> -\n> -foreach test : ipu3_test\n> -    exe = executable(test['name'], test['sources'],\n> -                     dependencies : libcamera_private,\n> -                     link_with : test_libraries,\n> -                     include_directories : test_includes_internal)\n> -\n> -    test(test['name'], exe, suite : 'ipu3', is_parallel : false)\n> -endforeach\n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> deleted file mode 100644\n> index 6e7901fee38f..000000000000\n> --- a/test/pipeline/meson.build\n> +++ /dev/null\n> @@ -1,4 +0,0 @@\n> -# SPDX-License-Identifier: CC0-1.0\n> -\n> -subdir('ipu3')\n> -subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> deleted file mode 100644\n> index 1d178ad9da6f..000000000000\n> --- a/test/pipeline/rkisp1/meson.build\n> +++ /dev/null\n> @@ -1,14 +0,0 @@\n> -# SPDX-License-Identifier: CC0-1.0\n> -\n> -rkisp1_test = [\n> -    {'name': 'rkisp1_pipeline_test', 'sources': ['rkisp1_pipeline_test.cpp']},\n> -]\n> -\n> -foreach test : rkisp1_test\n> -    exe = executable(test['name'], test['sources'],\n> -                     dependencies : libcamera_private,\n> -                     link_with : test_libraries,\n> -                     include_directories : test_includes_internal)\n> -\n> -    test(test['name'], exe, suite : 'rkisp1', is_parallel : false)\n> -endforeach\n> diff --git a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> deleted file mode 100644\n> index acaf3c33b529..000000000000\n> --- a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> +++ /dev/null\n> @@ -1,115 +0,0 @@\n> -/* SPDX-License-Identifier: GPL-2.0-or-later */\n> -/*\n> - * Copyright (C) 2020, Linaro\n> - *\n> - * Based on test/pipeline/ipu3/ipu3_pipeline_test.cpp\n> - *\n> - * rkisp1_pipeline_test.cpp - Rockchip RK3399 rkisp1 pipeline test\n> - */\n> -\n> -#include <iostream>\n> -\n> -#include <sys/stat.h>\n> -#include <sys/types.h>\n> -#include <unistd.h>\n> -\n> -#include <libcamera/camera.h>\n> -#include <libcamera/camera_manager.h>\n> -\n> -#include \"libcamera/internal/device_enumerator.h\"\n> -#include \"libcamera/internal/media_device.h\"\n> -#include \"libcamera/internal/media_object.h\"\n> -\n> -#include \"test.h\"\n> -\n> -using namespace std;\n> -using namespace libcamera;\n> -\n> -/*\n> - * Verify that the RK3399 pipeline handler gets matched and cameras\n> - * are enumerated correctly.\n> - *\n> - * The test is supposed to be run on rockchip platform.\n> - *\n> - * The test lists all cameras registered in the system, if any camera is\n> - * available at all.\n> - */\n> -class RKISP1PipelineTest : public Test\n> -{\n> -protected:\n> -\tint init();\n> -\tint run();\n> -\tvoid cleanup();\n> -\n> -private:\n> -\tCameraManager *cameraManager_;\n> -\tunsigned int sensors_;\n> -};\n> -\n> -int RKISP1PipelineTest::init()\n> -{\n> -\tunique_ptr<DeviceEnumerator> enumerator = DeviceEnumerator::create();\n> -\tif (!enumerator) {\n> -\t\tcerr << \"Failed to create device enumerator\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tif (enumerator->enumerate()) {\n> -\t\tcerr << \"Failed to enumerate media devices\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tDeviceMatch dm(\"rkisp1\");\n> -\n> -\tstd::shared_ptr<MediaDevice> rkisp1 = enumerator->search(dm);\n> -\tif (!rkisp1) {\n> -\t\tcerr << \"Failed to find rkisp1: test skip\" << endl;\n> -\t\treturn TestSkip;\n> -\t}\n> -\n> -\tint ret = rkisp1->populate();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to populate media device \"\n> -\t\t     << rkisp1->deviceNode() << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\tsensors_ = 0;\n> -\tconst vector<MediaEntity *> &entities = rkisp1->entities();\n> -\tfor (MediaEntity *entity : entities) {\n> -\t\tif (entity->function() == MEDIA_ENT_F_CAM_SENSOR)\n> -\t\t\tsensors_++;\n> -\t}\n> -\n> -\tcameraManager_ = new CameraManager();\n> -\tret = cameraManager_->start();\n> -\tif (ret) {\n> -\t\tcerr << \"Failed to start the CameraManager\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn 0;\n> -}\n> -\n> -int RKISP1PipelineTest::run()\n> -{\n> -\tauto cameras = cameraManager_->cameras();\n> -\tfor (const std::shared_ptr<Camera> &cam : cameras)\n> -\t\tcout << \"Found camera '\" << cam->id() << \"'\" << endl;\n> -\n> -\tif (cameras.size() != sensors_) {\n> -\t\tcerr << cameras.size() << \" cameras registered, but \" << sensors_\n> -\t\t     << \" were expected\" << endl;\n> -\t\treturn TestFail;\n> -\t}\n> -\n> -\treturn TestPass;\n> -}\n> -\n> -void RKISP1PipelineTest::cleanup()\n> -{\n> -\tcameraManager_->stop();\n> -\tdelete cameraManager_;\n> -}\n> -\n> -TEST_REGISTER(RKISP1PipelineTest)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 1F3ACBD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 24 Dec 2022 00:27:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CCC49623AF;\n\tSat, 24 Dec 2022 01:27:56 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 21BBD61507\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 24 Dec 2022 01:27:55 +0100 (CET)","from pyrite.rasen.tech (unknown\n\t[IPv6:2604:2d80:ad8a:9000:1bf9:855b:22de:3645])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 172414DD;\n\tSat, 24 Dec 2022 01:27:53 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1671841676;\n\tbh=v0TdiyHT12S6taXeWFZ5ZcO2pUtTBd78x79CNfiKUio=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=yOocY3k+TCWmRgb2FAtWg8lPltpFF7C58bE4KPQ6brEonJoCb5DNjBmE+bjn8f+b1\n\tGz9PruhgrGH4M5tC7pqFvOmllc/8H7UUZ04CAuiUWn6s9Lu0GS1g9u9RxNQ1xopwmJ\n\tpLl6eumZ+KudSRmd1JST7ZrLG/aujnAHCK3ltL7BnTyhA0t15D4Tr/y1B15+aX15b+\n\tXTCB0knBp7PBoHnnDzvNza4AW0DK+OsnVUebxIlaLYyBwYW3g/75yYZmqVHryTIn73\n\tLB841OmUtgSt0c4P8rpDazimhtUehoPpg+H3rwQgq0+awFJNj76G6TM97uzOD8CfrZ\n\t5Y0ZGlor1d/WA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1671841674;\n\tbh=v0TdiyHT12S6taXeWFZ5ZcO2pUtTBd78x79CNfiKUio=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=TC4ATZqBg38HycXClTLcw1nTxAGUid8Hd6rv8W3nbplkQRtRuXYKgHbg0iPVBXtDm\n\tpd2lIOdgC8j8Moi7p6eIEynu733ahEgwZZKDuuHGUxIQi5pWnj2kHbVces9Vgynqz3\n\tls4S96r3rSQD52wYvEycP83AAPcPp/QaEeTAXlMw="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"TC4ATZqB\"; dkim-atps=neutral","Date":"Fri, 23 Dec 2022 18:27:48 -0600","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<Y6ZHhB2yDlbyr8eY@pyrite.rasen.tech>","References":"<20221222010132.22177-1-laurent.pinchart@ideasonboard.com>\n\t<20221222010132.22177-5-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20221222010132.22177-5-laurent.pinchart@ideasonboard.com>","Subject":"Re: [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":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]