[{"id":3345,"web_url":"https://patchwork.libcamera.org/comment/3345/","msgid":"<0e7b8ec8-c897-47df-4b0f-edd345440fa2@ideasonboard.com>","date":"2020-01-07T15:56:16","subject":"Re: [libcamera-devel] [PATCH v2 1/1] rkisp1: add pipeline test for\n\trkisp1","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Show\n\nOn 24/10/2019 07:40, Show Liu wrote:\n> This is a simple test tool for rkisp1 pipeline refer from IPU3 pipeline test.\n> \n> Signed-off-by: Show Liu <show.liu@linaro.org>\n> ---\n>  test/pipeline/meson.build                     |   1 +\n>  test/pipeline/rkisp1/meson.build              |  12 ++\n>  test/pipeline/rkisp1/rkisp1_pipeline_test.cpp | 112 ++++++++++++++++++\n>  3 files changed, 125 insertions(+)\n>  create mode 100644 test/pipeline/rkisp1/meson.build\n>  create mode 100644 test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> \n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> index f434c79..157f789 100644\n> --- a/test/pipeline/meson.build\n> +++ b/test/pipeline/meson.build\n> @@ -1 +1,2 @@\n>  subdir('ipu3')\n> +subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> new file mode 100644\n> index 0000000..d3f9749\n> --- /dev/null\n> +++ b/test/pipeline/rkisp1/meson.build\n> @@ -0,0 +1,12 @@\n> +rkisp1_test = [\n> +    ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n> +]\n> +\n> +foreach t : rkisp1_test\n> +    exe = executable(t[0], t[1],\n> +                     dependencies : libcamera_dep,\n> +                     link_with : test_libraries,\n> +                     include_directories : test_includes_internal)\n> +\n> +    test(t[0], 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> new file mode 100644\n> index 0000000..274955e\n> --- /dev/null\n> +++ b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> @@ -0,0 +1,112 @@\n> +/* SPDX-License-Identifier: GPL-2.0-or-later */\n> +/*\n> + * Copyright (C) 2019, Google Inc.\n\nAs you're adding this code, perhaps this should be\n\tCopyright (C) 2019, Linaro\n\n? (or 2020 now)\n\nIf you /want/ this to be Google to reflect the fact that this file was\nduplicated from the IPU3 file then that's fine though, but it's up to\nyou I think.\n\n\n\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 \"device_enumerator.h\"\n> +#include \"media_device.h\"\n> +#include \"media_object.h\"\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\nThere is an extra space between the '=' and 'enumarator' above.\n\nI'm sorry to say that I can't have expected you to see that when running\ncheckstyle.py on your side, as checkstyle.py was broken, and couldn't\nparse your patch (its fault, not yours).\n\nI've now fixed up checkstyle.py and submitted two patches to the list to\nresolve it.\n\nOther than the optional change to the copyright, and this extra space,\nit looks like you've handled the earlier comments from Laurent, and this\ngets the testing started on rkisp1... so\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nLet us know what you want to do with the copyright message. If you want\nto keep it the same, then we can fix this trivial space when applying.\n--\nRegards\n\nKieran\n\n\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\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->name() << \"'\" << 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)\n>","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1AE4560464\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  7 Jan 2020 16:56:20 +0100 (CET)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5330E52F;\n\tTue,  7 Jan 2020 16:56:19 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1578412579;\n\tbh=i0lLsYLj4DjUpWGOKMAzvxBXX84eJ6rlXbBsyPwQu8k=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=ve7ht2SCWQRQnViwkDp5vhl3WB3lo0uy+NDjCMBuVyVd60kwfTGwoYi94g73jJttv\n\tEsdJpu6dRdZ4Sks+7OddBf98uZ2i4iQxLLDw9Pdt/nPvLiito1yIWL5HLBLlHObSP4\n\tTm2K7Bm6Pz78IsSqcuOY8Kg//kmhzHN5nyFzThc0=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Show Liu <show.liu@linaro.org>, libcamera-devel@lists.libcamera.org","Cc":"peter.griffin@linaro.org","References":"<20191024064008.25077-1-show.liu@linaro.org>\n\t<20191024064008.25077-2-show.liu@linaro.org>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<0e7b8ec8-c897-47df-4b0f-edd345440fa2@ideasonboard.com>","Date":"Tue, 7 Jan 2020 15:56:16 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.9.0","MIME-Version":"1.0","In-Reply-To":"<20191024064008.25077-2-show.liu@linaro.org>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v2 1/1] rkisp1: add pipeline test for\n\trkisp1","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>","X-List-Received-Date":"Tue, 07 Jan 2020 15:56:20 -0000"}},{"id":3350,"web_url":"https://patchwork.libcamera.org/comment/3350/","msgid":"<20200107160552.GG4871@pendragon.ideasonboard.com>","date":"2020-01-07T16:05:52","subject":"Re: [libcamera-devel] [PATCH v2 1/1] rkisp1: add pipeline test for\n\trkisp1","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hello,\n\nOn Tue, Jan 07, 2020 at 03:56:16PM +0000, Kieran Bingham wrote:\n> On 24/10/2019 07:40, Show Liu wrote:\n> > This is a simple test tool for rkisp1 pipeline refer from IPU3 pipeline test.\n> > \n> > Signed-off-by: Show Liu <show.liu@linaro.org>\n> > ---\n> >  test/pipeline/meson.build                     |   1 +\n> >  test/pipeline/rkisp1/meson.build              |  12 ++\n> >  test/pipeline/rkisp1/rkisp1_pipeline_test.cpp | 112 ++++++++++++++++++\n> >  3 files changed, 125 insertions(+)\n> >  create mode 100644 test/pipeline/rkisp1/meson.build\n> >  create mode 100644 test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> > \n> > diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> > index f434c79..157f789 100644\n> > --- a/test/pipeline/meson.build\n> > +++ b/test/pipeline/meson.build\n> > @@ -1 +1,2 @@\n> >  subdir('ipu3')\n> > +subdir('rkisp1')\n> > diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> > new file mode 100644\n> > index 0000000..d3f9749\n> > --- /dev/null\n> > +++ b/test/pipeline/rkisp1/meson.build\n> > @@ -0,0 +1,12 @@\n> > +rkisp1_test = [\n> > +    ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n> > +]\n> > +\n> > +foreach t : rkisp1_test\n> > +    exe = executable(t[0], t[1],\n> > +                     dependencies : libcamera_dep,\n> > +                     link_with : test_libraries,\n> > +                     include_directories : test_includes_internal)\n> > +\n> > +    test(t[0], 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> > new file mode 100644\n> > index 0000000..274955e\n> > --- /dev/null\n> > +++ b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp\n> > @@ -0,0 +1,112 @@\n> > +/* SPDX-License-Identifier: GPL-2.0-or-later */\n> > +/*\n> > + * Copyright (C) 2019, Google Inc.\n> \n> As you're adding this code, perhaps this should be\n> \tCopyright (C) 2019, Linaro\n> \n> ? (or 2020 now)\n> \n> If you /want/ this to be Google to reflect the fact that this file was\n> duplicated from the IPU3 file then that's fine though, but it's up to\n> you I think.\n\nThe following is also an option.\n\n * Copyright (C) 2019, Linaro\n *\n * Based on test/pipeline/ipu3/ipu3_pipeline_test.cpp\n *\n * Copyright (C) 2019, Google Inc.\n\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 \"device_enumerator.h\"\n> > +#include \"media_device.h\"\n> > +#include \"media_object.h\"\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> \n> There is an extra space between the '=' and 'enumarator' above.\n> \n> I'm sorry to say that I can't have expected you to see that when running\n> checkstyle.py on your side, as checkstyle.py was broken, and couldn't\n> parse your patch (its fault, not yours).\n> \n> I've now fixed up checkstyle.py and submitted two patches to the list to\n> resolve it.\n> \n> Other than the optional change to the copyright, and this extra space,\n> it looks like you've handled the earlier comments from Laurent, and this\n> gets the testing started on rkisp1... so\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> Let us know what you want to do with the copyright message. If you want\n> to keep it the same, then we can fix this trivial space when applying.\n> \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\nThere's also an extra space at the end of the line here, nicely pointed\nout by the fixed version of checkstyle.py :-)\n\n> > +\t\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->name() << \"'\" << 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":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6C95760464\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  7 Jan 2020 17:06:04 +0100 (CET)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7967852F;\n\tTue,  7 Jan 2020 17:06:03 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1578413164;\n\tbh=iWPQLqkxOy7BRMgT8AnBSQlIb0QwRiEf+5rQd9YMe58=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Hb0xPxA5rAvOK9hkGMRrqUse1HUoX9u0hPLgKRtvKsdfW7SQPyMj3tW/bh50NzvSu\n\tab5SI8WZhMP0qCUOuxy6WBDX8o05YSxhQOcVINqRwfrFAoAY5OSPfTtmqSeAIEXe4g\n\t9tw808UKjBHKhzIu65QzBeh5vj2Liq3ineMGSjEA=","Date":"Tue, 7 Jan 2020 18:05:52 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Show Liu <show.liu@linaro.org>, libcamera-devel@lists.libcamera.org,\n\tpeter.griffin@linaro.org","Message-ID":"<20200107160552.GG4871@pendragon.ideasonboard.com>","References":"<20191024064008.25077-1-show.liu@linaro.org>\n\t<20191024064008.25077-2-show.liu@linaro.org>\n\t<0e7b8ec8-c897-47df-4b0f-edd345440fa2@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<0e7b8ec8-c897-47df-4b0f-edd345440fa2@ideasonboard.com>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH v2 1/1] rkisp1: add pipeline test for\n\trkisp1","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>","X-List-Received-Date":"Tue, 07 Jan 2020 16:06:04 -0000"}}]