Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DobbyManager_Usecases #296

Merged
merged 2 commits into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions unit_tests/L1_testing/mocks/ContainerIdMock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,7 @@ const std::string& ContainerId::str() const

const char* ContainerId::c_str() const
{
EXPECT_NE(impl, nullptr);

return impl->c_str();
return mId.c_str();
}

bool ContainerId::isValidContainerId(const std::string& id)
Expand Down
8 changes: 6 additions & 2 deletions unit_tests/L1_testing/mocks/DobbyBundleConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ class DobbyBundleConfigImpl {

virtual std::shared_ptr<rt_dobby_schema> config() const =0;
virtual bool restartOnCrash() const =0;
virtual bool writeConfigJson(const std::string& filePath) const = 0;
#ifdef LEGACY_COMPONENTS
virtual const std::map<std::string, Json::Value>& legacyPlugins() const =0;
#endif /* LEGACY_COMPONENTS */
virtual const std::map<std::string, Json::Value>& rdkPlugins() const = 0;
virtual bool isValid() const = 0;

Expand All @@ -47,12 +49,14 @@ class DobbyBundleConfig : public DobbyConfig {
~DobbyBundleConfig();

bool isValid() const;
#ifdef LEGACY_COMPONENTS
const std::map<std::string, Json::Value>& legacyPlugins() const;
#endif /* LEGACY_COMPONENTS */
const std::map<std::string, Json::Value>& rdkPlugins() const ;
static void setImpl(DobbyBundleConfigImpl* newImpl);
static DobbyBundleConfig* getInstance();
std::shared_ptr<rt_dobby_schema> config();
bool restartOnCrash() const;
bool writeConfigJson(const std::string& filePath) const;
};


Expand Down
9 changes: 5 additions & 4 deletions unit_tests/L1_testing/mocks/DobbyBundleConfigMock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ bool DobbyBundleConfig::restartOnCrash() const
return impl->restartOnCrash();
}

bool DobbyBundleConfig::writeConfigJson(const std::string& filePath) const
#ifdef LEGACY_COMPONENTS
const std::map<std::string, Json::Value>& DobbyBundleConfig::legacyPlugins() const
{
EXPECT_NE(impl, nullptr);

return impl->writeConfigJson(filePath);
EXPECT_NE(impl, nullptr);
return impl->legacyPlugins();
}
#endif /* LEGACY_COMPONENTS */

const std::map<std::string, Json::Value>& DobbyBundleConfig::rdkPlugins() const
{
Expand Down
4 changes: 3 additions & 1 deletion unit_tests/L1_testing/mocks/DobbyBundleConfigMock.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,12 @@ class DobbyBundleConfigMock : public DobbyBundleConfigImpl {
public:
virtual ~DobbyBundleConfigMock() = default;

MOCK_METHOD(bool, writeConfigJson, (const std::string& filePath), (const,override));
MOCK_METHOD(std::shared_ptr<rt_dobby_schema>, config, (), (const,override));
MOCK_METHOD(bool, restartOnCrash, (), (const,override));
MOCK_METHOD(bool, isValid, (), (const,override));
#ifdef LEGACY_COMPONENTS
MOCK_METHOD((const std::map<std::string, Json::Value>&), legacyPlugins, (), (const));
#endif /* LEGACY_COMPONENTS */
MOCK_METHOD((const std::map<std::string, Json::Value>&), rdkPlugins, (), (const,override));
};

14 changes: 4 additions & 10 deletions unit_tests/L1_testing/mocks/DobbyConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ class DobbyConfigImpl {
virtual ~DobbyConfigImpl() =default;

virtual bool writeConfigJson(const std::string& filePath) const = 0;
virtual const std::map<std::string, Json::Value>& rdkPlugins() const = 0;
virtual std::shared_ptr<rt_dobby_schema> config() const = 0;
virtual bool changeProcessArgs(const std::string& command) = 0;
virtual bool addWesterosMount(const std::string& socketPath) = 0;
Expand All @@ -49,11 +48,6 @@ class DobbyConfigImpl {
virtual void setApparmorProfile(const std::string& profileName) = 0;
virtual std::string configJson() const = 0;

#if defined(LEGACY_COMPONENTS)
virtual std::string spec() const =0;
virtual const std::map<std::string, Json::Value>& legacyPlugins() const = 0;
#endif //defined(LEGACY_COMPONENTS)

};

class DobbyConfig {
Expand All @@ -67,9 +61,8 @@ class DobbyConfig {
~DobbyConfig(){}

static void setImpl(DobbyConfigImpl* newImpl);
static DobbyConfig* getInstance();
bool writeConfigJson(const std::string& filePath) const;
static const std::map<std::string, Json::Value>& rdkPlugins();
virtual const std::map<std::string, Json::Value>& rdkPlugins() const = 0;
const std::shared_ptr<rt_dobby_schema> config();
bool changeProcessArgs(const std::string& command);
bool addWesterosMount(const std::string& socketPath);
Expand All @@ -79,8 +72,9 @@ class DobbyConfig {
const std::string configJson() const;

#if defined(LEGACY_COMPONENTS)
static const std::string spec();
static const std::map<std::string, Json::Value>& legacyPlugins();
virtual const std::string spec() const
{ return std::string(); }
virtual const std::map<std::string, Json::Value>& legacyPlugins() const = 0;
#endif //defined(LEGACY_COMPONENTS)

};
Expand Down
38 changes: 0 additions & 38 deletions unit_tests/L1_testing/mocks/DobbyConfigMock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,53 +26,20 @@ void DobbyConfig::setImpl(DobbyConfigImpl* newImpl)
impl = newImpl;
}

DobbyConfig* DobbyConfig::getInstance()
{
static DobbyConfig* instance = nullptr;
if (nullptr == instance)
{
instance = new DobbyConfig();
}
return instance;
}

bool DobbyConfig::writeConfigJson(const std::string& filePath) const
{
EXPECT_NE(impl, nullptr);

return impl->writeConfigJson(filePath);
}

const std::map<std::string, Json::Value>& DobbyConfig::rdkPlugins()
{
EXPECT_NE(impl, nullptr);

return impl->rdkPlugins();
}

const std::shared_ptr<rt_dobby_schema> DobbyConfig::config()
{
EXPECT_NE(impl, nullptr);

return impl->config();
}

#if defined(LEGACY_COMPONENTS)

const std::string DobbyConfig::spec()
{
EXPECT_NE(impl, nullptr);

return impl->spec();
}

const std::map<std::string, Json::Value>& DobbyConfig::legacyPlugins()
{
EXPECT_NE(impl, nullptr);

return impl->legacyPlugins();
}

bool DobbyConfig::changeProcessArgs(const std::string& command)
{
EXPECT_NE(impl, nullptr);
Expand Down Expand Up @@ -114,8 +81,3 @@ const std::string DobbyConfig::configJson() const

return impl->configJson();
}


#endif //defined(LEGACY_COMPONENTS)


6 changes: 0 additions & 6 deletions unit_tests/L1_testing/mocks/DobbyConfigMock.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ class DobbyConfigMock : public DobbyConfigImpl {
virtual ~DobbyConfigMock() = default;

MOCK_METHOD(bool, writeConfigJson, (const std::string& filePath), (const,override));
MOCK_METHOD((std::map<std::string, Json::Value>&), rdkPlugins, (), (const,override));
MOCK_METHOD((std::shared_ptr<rt_dobby_schema>), config, (), (const,override));
MOCK_METHOD(bool, changeProcessArgs, (const std::string& command), (override));
MOCK_METHOD(bool, addWesterosMount, (const std::string& socketPath), (override));
Expand All @@ -37,9 +36,4 @@ class DobbyConfigMock : public DobbyConfigImpl {
MOCK_METHOD(void, setApparmorProfile, (const std::string& profileName), (override));
MOCK_METHOD(std::string, configJson, (), (const,override));

#if defined(LEGACY_COMPONENTS)
MOCK_METHOD(std::string, spec, (), (const,override));
MOCK_METHOD((std::map<std::string, Json::Value>&), legacyPlugins, (), (const,override));
#endif //defined(LEGACY_COMPONENTS)

};
2 changes: 2 additions & 0 deletions unit_tests/L1_testing/mocks/DobbyContainer.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class DobbyContainerImpl {
virtual void clearRestartOnCrash() = 0;
virtual bool shouldRestart(int statusCode) = 0;
virtual const std::list<int>& files() const = 0;
virtual int32_t allocDescriptor() = 0;
};

class DobbyContainer {
Expand Down Expand Up @@ -77,6 +78,7 @@ class DobbyContainer {
void setRestartOnCrash(const std::list<int>& files);
void clearRestartOnCrash();
const std::list<int>& files() const;
static int32_t allocDescriptor();
};

#endif // DOBBYCONTAINER_H
Expand Down
19 changes: 17 additions & 2 deletions unit_tests/L1_testing/mocks/DobbyContainerMock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,24 @@ DobbyContainer::DobbyContainer(): descriptor(0)
{
}

DobbyContainer::DobbyContainer(const std::shared_ptr<const DobbyBundle>& _bundle,const std::shared_ptr<const DobbyConfig>& _config,const std::shared_ptr<const DobbyRootfs>& _rootfs):descriptor(0)
DobbyContainer::DobbyContainer(const std::shared_ptr<const DobbyBundle>& _bundle,
const std::shared_ptr<const DobbyConfig>& _config,
const std::shared_ptr<const DobbyRootfs>& _rootfs)
: descriptor(allocDescriptor())
, bundle(_bundle)
, config(_config)
, rootfs(_rootfs)
, containerPid(-1)
, hasCurseOfDeath(false)
, state(State::Starting)
{
}

DobbyContainer::DobbyContainer(const std::shared_ptr<const DobbyBundle>& _bundle,
const std::shared_ptr<const DobbyConfig>& _config,
const std::shared_ptr<const DobbyRootfs>& _rootfs,
const std::shared_ptr<const DobbyRdkPluginManager>& _rdkPluginManager)
: descriptor(0)
: descriptor(allocDescriptor())
, bundle(_bundle)
, config(_config)
, rootfs(_rootfs)
Expand Down Expand Up @@ -90,3 +99,9 @@ const std::list<int>& DobbyContainer::files() const
return impl->files();
}

int32_t DobbyContainer::allocDescriptor()
{
EXPECT_NE(impl, nullptr);

return impl->allocDescriptor();
}
1 change: 1 addition & 0 deletions unit_tests/L1_testing/mocks/DobbyContainerMock.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,5 @@ class DobbyContainerMock : public DobbyContainerImpl {
MOCK_METHOD(void, clearRestartOnCrash, (), (override));
MOCK_METHOD(bool, shouldRestart, (int statusCode), (override));
MOCK_METHOD((const std::list<int>&), files, (), (const, override));
MOCK_METHOD(int32_t, allocDescriptor, (), (override));
};
13 changes: 8 additions & 5 deletions unit_tests/L1_testing/mocks/DobbyEnv.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ class DobbyEnvImpl {
virtual std::string flashMountPath() const = 0;
virtual std::string pluginsWorkspacePath() const = 0;
virtual uint16_t platformIdent() const = 0;
virtual std::string cgroupMountPath(IDobbyEnv::Cgroup cgroup) const = 0;
};

class DobbyEnv {
class DobbyEnv : public IDobbyEnv{

protected:
static DobbyEnvImpl* impl;
Expand All @@ -48,10 +49,12 @@ class DobbyEnv {
DobbyEnv(const std::shared_ptr<const IDobbySettings>& settings);
static void setImpl(DobbyEnvImpl* newImpl);
static DobbyEnv* getInstance();
std::string workspaceMountPath() const;
std::string flashMountPath() const;
std::string pluginsWorkspacePath() const;
uint16_t platformIdent() const;
std::string workspaceMountPath() const override;
std::string flashMountPath() const override;
std::string pluginsWorkspacePath() const override;
uint16_t platformIdent() const override;
std::string cgroupMountPath(Cgroup cgroup) const override;

};

#endif // !defined(DOBBYENV_H)
8 changes: 8 additions & 0 deletions unit_tests/L1_testing/mocks/DobbyEnvMock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,11 @@ uint16_t DobbyEnv::platformIdent() const

return impl->platformIdent();
}

std::string DobbyEnv::cgroupMountPath(IDobbyEnv::Cgroup cgroup) const
{
EXPECT_NE(impl, nullptr);

return impl->cgroupMountPath(cgroup);
}

4 changes: 1 addition & 3 deletions unit_tests/L1_testing/mocks/DobbyEnvMock.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,13 @@ class DobbyEnvMock : public DobbyEnvImpl {

public:

DobbyEnvMock(const std::shared_ptr<const IDobbySettings>& settings)
: mSettings(settings) {}

virtual ~DobbyEnvMock() = default;

MOCK_METHOD(std::string, workspaceMountPath, (), (const,override));
MOCK_METHOD(std::string, flashMountPath, (), (const,override));
MOCK_METHOD(std::string, pluginsWorkspacePath, (), (const,override));
MOCK_METHOD(uint16_t, platformIdent, (), (const,override));
MOCK_METHOD(std::string ,cgroupMountPath, (IDobbyEnv::Cgroup cgroup), (const,override));

private:
const std::shared_ptr<const IDobbySettings> mSettings;
Expand Down
27 changes: 23 additions & 4 deletions unit_tests/L1_testing/mocks/DobbyIPCUtils.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,29 @@
#define DOBBYIPCUTILS_H

#include <IIpcService.h>

#include "IDobbyIPCUtils.h"
#include <map>
#include <mutex>
#include <functional>


class DobbyIPCUtilsImpl
{
public:
virtual bool setAIDbusAddress(bool privateBus, const std::string &address) = 0;
public:
virtual bool setAIDbusAddress(bool privateBus, const std::string &address) = 0;
virtual std::shared_ptr<AI_IPC::IAsyncReplyGetter> ipcInvokeMethod(const IDobbyIPCUtils::BusType &bus,const AI_IPC::Method &method,const AI_IPC::VariantList &args,int timeoutMs) const = 0;
virtual bool ipcInvokeMethod(const IDobbyIPCUtils::BusType &bus,const AI_IPC::Method &method,const AI_IPC::VariantList &args,AI_IPC::VariantList &replyArgs) const = 0;
virtual bool ipcEmitSignal(const IDobbyIPCUtils::BusType &bus,const AI_IPC::Signal &signal,const AI_IPC::VariantList &args) const = 0;
virtual bool ipcServiceAvailable(const IDobbyIPCUtils::BusType &bus,const std::string &serviceName) const = 0;
virtual int ipcRegisterServiceHandler(const IDobbyIPCUtils::BusType &bus,const std::string &serviceName,const std::function<void(bool)> &handlerFunc) = 0;
virtual int ipcRegisterSignalHandler(const IDobbyIPCUtils::BusType &bus,const AI_IPC::Signal &signal,const AI_IPC::SignalHandler &handlerFunc) = 0;
virtual void ipcUnregisterHandler(const IDobbyIPCUtils::BusType &bus, int handlerId) = 0;
virtual std::string ipcDbusAddress(const IDobbyIPCUtils::BusType &bus) const = 0;
virtual std::string ipcDbusSocketPath(const IDobbyIPCUtils::BusType &bus) const = 0;

};

class DobbyIPCUtils
class DobbyIPCUtils : public IDobbyIPCUtils
{

protected:
Expand All @@ -47,6 +57,15 @@ class DobbyIPCUtils
static void setImpl(DobbyIPCUtilsImpl* newImpl);
static DobbyIPCUtils* getInstance();
bool setAIDbusAddress(bool privateBus, const std::string &address);
std::shared_ptr<AI_IPC::IAsyncReplyGetter> ipcInvokeMethod(const BusType &bus,const AI_IPC::Method &method,const AI_IPC::VariantList &args,int timeoutMs) const override;
bool ipcInvokeMethod(const BusType &bus,const AI_IPC::Method &method,const AI_IPC::VariantList &args,AI_IPC::VariantList &replyArgs) const override;
bool ipcEmitSignal(const BusType &bus,const AI_IPC::Signal &signal,const AI_IPC::VariantList &args) const override;
bool ipcServiceAvailable(const BusType &bus,const std::string &serviceName) const override;
int ipcRegisterServiceHandler(const BusType &bus,const std::string &serviceName,const std::function<void(bool)> &handlerFunc) override;
int ipcRegisterSignalHandler(const BusType &bus,const AI_IPC::Signal &signal,const AI_IPC::SignalHandler &handlerFunc) override;
void ipcUnregisterHandler(const BusType &bus, int handlerId) override;
std::string ipcDbusAddress(const BusType &bus) const override;
std::string ipcDbusSocketPath(const BusType &bus) const override;
};

#endif
Loading