ipa: Pass IPA initialization settings to IPAInterface::init()

Add a new IPASettings class to pass IPA initialization settings through
the IPAInterface::init() method. The settings currently only contain the
name of a configuration file, and are expected to be extended later.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart
2020-04-27 02:36:18 +03:00
parent 26a4b03ed8
commit a6de903089
14 changed files with 82 additions and 21 deletions

View File

@@ -98,7 +98,8 @@ protected:
}
/* Test initialization of IPA module. */
ipa_->init();
IPASettings settings;
ipa_->init(settings);
timer.start(1000);
while (timer.isRunning() && trace_ != IPAOperationInit)
dispatcher->processEvents();

View File

@@ -43,8 +43,14 @@ public:
{
}
int init() override
int init(const IPASettings &settings) override
{
if (settings.configurationFile != "/ipa/configuration/file") {
cerr << "init(): Invalid configuration file" << endl;
report(Op_init, TestFail);
return 0;
}
report(Op_init, TestPass);
return 0;
}
@@ -339,7 +345,10 @@ protected:
* Test init(), start() and stop() last to ensure nothing in the
* wrappers or serializer depends on them being called first.
*/
ret = INVOKE(init);
IPASettings settings{
.configurationFile = "/ipa/configuration/file"
};
ret = INVOKE(init, settings);
if (ret == TestFail) {
cerr << "Failed to run init()";
return TestFail;