diff options
Diffstat (limited to 'test/ipa/ipa_module_test.cpp')
-rw-r--r-- | test/ipa/ipa_module_test.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp new file mode 100644 index 00000000..3a634099 --- /dev/null +++ b/test/ipa/ipa_module_test.cpp @@ -0,0 +1,74 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * ipa_module_test.cpp - Test loading of the VIMC IPA module and verify its info + */ + +#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_vimc.so", testInfo); + + if (count < 0) + return TestFail; + + return TestPass; + } +}; + +TEST_REGISTER(IPAModuleTest) |