[{"id":1169,"web_url":"https://patchwork.libcamera.org/comment/1169/","msgid":"<20190402074211.yjapgolqumtjmmxt@uno.localdomain>","date":"2019-04-02T07:42:11","subject":"Re: [libcamera-devel] [RFC 2/5] test: camera: Remove streams\n\targument from configurationValid()","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas\n\nOn Tue, Apr 02, 2019 at 02:53:29AM +0200, Niklas Söderlund wrote:\n> In preparation of reworking how a default configuration is retrieved\n> from a camera remove the streams and validation using the stream when\n> judging if a camera configuration is valid. This is needed as once\n> stream usage hints are added applications will no longer fetch default\n> configuration based on Stream IDs so using them to verify the returned\n> format is not useful.\n>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  test/camera/camera_test.cpp           | 26 ++++++++------------------\n>  test/camera/camera_test.h             |  3 +--\n>  test/camera/capture.cpp               |  2 +-\n>  test/camera/configuration_default.cpp |  2 +-\n>  test/camera/configuration_set.cpp     |  2 +-\n>  5 files changed, 12 insertions(+), 23 deletions(-)\n>\n> diff --git a/test/camera/camera_test.cpp b/test/camera/camera_test.cpp\n> index a92f2165bf3a53c1..5985b85c44816e30 100644\n> --- a/test/camera/camera_test.cpp\n> +++ b/test/camera/camera_test.cpp\n> @@ -46,27 +46,17 @@ void CameraTest::cleanup()\n>  \tcm_->stop();\n>  };\n>\n> -bool CameraTest::configurationValid(const std::set<Stream *> &streams,\n> -\t\t\t\t    const std::map<Stream *, StreamConfiguration> &conf) const\n> +bool CameraTest::configurationValid(const std::map<Stream *, StreamConfiguration> &config) const\n>  {\n> -\t/* Test that the numbers of streams matches that of configuration. */\n> -\tif (streams.size() != conf.size())\n> +\t/* Test that the configuration is not empty. */\n> +\tif (config.empty())\n>  \t\treturn false;\n>\n> -\t/*\n> -\t * Test that stream can be found in configuration and that the\n> -\t * configuration is valid.\n> -\t */\n> -\tfor (Stream *stream : streams) {\n> -\t\tstd::map<Stream *, StreamConfiguration>::const_iterator it =\n> -\t\t\tconf.find(stream);\n> -\n> -\t\tif (it == conf.end())\n> -\t\t\treturn false;\n> -\n> -\t\tconst StreamConfiguration *sconf = &it->second;\n> -\t\tif (sconf->width == 0 || sconf->height == 0 ||\n> -\t\t    sconf->pixelFormat == 0 || sconf->bufferCount == 0)\n> +\t/* Test that configuration is valid. */\n> +\tfor (auto const &it : config) {\n> +\t\tconst StreamConfiguration &conf = it.second;\n\nempty line maybe?\n\n> +\t\tif (conf.width == 0 || conf.height == 0 ||\n> +\t\t    conf.pixelFormat == 0 || conf.bufferCount == 0)\n\nShould we do any sanity check on the Stream * too? Like it's unique in\nthe map? This might not be required, as we would actually validate the\npipeline handler in that case, but...\n\nThanks\n  j\n\n>  \t\t\treturn false;\n>  \t}\n>\n> diff --git a/test/camera/camera_test.h b/test/camera/camera_test.h\n> index 48fb47a23fe8f49c..5801fad3281e1653 100644\n> --- a/test/camera/camera_test.h\n> +++ b/test/camera/camera_test.h\n> @@ -23,8 +23,7 @@ protected:\n>  \tint init();\n>  \tvoid cleanup();\n>\n> -\tbool configurationValid(const std::set<Stream *> &streams,\n> -\t\t\t\tconst std::map<Stream *, StreamConfiguration> &conf) const;\n> +\tbool configurationValid(const std::map<Stream *, StreamConfiguration> &config) const;\n>\n>  \tstd::shared_ptr<Camera> camera_;\n>\n> diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\n> index 28eb61405d90a4c7..f6932b7505571712 100644\n> --- a/test/camera/capture.cpp\n> +++ b/test/camera/capture.cpp\n> @@ -48,7 +48,7 @@ protected:\n>  \t\t\tcamera_->streamConfiguration(streams);\n>  \t\tStreamConfiguration *sconf = &conf.begin()->second;\n>\n> -\t\tif (!configurationValid(streams, conf)) {\n> +\t\tif (!configurationValid(conf)) {\n>  \t\t\tcout << \"Failed to read default configuration\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> diff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp\n> index 71e79844667591b2..53ee021d33ca39b1 100644\n> --- a/test/camera/configuration_default.cpp\n> +++ b/test/camera/configuration_default.cpp\n> @@ -32,7 +32,7 @@ protected:\n>  \t\t\treturn TestFail;\n>  \t\t}\n>\n> -\t\tif (!configurationValid(streams, conf)) {\n> +\t\tif (!configurationValid(conf)) {\n>  \t\t\tcout << \"Default configuration invalid\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp\n> index dedb85009335aa46..cac1da959f241bc5 100644\n> --- a/test/camera/configuration_set.cpp\n> +++ b/test/camera/configuration_set.cpp\n> @@ -23,7 +23,7 @@ protected:\n>  \t\t\tcamera_->streamConfiguration(streams);\n>  \t\tStreamConfiguration *sconf = &conf.begin()->second;\n>\n> -\t\tif (!configurationValid(streams, conf)) {\n> +\t\tif (!configurationValid(conf)) {\n>  \t\t\tcout << \"Failed to read default configuration\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> --\n> 2.21.0\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7D0F760DB3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Apr 2019 09:41:26 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 0307660010;\n\tTue,  2 Apr 2019 07:41:25 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Tue, 2 Apr 2019 09:42:11 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190402074211.yjapgolqumtjmmxt@uno.localdomain>","References":"<20190402005332.25018-1-niklas.soderlund@ragnatech.se>\n\t<20190402005332.25018-3-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"vbe2cwnu3aba3ro7\"","Content-Disposition":"inline","In-Reply-To":"<20190402005332.25018-3-niklas.soderlund@ragnatech.se>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [RFC 2/5] test: camera: Remove streams\n\targument from configurationValid()","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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, 02 Apr 2019 07:41:26 -0000"}},{"id":1202,"web_url":"https://patchwork.libcamera.org/comment/1202/","msgid":"<20190402114839.GV23466@bigcity.dyn.berto.se>","date":"2019-04-02T11:48:39","subject":"Re: [libcamera-devel] [RFC 2/5] test: camera: Remove streams\n\targument from configurationValid()","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nThanks for your feedback.\n\nOn 2019-04-02 09:42:11 +0200, Jacopo Mondi wrote:\n> Hi Niklas\n> \n> On Tue, Apr 02, 2019 at 02:53:29AM +0200, Niklas Söderlund wrote:\n> > In preparation of reworking how a default configuration is retrieved\n> > from a camera remove the streams and validation using the stream when\n> > judging if a camera configuration is valid. This is needed as once\n> > stream usage hints are added applications will no longer fetch default\n> > configuration based on Stream IDs so using them to verify the returned\n> > format is not useful.\n> >\n> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > ---\n> >  test/camera/camera_test.cpp           | 26 ++++++++------------------\n> >  test/camera/camera_test.h             |  3 +--\n> >  test/camera/capture.cpp               |  2 +-\n> >  test/camera/configuration_default.cpp |  2 +-\n> >  test/camera/configuration_set.cpp     |  2 +-\n> >  5 files changed, 12 insertions(+), 23 deletions(-)\n> >\n> > diff --git a/test/camera/camera_test.cpp b/test/camera/camera_test.cpp\n> > index a92f2165bf3a53c1..5985b85c44816e30 100644\n> > --- a/test/camera/camera_test.cpp\n> > +++ b/test/camera/camera_test.cpp\n> > @@ -46,27 +46,17 @@ void CameraTest::cleanup()\n> >  \tcm_->stop();\n> >  };\n> >\n> > -bool CameraTest::configurationValid(const std::set<Stream *> &streams,\n> > -\t\t\t\t    const std::map<Stream *, StreamConfiguration> &conf) const\n> > +bool CameraTest::configurationValid(const std::map<Stream *, StreamConfiguration> &config) const\n> >  {\n> > -\t/* Test that the numbers of streams matches that of configuration. */\n> > -\tif (streams.size() != conf.size())\n> > +\t/* Test that the configuration is not empty. */\n> > +\tif (config.empty())\n> >  \t\treturn false;\n> >\n> > -\t/*\n> > -\t * Test that stream can be found in configuration and that the\n> > -\t * configuration is valid.\n> > -\t */\n> > -\tfor (Stream *stream : streams) {\n> > -\t\tstd::map<Stream *, StreamConfiguration>::const_iterator it =\n> > -\t\t\tconf.find(stream);\n> > -\n> > -\t\tif (it == conf.end())\n> > -\t\t\treturn false;\n> > -\n> > -\t\tconst StreamConfiguration *sconf = &it->second;\n> > -\t\tif (sconf->width == 0 || sconf->height == 0 ||\n> > -\t\t    sconf->pixelFormat == 0 || sconf->bufferCount == 0)\n> > +\t/* Test that configuration is valid. */\n> > +\tfor (auto const &it : config) {\n> > +\t\tconst StreamConfiguration &conf = it.second;\n> \n> empty line maybe?\n\nI have no strong opinion, will add for next version.\n\n> \n> > +\t\tif (conf.width == 0 || conf.height == 0 ||\n> > +\t\t    conf.pixelFormat == 0 || conf.bufferCount == 0)\n> \n> Should we do any sanity check on the Stream * too? Like it's unique in\n> the map? This might not be required, as we would actually validate the\n> pipeline handler in that case, but...\n\nThe Stream * is always unique as it's the key of the map :-)\n\n> \n> Thanks\n>   j\n> \n> >  \t\t\treturn false;\n> >  \t}\n> >\n> > diff --git a/test/camera/camera_test.h b/test/camera/camera_test.h\n> > index 48fb47a23fe8f49c..5801fad3281e1653 100644\n> > --- a/test/camera/camera_test.h\n> > +++ b/test/camera/camera_test.h\n> > @@ -23,8 +23,7 @@ protected:\n> >  \tint init();\n> >  \tvoid cleanup();\n> >\n> > -\tbool configurationValid(const std::set<Stream *> &streams,\n> > -\t\t\t\tconst std::map<Stream *, StreamConfiguration> &conf) const;\n> > +\tbool configurationValid(const std::map<Stream *, StreamConfiguration> &config) const;\n> >\n> >  \tstd::shared_ptr<Camera> camera_;\n> >\n> > diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\n> > index 28eb61405d90a4c7..f6932b7505571712 100644\n> > --- a/test/camera/capture.cpp\n> > +++ b/test/camera/capture.cpp\n> > @@ -48,7 +48,7 @@ protected:\n> >  \t\t\tcamera_->streamConfiguration(streams);\n> >  \t\tStreamConfiguration *sconf = &conf.begin()->second;\n> >\n> > -\t\tif (!configurationValid(streams, conf)) {\n> > +\t\tif (!configurationValid(conf)) {\n> >  \t\t\tcout << \"Failed to read default configuration\" << endl;\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> > diff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp\n> > index 71e79844667591b2..53ee021d33ca39b1 100644\n> > --- a/test/camera/configuration_default.cpp\n> > +++ b/test/camera/configuration_default.cpp\n> > @@ -32,7 +32,7 @@ protected:\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> >\n> > -\t\tif (!configurationValid(streams, conf)) {\n> > +\t\tif (!configurationValid(conf)) {\n> >  \t\t\tcout << \"Default configuration invalid\" << endl;\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> > diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp\n> > index dedb85009335aa46..cac1da959f241bc5 100644\n> > --- a/test/camera/configuration_set.cpp\n> > +++ b/test/camera/configuration_set.cpp\n> > @@ -23,7 +23,7 @@ protected:\n> >  \t\t\tcamera_->streamConfiguration(streams);\n> >  \t\tStreamConfiguration *sconf = &conf.begin()->second;\n> >\n> > -\t\tif (!configurationValid(streams, conf)) {\n> > +\t\tif (!configurationValid(conf)) {\n> >  \t\t\tcout << \"Failed to read default configuration\" << endl;\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> > --\n> > 2.21.0\n> >\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lj1-x233.google.com (mail-lj1-x233.google.com\n\t[IPv6:2a00:1450:4864:20::233])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D5AB760DB3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Apr 2019 13:48:40 +0200 (CEST)","by mail-lj1-x233.google.com with SMTP id v13so11302405ljk.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 02 Apr 2019 04:48:40 -0700 (PDT)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\tu11sm2739523ljh.80.2019.04.02.04.48.39\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 02 Apr 2019 04:48:39 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=oS7JBdvK4/EB1L/XtUFUAJw+OESwkrOSrFy1jhX4PLs=;\n\tb=q+sK9c6bUWrWRECthmXS1OLVJ/Q/47HM/0FtNmpp2V7LoMhS3JL7aAKQ38EwYwZs1P\n\txNcY8TTSQNZPOqwZ6oWJSZT47rPLdZALl65gC1X5FdAacz18sdnrfVilRZBT/dX0Mv+6\n\t8h+wp0XFGtXrJYfzaKKczA0jwM2vQO9MTUrnS41dRdnWBBDqZO5i0bj201eUhxETj5Hj\n\tGrJnWGI8s9ED5hhtmJf6U9lSkJz2cq1rvw9sQstrw5LnsAMqOKvgDOhisffGo6A2xdGY\n\tmWnGu5QqcqzO6c7Sz0pNvlQgZOuthk92j9Fzd5MeKlw6WYnRU/4jbzoGFRbDaOOVkIe5\n\tTJyQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=oS7JBdvK4/EB1L/XtUFUAJw+OESwkrOSrFy1jhX4PLs=;\n\tb=V01HAuJl+gYisnmKmJyABzrYj6DWvddmogXo5s+CniVqnTLvS5d8ybVB0BqZZ+D9IO\n\t1dSZ/t5koKfKCmNfhtP9CFYmTxNH+ykkLQ1uSbZmjwjdrQCYRSOZKZBpBrMxwkZ+P0CE\n\tafgJQU05a8roWwQbVDcsnMEeZtAMjp8gKBypNtw5YxK2eG+lav48Kmro8wEKgcSe/NwH\n\t917H3hZmDaD6Pzmr1nD5Gy3LqKcH3CuY2T7UXtWI4oUWymWBIQA/o4ruvwOTHyaDK2Oy\n\tK9jNKq3n+Dh1DoFiTuuYWnmhlUO2AOp9X+V4//JW4o4AEezxWn41SkVP/QQ5/fA0a2yn\n\tlBNQ==","X-Gm-Message-State":"APjAAAVk4rn6JuQRKOeNAjQCgxCg9Mweggwcp5alFhlxep9rFpZLLdF5\n\tQny3Zlj3Vu8FyOAN4CvSEXZuKcpYF2E=","X-Google-Smtp-Source":"APXvYqyOxf4zm4xSwwA148AloAT1ik+0tm+y3qTxAyK+DFdyhqZCaJKzBUyqoRN5vAA+P61K6vDbpg==","X-Received":"by 2002:a2e:7c02:: with SMTP id x2mr421506ljc.176.1554205720308; \n\tTue, 02 Apr 2019 04:48:40 -0700 (PDT)","Date":"Tue, 2 Apr 2019 13:48:39 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190402114839.GV23466@bigcity.dyn.berto.se>","References":"<20190402005332.25018-1-niklas.soderlund@ragnatech.se>\n\t<20190402005332.25018-3-niklas.soderlund@ragnatech.se>\n\t<20190402074211.yjapgolqumtjmmxt@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190402074211.yjapgolqumtjmmxt@uno.localdomain>","User-Agent":"Mutt/1.11.3 (2019-02-01)","Subject":"Re: [libcamera-devel] [RFC 2/5] test: camera: Remove streams\n\targument from configurationValid()","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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, 02 Apr 2019 11:48:41 -0000"}},{"id":1206,"web_url":"https://patchwork.libcamera.org/comment/1206/","msgid":"<20190402142252.GA4805@pendragon.ideasonboard.com>","date":"2019-04-02T14:22:52","subject":"Re: [libcamera-devel] [RFC 2/5] test: camera: Remove streams\n\targument from configurationValid()","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Apr 02, 2019 at 02:53:29AM +0200, Niklas Söderlund wrote:\n> In preparation of reworking how a default configuration is retrieved\n> from a camera remove the streams and validation using the stream when\n> judging if a camera configuration is valid. This is needed as once\n> stream usage hints are added applications will no longer fetch default\n> configuration based on Stream IDs so using them to verify the returned\n> format is not useful.\n> \n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  test/camera/camera_test.cpp           | 26 ++++++++------------------\n>  test/camera/camera_test.h             |  3 +--\n>  test/camera/capture.cpp               |  2 +-\n>  test/camera/configuration_default.cpp |  2 +-\n>  test/camera/configuration_set.cpp     |  2 +-\n>  5 files changed, 12 insertions(+), 23 deletions(-)\n> \n> diff --git a/test/camera/camera_test.cpp b/test/camera/camera_test.cpp\n> index a92f2165bf3a53c1..5985b85c44816e30 100644\n> --- a/test/camera/camera_test.cpp\n> +++ b/test/camera/camera_test.cpp\n> @@ -46,27 +46,17 @@ void CameraTest::cleanup()\n>  \tcm_->stop();\n>  };\n>  \n> -bool CameraTest::configurationValid(const std::set<Stream *> &streams,\n> -\t\t\t\t    const std::map<Stream *, StreamConfiguration> &conf) const\n> +bool CameraTest::configurationValid(const std::map<Stream *, StreamConfiguration> &config) const\n>  {\n> -\t/* Test that the numbers of streams matches that of configuration. */\n> -\tif (streams.size() != conf.size())\n> +\t/* Test that the configuration is not empty. */\n> +\tif (config.empty())\n>  \t\treturn false;\n>  \n> -\t/*\n> -\t * Test that stream can be found in configuration and that the\n> -\t * configuration is valid.\n> -\t */\n> -\tfor (Stream *stream : streams) {\n> -\t\tstd::map<Stream *, StreamConfiguration>::const_iterator it =\n> -\t\t\tconf.find(stream);\n> -\n> -\t\tif (it == conf.end())\n> -\t\t\treturn false;\n> -\n> -\t\tconst StreamConfiguration *sconf = &it->second;\n> -\t\tif (sconf->width == 0 || sconf->height == 0 ||\n> -\t\t    sconf->pixelFormat == 0 || sconf->bufferCount == 0)\n> +\t/* Test that configuration is valid. */\n> +\tfor (auto const &it : config) {\n> +\t\tconst StreamConfiguration &conf = it.second;\n> +\t\tif (conf.width == 0 || conf.height == 0 ||\n> +\t\t    conf.pixelFormat == 0 || conf.bufferCount == 0)\n>  \t\t\treturn false;\n>  \t}\n>  \n> diff --git a/test/camera/camera_test.h b/test/camera/camera_test.h\n> index 48fb47a23fe8f49c..5801fad3281e1653 100644\n> --- a/test/camera/camera_test.h\n> +++ b/test/camera/camera_test.h\n> @@ -23,8 +23,7 @@ protected:\n>  \tint init();\n>  \tvoid cleanup();\n>  \n> -\tbool configurationValid(const std::set<Stream *> &streams,\n> -\t\t\t\tconst std::map<Stream *, StreamConfiguration> &conf) const;\n> +\tbool configurationValid(const std::map<Stream *, StreamConfiguration> &config) const;\n>  \n>  \tstd::shared_ptr<Camera> camera_;\n>  \n> diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\n> index 28eb61405d90a4c7..f6932b7505571712 100644\n> --- a/test/camera/capture.cpp\n> +++ b/test/camera/capture.cpp\n> @@ -48,7 +48,7 @@ protected:\n>  \t\t\tcamera_->streamConfiguration(streams);\n>  \t\tStreamConfiguration *sconf = &conf.begin()->second;\n>  \n> -\t\tif (!configurationValid(streams, conf)) {\n> +\t\tif (!configurationValid(conf)) {\n>  \t\t\tcout << \"Failed to read default configuration\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> diff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp\n> index 71e79844667591b2..53ee021d33ca39b1 100644\n> --- a/test/camera/configuration_default.cpp\n> +++ b/test/camera/configuration_default.cpp\n> @@ -32,7 +32,7 @@ protected:\n>  \t\t\treturn TestFail;\n>  \t\t}\n>  \n> -\t\tif (!configurationValid(streams, conf)) {\n> +\t\tif (!configurationValid(conf)) {\n>  \t\t\tcout << \"Default configuration invalid\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp\n> index dedb85009335aa46..cac1da959f241bc5 100644\n> --- a/test/camera/configuration_set.cpp\n> +++ b/test/camera/configuration_set.cpp\n> @@ -23,7 +23,7 @@ protected:\n>  \t\t\tcamera_->streamConfiguration(streams);\n>  \t\tStreamConfiguration *sconf = &conf.begin()->second;\n>  \n> -\t\tif (!configurationValid(streams, conf)) {\n> +\t\tif (!configurationValid(conf)) {\n>  \t\t\tcout << \"Failed to read default configuration\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}","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 E33D360DB3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Apr 2019 16:23:03 +0200 (CEST)","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 2D1AA2F9;\n\tTue,  2 Apr 2019 16:23:03 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1554214983;\n\tbh=OICU/TJOT5s+Zfqy+/dnMjUMOulSRsaAPN1WqHRGhBw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=A0XRHq+NCJ/INfMzooykF4GzyNcCkW5g8UPuEaEd7PhIFUtgG7FyJ460iMO4Mg8Hl\n\t+6gtCT39y8KfKDNaKlgnm9VNc1qHgsTyu1GzGG4Exn9kNbC7vY5z0GzP1diqJLSQw7\n\tu4/yJTvSoDyvVs6SAm5msHm/pFKuHLjfcKM1ZrZc=","Date":"Tue, 2 Apr 2019 17:22:52 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190402142252.GA4805@pendragon.ideasonboard.com>","References":"<20190402005332.25018-1-niklas.soderlund@ragnatech.se>\n\t<20190402005332.25018-3-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190402005332.25018-3-niklas.soderlund@ragnatech.se>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [RFC 2/5] test: camera: Remove streams\n\targument from configurationValid()","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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, 02 Apr 2019 14:23:04 -0000"}}]