Patch Detail
Show a patch.
GET /api/1.1/patches/12348/?format=api
{ "id": 12348, "url": "https://patchwork.libcamera.org/api/1.1/patches/12348/?format=api", "web_url": "https://patchwork.libcamera.org/patch/12348/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/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": "<20210521133054.274502-4-nfraprado@collabora.com>", "date": "2021-05-21T13:30:52", "name": "[libcamera-devel,v4,3/5] lc-compliance: Add Environment singleton", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "a79aa314638279c27f750d072fd65eeb0c3d9ba0", "submitter": { "id": 84, "url": "https://patchwork.libcamera.org/api/1.1/people/84/?format=api", "name": "Nícolas F. R. A. Prado", "email": "nfraprado@collabora.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/12348/mbox/", "series": [ { "id": 2044, "url": "https://patchwork.libcamera.org/api/1.1/series/2044/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2044", "date": "2021-05-21T13:30:49", "name": "lc-compliance: Refactor using Googletest", "version": 4, "mbox": "https://patchwork.libcamera.org/series/2044/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/12348/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/12348/checks/", "tags": {}, "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 68E01C31FF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 May 2021 13:31:58 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3419468921;\n\tFri, 21 May 2021 15:31: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 C2E1168911\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 May 2021 15:31:57 +0200 (CEST)", "from localhost.localdomain (unknown\n\t[IPv6:2804:14c:1a9:2978:fc03:8702:eda1:a1f8])\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 433AF1F4407F;\n\tFri, 21 May 2021 14:31:55 +0100 (BST)" ], "From": "=?utf-8?b?TsOtY29sYXMgRi4gUi4gQS4gUHJhZG8=?= <nfraprado@collabora.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Fri, 21 May 2021 10:30:52 -0300", "Message-Id": "<20210521133054.274502-4-nfraprado@collabora.com>", "X-Mailer": "git-send-email 2.31.1", "In-Reply-To": "<20210521133054.274502-1-nfraprado@collabora.com>", "References": "<20210521133054.274502-1-nfraprado@collabora.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v4 3/5] lc-compliance: Add Environment\n\tsingleton", "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>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Add a singleton Environment class in order to make the camera available\ninside all tests. This is needed for the Googletest refactor, otherwise\nthe tests, which are statically declared, won't be able to access the\ncamera.\n\nSigned-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>\n---\nAdded in v4\n\n src/lc-compliance/environment.cpp | 35 +++++++++++++++++++++++++++++++\n src/lc-compliance/environment.h | 31 +++++++++++++++++++++++++++\n src/lc-compliance/meson.build | 1 +\n 3 files changed, 67 insertions(+)\n create mode 100644 src/lc-compliance/environment.cpp\n create mode 100644 src/lc-compliance/environment.h", "diff": "diff --git a/src/lc-compliance/environment.cpp b/src/lc-compliance/environment.cpp\nnew file mode 100644\nindex 000000000000..de7fa5bbadd1\n--- /dev/null\n+++ b/src/lc-compliance/environment.cpp\n@@ -0,0 +1,35 @@\n+/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/*\n+ * Copyright (C) 2021, Collabora Ltd.\n+ *\n+ * environment.cpp - Common environment for tests\n+ */\n+\n+#include \"environment.h\"\n+\n+Environment *Environment::instance_ = nullptr;\n+std::shared_ptr<Camera> Environment::camera_ = nullptr;\n+\n+bool Environment::create(std::shared_ptr<Camera> camera)\n+{\n+\tif (instance_)\n+\t\treturn false;\n+\n+\tcamera_ = camera;\n+\tinstance_ = new Environment;\n+\treturn true;\n+}\n+\n+void Environment::destroy()\n+{\n+\tif (!camera_)\n+\t\treturn;\n+\n+\tcamera_->release();\n+\tcamera_.reset();\n+}\n+\n+Environment *Environment::instance()\n+{\n+\treturn instance_;\n+}\ndiff --git a/src/lc-compliance/environment.h b/src/lc-compliance/environment.h\nnew file mode 100644\nindex 000000000000..f4832d371b6c\n--- /dev/null\n+++ b/src/lc-compliance/environment.h\n@@ -0,0 +1,31 @@\n+/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/*\n+ * Copyright (C) 2021, Collabora Ltd.\n+ *\n+ * environment.h - Common environment for tests\n+ */\n+#ifndef __LC_COMPLIANCE_ENVIRONMENT_H__\n+#define __LC_COMPLIANCE_ENVIRONMENT_H__\n+\n+#include <libcamera/libcamera.h>\n+\n+using namespace libcamera;\n+\n+class Environment\n+{\n+public:\n+\tstatic bool create(std::shared_ptr<Camera> camera);\n+\tvoid destroy();\n+\n+\tstatic Environment *instance();\n+\n+\tstd::shared_ptr<Camera> camera() const { return camera_; }\n+\n+private:\n+\tEnvironment() {};\n+\n+\tstatic Environment *instance_;\n+\tstatic std::shared_ptr<Camera> camera_;\n+};\n+\n+#endif /* __LC_COMPLIANCE_ENVIRONMENT_H__ */\ndiff --git a/src/lc-compliance/meson.build b/src/lc-compliance/meson.build\nindex a2bfcceb1259..c287017575bd 100644\n--- a/src/lc-compliance/meson.build\n+++ b/src/lc-compliance/meson.build\n@@ -14,6 +14,7 @@ lc_compliance_sources = files([\n '../cam/options.cpp',\n 'main.cpp',\n 'results.cpp',\n+ 'environment.cpp',\n 'simple_capture.cpp',\n 'single_stream.cpp',\n ])\n", "prefixes": [ "libcamera-devel", "v4", "3/5" ] }