We need a way to match pipelines with IPA modules, so add fields in IPAModuleInfo to hold the IPA module API version number, the pipeline name, and the pipeline version. The module API version is used to determine the layout of struct IPAModuleInfo. Also update IPA module tests and Doxygen accordingly. Doxygen needs to be updated to accomodate __attribute__((packed)). Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
73 lines
1.6 KiB
C++
73 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,
|
|
9001,
|
|
"bleep",
|
|
"It's over nine thousand!",
|
|
};
|
|
|
|
count += runTest("test/ipa/ipa-dummy-cpp.so", testInfo);
|
|
|
|
if (count < 0)
|
|
return TestFail;
|
|
|
|
return TestPass;
|
|
}
|
|
};
|
|
|
|
TEST_REGISTER(IPAModuleTest)
|