Cover Letter Detail
Show a cover letter.
GET /api/covers/12188/?format=api
{ "id": 12188, "url": "https://patchwork.libcamera.org/api/covers/12188/?format=api", "web_url": "https://patchwork.libcamera.org/cover/12188/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20210503193307.108607-1-nfraprado@collabora.com>", "date": "2021-05-03T19:33:04", "name": "[libcamera-devel,RFC,v2,0/3] lc-compliance: Refactor using Googletest", "submitter": { "id": 84, "url": "https://patchwork.libcamera.org/api/people/84/?format=api", "name": "Nícolas F. R. A. Prado", "email": "nfraprado@collabora.com" }, "mbox": "https://patchwork.libcamera.org/cover/12188/mbox/", "series": [ { "id": 1996, "url": "https://patchwork.libcamera.org/api/series/1996/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1996", "date": "2021-05-03T19:33:04", "name": "lc-compliance: Refactor using Googletest", "version": 2, "mbox": "https://patchwork.libcamera.org/series/1996/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/12188/comments/", "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 77695BDE78\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 3 May 2021 19:33:59 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BAEB168919;\n\tMon, 3 May 2021 21:33:58 +0200 (CEST)", "from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4F6CB688AE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 3 May 2021 21:33:57 +0200 (CEST)", "from localhost.localdomain (unknown\n\t[IPv6:2804:14c:1a9:2978:995d:672b:100f:2fd9])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits))\n\t(No client certificate requested) (Authenticated sender: nfraprado)\n\tby bhuna.collabora.co.uk (Postfix) with ESMTPSA id 474E81F41E95;\n\tMon, 3 May 2021 20:33:55 +0100 (BST)" ], "From": "=?utf-8?b?TsOtY29sYXMgRi4gUi4gQS4gUHJhZG8=?= <nfraprado@collabora.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Mon, 3 May 2021 16:33:04 -0300", "Message-Id": "<20210503193307.108607-1-nfraprado@collabora.com>", "X-Mailer": "git-send-email 2.31.1", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [RFC PATCH v2 0/3] lc-compliance: Refactor using\n\tGoogletest", "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>", "Cc": "kernel@collabora.com, =?utf-8?q?Andr=C3=A9_Almeida?=\n\t<andrealmeid@collabora.com>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "This is a prototype of the refactoring of lc-compliance using Googletest as the\nframework.\n\nPatches 1 and 2 are just to simplify the cleanup path from the tests. Patch 3\ndoes the actual refactor.\n\nIn v1 the tests were registered statically which simplified the work needed to\nadd new tests, but it required the camera pointer to be a global variable, which\nwouldn't scale for usage with multiple cameras.\n\nFor v2 the tests are registered dynamically so that a camera pointer can be\npassed to tests being instantiated. This requires manual registration of each\nparametrization of the tests, which I tried to make less cumbersome by defining\nthe REGISTER_TESTS() macro (although for tests with different parameters,\ndifferent macros would be needed...). It also requires each new test to declare\na new class and be described in the TestBody() function of the class. Perhaps\nthis could also be made easier with a macro?\n\nAlso, since now a test is created for each of the cameras in the system, the -c\nflag was removed, as the camera to be tested can be selected by filtering\nonly tests for that camera with --gtest_filter. Although we could re-add this\nflag later for convenience.\n\nThe parameters for Gtest have yet to be wired up, but can currently be passed\nafter double dashes, like\n\n\tlc-compliance -c '<camera_name>' -- --gtest_list_tests\n\nto list all current tests defined. The parameter --gtest_filter can be used to\nfilter the individual tests or test suites to run. It uses string matching and\nglobing for the test names so it's easy to run a whole test suite MyTestSuite\nwith --gtest_list_tests='*MyTestSuite*'.\n\nThis is a snippet of a successful run:\n\n\t[==========] Running 240 tests from 1 test suite.\n\t[----------] Global test environment set-up.\n\t[----------] 240 tests from SingleStream\n\t[ RUN ] SingleStream.BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/1\n\t[20:42:43.656235633] [105482] INFO Camera camera.cpp:915 configuring streams: (0) 1280x720-MJPEG\n\tCamera needs 4 requests, can't test only 1\n\t[ SKIPPED ] SingleStream.BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/1 (63 ms)\n\n\t[...]\n\n\t[ RUN ] SingleStream.Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.2-0bda:5511/Viewfinder/89\n\t[20:51:53.678488142] [105482] INFO Camera camera.cpp:915 configuring streams: (0) 576x360-R8\n\t[ OK ] SingleStream.Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.2-0bda:5511/Viewfinder/89 (6390 ms)\n\t[----------] 240 tests from SingleStream (556412 ms total)\n\n\t[----------] Global test environment tear-down\n\t[==========] 240 tests from 1 test suite ran. (556412 ms total)\n\t[ PASSED ] 192 tests.\n\t[ SKIPPED ] 48 tests, listed below:\n\t[ SKIPPED ] SingleStream.BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/1\n\t[ SKIPPED ] SingleStream.BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/2\n\n\t[...]\n\nAnd how a failure looks like:\n\n\t[ RUN ] SingleStream.BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/5\n\t[20:55:13.218088360] [106518] INFO Camera camera.cpp:915 configuring streams: (0) 1280x720-MJPEG\n\t../src/lc-compliance/simple_capture.cpp:117: Failure\n\tExpected equality of these values:\n\t captureCount_\n\t Which is: 5\n\t captureLimit_\n\t Which is: 6\n\t[ FAILED ] SingleStream.BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/5 (318 ms)\n\nThe current complete list of tests is shown below for a single camera (each test\nwill show once for each of the cameras, which makes the list very lengthy if\nmultiple cameras are present):\n\n\tSingleStream.\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/1\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/2\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/3\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/5\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/8\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/13\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/21\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/34\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/55\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/89\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/1\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/2\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/3\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/5\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/8\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/13\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/21\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/34\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/55\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/89\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/1\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/2\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/3\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/5\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/8\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/13\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/21\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/34\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/55\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/89\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/1\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/2\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/3\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/5\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/8\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/13\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/21\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/34\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/55\n\t BalancedSingleCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/89\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/1\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/2\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/3\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/5\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/8\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/13\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/21\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/34\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/55\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/89\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/1\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/2\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/3\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/5\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/8\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/13\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/21\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/34\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/55\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/89\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/1\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/2\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/3\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/5\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/8\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/13\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/21\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/34\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/55\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/89\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/1\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/2\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/3\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/5\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/8\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/13\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/21\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/34\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/55\n\t BalancedMultiCycle/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/89\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/1\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/2\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/3\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/5\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/8\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/13\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/21\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/34\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/55\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Raw/89\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/1\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/2\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/3\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/5\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/8\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/13\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/21\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/34\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/55\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Still/89\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/1\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/2\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/3\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/5\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/8\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/13\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/21\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/34\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/55\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Video/89\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/1\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/2\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/3\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/5\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/8\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/13\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/21\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/34\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/55\n\t Unbalanced/\\_SB_.PCI0.XHC_.RHUB.HS09-9:1.0-0bda:5511/Viewfinder/89\n\nChanges in v2:\n- Added patch 1 to make Camera::stop() idempotent as well from [1].\n- Made test registration dynamic in patch 3\n- Some other minor fixes\n\n[1] https://lists.libcamera.org/pipermail/libcamera-devel/2021-April/019735.html\n\nv1: https://lists.libcamera.org/pipermail/libcamera-devel/2021-April/019702.html\n\nNícolas F. R. A. Prado (3):\n libcamera: camera: Make stop() idempotent\n lc-compliance: Make SimpleCapture::stop() idempotent\n lc-compliance: Refactor using Googletest\n\n src/lc-compliance/main.cpp | 99 +++++++++---------\n src/lc-compliance/meson.build | 3 +\n src/lc-compliance/simple_capture.cpp | 95 +++++++----------\n src/lc-compliance/simple_capture.h | 8 +-\n src/lc-compliance/single_stream.cpp | 151 ++++++++++++++-------------\n src/lc-compliance/tests.h | 15 ++-\n src/libcamera/camera.cpp | 20 +++-\n 7 files changed, 199 insertions(+), 192 deletions(-)" }