mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-21 03:15:06 +03:00
Add a field to IPAModuleInfo to contain the license of the module. This license field will be used to determine whether the IPA module should be run in an isolated process or not. If the license is open source, then the IPA module will be allowed to run without process isolation, if the user enables it. If the license is not open source, then the IPA module will be run with process isolation. Update the dummy IPA and IPA test to conform to the new struct layout. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
74 lines
1.6 KiB
C++
74 lines
1.6 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2019, Google Inc.
|
|
*
|
|
* load-so.cpp - loading .so tests
|
|
*/
|
|
|
|
#include <iostream>
|
|
#include <string.h>
|
|
|
|
#include "ipa_module.h"
|
|
|
|
#include "test.h"
|
|
|
|
using namespace std;
|
|
using namespace libcamera;
|
|
|
|
class IPAModuleTest : public Test
|
|
{
|
|
protected:
|
|
int runTest(const string &path, const struct IPAModuleInfo &testInfo)
|
|
{
|
|
int ret = 0;
|
|
|
|
IPAModule *ll = new IPAModule(path);
|
|
|
|
if (!ll->isValid()) {
|
|
cerr << "test IPA module " << path << " is invalid"
|
|
<< endl;
|
|
delete ll;
|
|
return -1;
|
|
}
|
|
|
|
const struct IPAModuleInfo &info = ll->info();
|
|
|
|
if (memcmp(&info, &testInfo, sizeof(info))) {
|
|
cerr << "IPA module information mismatch: expected:" << endl
|
|
<< "moduleAPIVersion = " << testInfo.moduleAPIVersion << endl
|
|
<< "pipelineVersion = " << testInfo.pipelineVersion << endl
|
|
<< "pipelineName = " << testInfo.pipelineName << endl
|
|
<< "name = " << testInfo.name
|
|
<< "got: " << endl
|
|
<< "moduleAPIVersion = " << info.moduleAPIVersion << endl
|
|
<< "pipelineVersion = " << info.pipelineVersion << endl
|
|
<< "pipelineName = " << info.pipelineName << endl
|
|
<< "name = " << info.name << endl;
|
|
}
|
|
|
|
delete ll;
|
|
return ret;
|
|
}
|
|
|
|
int run() override
|
|
{
|
|
int count = 0;
|
|
|
|
const struct IPAModuleInfo testInfo = {
|
|
IPA_MODULE_API_VERSION,
|
|
0,
|
|
"PipelineHandlerVimc",
|
|
"Dummy IPA for Vimc",
|
|
"GPL-2.0-or-later",
|
|
};
|
|
|
|
count += runTest("src/ipa/ipa_dummy.so", testInfo);
|
|
|
|
if (count < 0)
|
|
return TestFail;
|
|
|
|
return TestPass;
|
|
}
|
|
};
|
|
|
|
TEST_REGISTER(IPAModuleTest)
|