From patchwork Fri Oct 4 16:37:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 2097 Return-Path: Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E2FDC60BC6 for ; Fri, 4 Oct 2019 18:35:58 +0200 (CEST) Received: from uno.localdomain (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 23827200009; Fri, 4 Oct 2019 16:35:57 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Fri, 4 Oct 2019 18:37:29 +0200 Message-Id: <20191004163734.15594-2-jacopo@jmondi.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191004163734.15594-1-jacopo@jmondi.org> References: <20191004163734.15594-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 1/6] ipa: vimc: Rename ipa_dummy to ipa_vimc X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Oct 2019 16:35:59 -0000 The DummyIPA is actually a test IPA module for the virtual media controller driver VIMC. Rename it accordingly to its usage. Reviewed-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Signed-off-by: Jacopo Mondi --- src/ipa/{ipa_dummy.cpp => ipa_vimc.cpp} | 10 +++++----- src/ipa/meson.build | 10 +++++----- test/ipa/ipa_test.cpp | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) rename src/ipa/{ipa_dummy.cpp => ipa_vimc.cpp} (71%) diff --git a/src/ipa/ipa_dummy.cpp b/src/ipa/ipa_vimc.cpp similarity index 71% rename from src/ipa/ipa_dummy.cpp rename to src/ipa/ipa_vimc.cpp index 9d0cbdc8b1ad..abc06e7f5fd5 100644 --- a/src/ipa/ipa_dummy.cpp +++ b/src/ipa/ipa_vimc.cpp @@ -2,7 +2,7 @@ /* * Copyright (C) 2019, Google Inc. * - * ipa_dummy.cpp - Dummy Image Processing Algorithm module + * ipa_vimc.cpp - Vimc Image Processing Algorithm module */ #include @@ -12,15 +12,15 @@ namespace libcamera { -class IPADummy : public IPAInterface +class IPAVimc : public IPAInterface { public: int init(); }; -int IPADummy::init() +int IPAVimc::init() { - std::cout << "initializing dummy IPA!" << std::endl; + std::cout << "initializing vimc IPA!" << std::endl; return 0; } @@ -39,7 +39,7 @@ const struct IPAModuleInfo ipaModuleInfo = { IPAInterface *ipaCreate() { - return new IPADummy(); + return new IPAVimc(); } }; diff --git a/src/ipa/meson.build b/src/ipa/meson.build index f09915bc1388..b5bcd7b2c3db 100644 --- a/src/ipa/meson.build +++ b/src/ipa/meson.build @@ -1,12 +1,12 @@ -ipa_dummy_sources = [ - ['ipa_dummy', 'LGPL-2.1-or-later'], - ['ipa_dummy_isolate', 'Proprietary'], +ipa_vimc_sources = [ + ['ipa_vimc', 'LGPL-2.1-or-later'], + ['ipa_vimc_isolate', 'Proprietary'], ] ipa_install_dir = join_paths(get_option('libdir'), 'libcamera') -foreach t : ipa_dummy_sources - ipa = shared_module(t[0], 'ipa_dummy.cpp', +foreach t : ipa_vimc_sources + ipa = shared_module(t[0], 'ipa_vimc.cpp', name_prefix : '', include_directories : libcamera_includes, install : true, diff --git a/test/ipa/ipa_test.cpp b/test/ipa/ipa_test.cpp index b9e1bd61c299..8f9b2d8058ec 100644 --- a/test/ipa/ipa_test.cpp +++ b/test/ipa/ipa_test.cpp @@ -62,7 +62,7 @@ protected: "GPL-2.0-or-later", }; - count += runTest("src/ipa/ipa_dummy.so", testInfo); + count += runTest("src/ipa/ipa_vimc.so", testInfo); if (count < 0) return TestFail; From patchwork Fri Oct 4 16:37:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 2098 Return-Path: Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id CFDC06170D for ; Fri, 4 Oct 2019 18:35:59 +0200 (CEST) Received: from uno.localdomain (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 19F7D20000A; Fri, 4 Oct 2019 16:35:58 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Fri, 4 Oct 2019 18:37:30 +0200 Message-Id: <20191004163734.15594-3-jacopo@jmondi.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191004163734.15594-1-jacopo@jmondi.org> References: <20191004163734.15594-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 2/6] test: ipa: Rename the ipa_test to ipa_module_test X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Oct 2019 16:36:00 -0000 Update the IPA test to match the test class name in prevision of adding more IPA tests. Also update the description comment in the test unit, as the old name for the test was still used. Reviewed-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Signed-off-by: Jacopo Mondi --- test/ipa/{ipa_test.cpp => ipa_module_test.cpp} | 2 +- test/ipa/meson.build | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename test/ipa/{ipa_test.cpp => ipa_module_test.cpp} (95%) diff --git a/test/ipa/ipa_test.cpp b/test/ipa/ipa_module_test.cpp similarity index 95% rename from test/ipa/ipa_test.cpp rename to test/ipa/ipa_module_test.cpp index 8f9b2d8058ec..3a634099a550 100644 --- a/test/ipa/ipa_test.cpp +++ b/test/ipa/ipa_module_test.cpp @@ -2,7 +2,7 @@ /* * Copyright (C) 2019, Google Inc. * - * load-so.cpp - loading .so tests + * ipa_module_test.cpp - Test loading of the VIMC IPA module and verify its info */ #include diff --git a/test/ipa/meson.build b/test/ipa/meson.build index 1749ab7d4338..e174671d05e1 100644 --- a/test/ipa/meson.build +++ b/test/ipa/meson.build @@ -1,5 +1,5 @@ ipa_test = [ - ['ipa_test', 'ipa_test.cpp'], + ['ipa_module_test', 'ipa_module_test.cpp'], ] foreach t : ipa_test From patchwork Fri Oct 4 16:37:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 2099 Return-Path: Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6F2556170D for ; Fri, 4 Oct 2019 18:36:00 +0200 (CEST) Received: from uno.localdomain (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 0244C200009; Fri, 4 Oct 2019 16:35:59 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Fri, 4 Oct 2019 18:37:31 +0200 Message-Id: <20191004163734.15594-4-jacopo@jmondi.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191004163734.15594-1-jacopo@jmondi.org> References: <20191004163734.15594-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 3/6] ipa: ipa_manager: Print the loaded IPA modules path X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Oct 2019 16:36:00 -0000 Add debug message to report which IPA modules have been loaded and in which order. The loading order is particularly relevant for the test VIMC IPA, as the same IPA is compiled with an open source license tag and a proprietary one and they both match() against the VIMC pipeline handler. Being informed about their loading order is helpful to understand which one of the two is actually in use. Signed-off-by: Jacopo Mondi Reviewed-by: Laurent Pinchart --- src/libcamera/ipa_manager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp index 27aa17920bab..f3180c0739cb 100644 --- a/src/libcamera/ipa_manager.cpp +++ b/src/libcamera/ipa_manager.cpp @@ -136,6 +136,8 @@ int IPAManager::addDir(const char *libDir) continue; } + LOG(IPAManager, Debug) << "Loaded IPA module '" << path << "'"; + modules_.push_back(ipaModule); count++; } From patchwork Fri Oct 4 16:37:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 2100 Return-Path: Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 047996186F for ; Fri, 4 Oct 2019 18:36:01 +0200 (CEST) Received: from uno.localdomain (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 8DED020000A; Fri, 4 Oct 2019 16:36:00 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Fri, 4 Oct 2019 18:37:32 +0200 Message-Id: <20191004163734.15594-5-jacopo@jmondi.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191004163734.15594-1-jacopo@jmondi.org> References: <20191004163734.15594-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 4/6] ipa: meson: Allow IPAs to include internal headers X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Oct 2019 16:36:01 -0000 Extend the list of inclusion paths for the IPA modules in src/ipa/ to include internal libcamera headers. Only Open Source IPA implementations will live in src/ipa/ and they link against libcamera, so they should be able to include internal headers as well as public ones. Signed-off-by: Jacopo Mondi Reviewed-by: Laurent Pinchart --- src/ipa/meson.build | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ipa/meson.build b/src/ipa/meson.build index b5bcd7b2c3db..2827dc0303b2 100644 --- a/src/ipa/meson.build +++ b/src/ipa/meson.build @@ -5,10 +5,15 @@ ipa_vimc_sources = [ ipa_install_dir = join_paths(get_option('libdir'), 'libcamera') +ipa_includes = [ + libcamera_includes, + libcamera_internal_includes, +] + foreach t : ipa_vimc_sources ipa = shared_module(t[0], 'ipa_vimc.cpp', name_prefix : '', - include_directories : libcamera_includes, + include_directories : ipa_includes, install : true, install_dir : ipa_install_dir, cpp_args : '-DLICENSE="' + t[1] + '"') From patchwork Fri Oct 4 16:37:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 2101 Return-Path: Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9348B6165B for ; Fri, 4 Oct 2019 18:36:01 +0200 (CEST) Received: from uno.localdomain (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 2B079200009; Fri, 4 Oct 2019 16:36:00 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Fri, 4 Oct 2019 18:37:33 +0200 Message-Id: <20191004163734.15594-6-jacopo@jmondi.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191004163734.15594-1-jacopo@jmondi.org> References: <20191004163734.15594-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 5/6] ipa: vimc: Add support for tracing operations X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Oct 2019 16:36:02 -0000 Add support to the dummy VIMC IPA for tracing operation by using a FIFO channel that will be used by the IPA Interface test to verify communications with the IPA. At the moment only add support for the init() operation as it's the only defined one. Signed-off-by: Jacopo Mondi --- src/ipa/ipa_vimc.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++ src/ipa/ipa_vimc.h | 21 ++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/ipa/ipa_vimc.h diff --git a/src/ipa/ipa_vimc.cpp b/src/ipa/ipa_vimc.cpp index abc06e7f5fd5..5fb62129fef9 100644 --- a/src/ipa/ipa_vimc.cpp +++ b/src/ipa/ipa_vimc.cpp @@ -5,22 +5,88 @@ * ipa_vimc.cpp - Vimc Image Processing Algorithm module */ +#include "ipa_vimc.h" + #include +#include +#include +#include +#include + #include #include +#include "log.h" + namespace libcamera { +LOG_DEFINE_CATEGORY(IPAVimc) + class IPAVimc : public IPAInterface { public: + IPAVimc(); + ~IPAVimc(); + int init(); + +private: + void initTrace(); + int trace(enum IPAOperationCodes operation); + + int fd_; }; +IPAVimc::IPAVimc() + : fd_(-1) +{ + initTrace(); +} + +IPAVimc::~IPAVimc() +{ + if (fd_) + ::close(fd_); +} + int IPAVimc::init() { std::cout << "initializing vimc IPA!" << std::endl; + + return trace(IPAOperationInit); +} + +void IPAVimc::initTrace() +{ + struct stat fifoStat; + int ret = stat(vimcFifoPath, &fifoStat); + if (ret) + return; + + ret = ::open(vimcFifoPath, O_WRONLY); + if (ret < 0) { + LOG(IPAVimc, Debug) << "Failed to open vimc IPA test FIFO: " + << strerror(errno) << std::endl; + return; + } + + fd_ = ret; +} + +int IPAVimc::trace(enum IPAOperationCodes operation) +{ + if (fd_ < 0) + return 0; + + int ret = ::write(fd_, &operation, sizeof(operation)); + if (ret < 0) { + ret = -errno; + LOG(IPAVimc, Debug) << "Failed to write to vimc IPA test FIFO: " + << strerror(-ret) << std::endl; + return ret; + } + return 0; } diff --git a/src/ipa/ipa_vimc.h b/src/ipa/ipa_vimc.h new file mode 100644 index 000000000000..62e40c5a6714 --- /dev/null +++ b/src/ipa/ipa_vimc.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * ipa_vimc.h - Vimc Image Processing Algorithm module + */ + +#ifndef __LIBCAMERA_IPA_VIMC_H__ +#define __LIBCAMERA_IPA_VIMC_H__ + +namespace libcamera { + +static const char *vimcFifoPath = "/tmp/vimc_ipa_fifo"; +enum IPAOperationCodes { + IPAOperationNone, + IPAOperationInit, +}; + +}; /* namespace libcamera */ + +#endif /* __LIBCAMERA_IPA_VIMC_H__ */ From patchwork Fri Oct 4 16:37:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 2102 Return-Path: Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2C33F6165B for ; Fri, 4 Oct 2019 18:36:02 +0200 (CEST) Received: from uno.localdomain (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay12.mail.gandi.net (Postfix) with ESMTPSA id B8075200008; Fri, 4 Oct 2019 16:36:01 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Fri, 4 Oct 2019 18:37:34 +0200 Message-Id: <20191004163734.15594-7-jacopo@jmondi.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191004163734.15594-1-jacopo@jmondi.org> References: <20191004163734.15594-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 6/6] test: ipa: Add test for the IPA Interface X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Oct 2019 16:36:02 -0000 Implementing a basic test for IPA Interface using the VIMC dummy IPA module. The test implements a communication channel between the test and the dummy IPA module to verify the success of the IPA interactions. Test the only available operation defined by the IPA interface by receiving a confirmation code on the fifo communication channel. Signed-off-by: Jacopo Mondi --- src/ipa/meson.build | 2 + test/ipa/ipa_interface_test.cpp | 136 ++++++++++++++++++++++++++++++++ test/ipa/meson.build | 10 ++- 3 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 test/ipa/ipa_interface_test.cpp diff --git a/src/ipa/meson.build b/src/ipa/meson.build index 2827dc0303b2..3e11e166f283 100644 --- a/src/ipa/meson.build +++ b/src/ipa/meson.build @@ -5,6 +5,8 @@ ipa_vimc_sources = [ ipa_install_dir = join_paths(get_option('libdir'), 'libcamera') +ipa_internal_includes = include_directories('.') + ipa_includes = [ libcamera_includes, libcamera_internal_includes, diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp new file mode 100644 index 000000000000..b6d0a4e7de20 --- /dev/null +++ b/test/ipa/ipa_interface_test.cpp @@ -0,0 +1,136 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * ipa_interface_test.cpp - Test the IPA interface + */ + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "device_enumerator.h" +#include "ipa_manager.h" +#include "ipa_module.h" +#include "pipeline_handler.h" +#include "test.h" +#include "thread.h" + +#include "ipa_vimc.h" + +using namespace std; +using namespace libcamera; + +class IPAInterfaceTest : public Test, public Object +{ +public: + IPAInterfaceTest() + : trace_(IPAOperationNone), notifier_(nullptr), fd_(-1) + { + } + + ~IPAInterfaceTest() + { + delete notifier_; + } + +protected: + int init() override + { + /* Create a pipeline handler for vimc. */ + std::vector &factories = + PipelineHandlerFactory::factories(); + for (PipelineHandlerFactory *factory : factories) { + if (factory->name() == "PipelineHandlerVimc") { + pipe_ = factory->create(nullptr); + break; + } + } + + if (!pipe_) { + cerr << "Vimc pipeline not found" << endl; + return TestPass; + } + + /* Create and open the communication FIFO. */ + int ret = mkfifo(vimcFifoPath, S_IRUSR | S_IWUSR); + if (ret) { + cerr << "Failed to create IPA test fifo at: " + << vimcFifoPath << ": " << strerror(errno) << endl; + return TestFail; + } + + ret = open(vimcFifoPath, O_RDONLY | O_NONBLOCK); + if (ret < 0) { + cerr << "Failed to open IPA test fifo at: " + << vimcFifoPath << ": " << strerror(errno) << endl; + unlink(vimcFifoPath); + return TestFail; + } + fd_ = ret; + + notifier_ = new EventNotifier(fd_, EventNotifier::Read, this); + notifier_->activated.connect(this, &IPAInterfaceTest::readTrace); + + return TestPass; + } + + int run() override + { + EventDispatcher *dispatcher = thread()->eventDispatcher(); + Timer timer; + + ipa_ = IPAManager::instance()->createIPA(pipe_.get(), 0, 0); + if (!ipa_) { + cerr << "Failed to create VIMC IPA interface" << endl; + return TestFail; + } + + /* Test initialization of IPA module. */ + ipa_->init(); + timer.start(1000); + while (timer.isRunning() && trace_ != IPAOperationInit) + dispatcher->processEvents(); + + if (trace_ != IPAOperationInit) { + cerr << "Failed to test IPA initialization sequence" + << endl; + return TestFail; + } + + return TestPass; + } + + void cleanup() override + { + close(fd_); + unlink(vimcFifoPath); + } + +private: + void readTrace(EventNotifier *notifier) + { + ssize_t s = read(notifier->fd(), &trace_, sizeof(trace_)); + if (s < 0) { + cerr << "Failed to read from IPA test fifo: " + << strerror(errno) << endl; + trace_ = IPAOperationNone; + } + } + + std::shared_ptr pipe_; + std::unique_ptr ipa_; + enum IPAOperationCodes trace_; + EventNotifier *notifier_; + int fd_; +}; + +TEST_REGISTER(IPAInterfaceTest) diff --git a/test/ipa/meson.build b/test/ipa/meson.build index e174671d05e1..d19de18ab97e 100644 --- a/test/ipa/meson.build +++ b/test/ipa/meson.build @@ -1,12 +1,18 @@ ipa_test = [ - ['ipa_module_test', 'ipa_module_test.cpp'], + ['ipa_module_test', 'ipa_module_test.cpp'], + ['ipa_interface_test', 'ipa_interface_test.cpp'], +] + +test_includes_ipa = [ + test_includes_internal, + ipa_internal_includes, ] foreach t : ipa_test exe = executable(t[0], t[1], dependencies : libcamera_dep, link_with : test_libraries, - include_directories : test_includes_internal) + include_directories : test_includes_ipa) test(t[0], exe, suite : 'ipa') endforeach