Patch Detail
Show a patch.
GET /api/1.1/patches/12393/?format=api
{ "id": 12393, "url": "https://patchwork.libcamera.org/api/1.1/patches/12393/?format=api", "web_url": "https://patchwork.libcamera.org/patch/12393/", "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": "<20210524191309.90238-4-nfraprado@collabora.com>", "date": "2021-05-24T19:13:07", "name": "[libcamera-devel,v5,3/5] lc-compliance: Add Environment singleton", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "08fbd0ba1832fedc20247f55e13a7ea738194d65", "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/12393/mbox/", "series": [ { "id": 2057, "url": "https://patchwork.libcamera.org/api/1.1/series/2057/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2057", "date": "2021-05-24T19:13:04", "name": "lc-compliance: Refactor using Googletest", "version": 5, "mbox": "https://patchwork.libcamera.org/series/2057/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/12393/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/12393/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 AFD29C3201\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 24 May 2021 19:14:11 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 76DE56891C;\n\tMon, 24 May 2021 21:14:11 +0200 (CEST)", "from bhuna.collabora.co.uk (bhuna.collabora.co.uk\n\t[IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B7F2A602B0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 24 May 2021 21:14:09 +0200 (CEST)", "from [127.0.0.1] (localhost [127.0.0.1])\n\t(Authenticated sender: nfraprado) with ESMTPSA id F175B1F4152B" ], "From": "=?utf-8?b?TsOtY29sYXMgRi4gUi4gQS4gUHJhZG8=?= <nfraprado@collabora.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Mon, 24 May 2021 16:13:07 -0300", "Message-Id": "<20210524191309.90238-4-nfraprado@collabora.com>", "X-Mailer": "git-send-email 2.31.1", "In-Reply-To": "<20210524191309.90238-1-nfraprado@collabora.com>", "References": "<20210524191309.90238-1-nfraprado@collabora.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v5 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---\nChanges in v5:\n- Thanks to Laurent:\n - Stored CameraManager and cameraId instead of Camera in Environment\n- Thanks to Laurent & Niklas:\n - Improved Environment singleton class instantiation and destruction\n\nAdded in v4\n\n src/lc-compliance/environment.cpp | 20 ++++++++++++++++++++\n src/lc-compliance/environment.h | 31 +++++++++++++++++++++++++++++++\n src/lc-compliance/meson.build | 1 +\n 3 files changed, 52 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..fbe75fcc2cfb\n--- /dev/null\n+++ b/src/lc-compliance/environment.cpp\n@@ -0,0 +1,20 @@\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::get()\n+{\n+\tstatic Environment instance;\n+\treturn &instance;\n+}\n+\n+void Environment::setup(std::shared_ptr<CameraManager> cm, std::string cameraId)\n+{\n+\tcm_ = cm;\n+\tcameraId_ = cameraId;\n+}\ndiff --git a/src/lc-compliance/environment.h b/src/lc-compliance/environment.h\nnew file mode 100644\nindex 000000000000..e9e55e022d97\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 Environment *get();\n+\n+\tvoid setup(std::shared_ptr<CameraManager> cm, std::string cameraId);\n+\n+\tstd::string cameraId() const { return cameraId_; }\n+\tstd::shared_ptr<CameraManager> cm() const { return cm_; }\n+\n+private:\n+\tEnvironment() {};\n+\n+\tstd::string cameraId_;\n+\tstd::shared_ptr<CameraManager> cm_;\n+};\n+\n+#endif /* __LC_COMPLIANCE_ENVIRONMENT_H__ */\ndiff --git a/src/lc-compliance/meson.build b/src/lc-compliance/meson.build\nindex a2bfcceb1259..6dd49085569f 100644\n--- a/src/lc-compliance/meson.build\n+++ b/src/lc-compliance/meson.build\n@@ -12,6 +12,7 @@ lc_compliance_enabled = true\n lc_compliance_sources = files([\n '../cam/event_loop.cpp',\n '../cam/options.cpp',\n+ 'environment.cpp',\n 'main.cpp',\n 'results.cpp',\n 'simple_capture.cpp',\n", "prefixes": [ "libcamera-devel", "v5", "3/5" ] }