Skip to content

Commit

Permalink
iox-#2330 Add module tests for RoudiSystemManager
Browse files Browse the repository at this point in the history
Introduce tests to verify the functionality of RoudiSystemManager
  • Loading branch information
khromenokroman committed Sep 1, 2024
1 parent 11eb857 commit b6ab141
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions iceoryx_posh/test/moduletests/test_roudi_system_manager.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#include "iceoryx_posh/internal/roudi/roudi.hpp"
#include <gtest/gtest.h>

TEST(RoudiSystemD, CreateObject)
{
::testing::Test::RecordProperty("TEST_ID", "aa77b5f6-ffb3-4267-982d-dfe85da384ca");
std::unique_ptr<iox::roudi::service_management::ServiceManagementSystemd> roudiSendMessage;
ASSERT_NO_THROW(std::make_unique<iox::roudi::service_management::ServiceManagementSystemd>());
}

TEST(RoudiSystemD, CheckConstantsSizeThreadName)
{
::testing::Test::RecordProperty("TEST_ID", "9c39f45c-a63c-43ec-9606-e50c33247b3f");
std::unique_ptr<iox::roudi::service_management::ServiceManagementSystemd> roudiSendMessage;
ASSERT_NO_THROW(std::make_unique<iox::roudi::service_management::ServiceManagementSystemd>());
ASSERT_EQ(roudiSendMessage->SIZE_THREAD_NAME, 15) << "Size thread must equal 15 simbols";
}

TEST(RoudiSystemD, CheckConstantsSizeString)
{
::testing::Test::RecordProperty("TEST_ID", "0b3e3058-6052-49cc-8a67-723f3775a745");
std::unique_ptr<iox::roudi::service_management::ServiceManagementSystemd> roudiSendMessage;
ASSERT_NO_THROW(std::make_unique<iox::roudi::service_management::ServiceManagementSystemd>());
ASSERT_EQ(roudiSendMessage->SIZE_STRING, 4096) << "Size string must equal 4096 simbols";
}

TEST(RoudiSystemD, SetThreadNameHelper)
{
::testing::Test::RecordProperty("TEST_ID", "b9ff9e83-9dde-4221-bd1e-c1016ec2d5ff");
std::unique_ptr<iox::roudi::service_management::ServiceManagementSystemd> roudiSendMessage;
bool result = false;

ASSERT_NO_THROW(std::make_unique<iox::roudi::service_management::ServiceManagementSystemd>());
iox::string<iox::roudi::service_management::ServiceManagementSystemd::SIZE_THREAD_NAME> nameThread = "test";
ASSERT_NO_THROW(result = roudiSendMessage->setThreadNameHelper(nameThread));
ASSERT_EQ(result, true) << "Can not change name thread";
}

TEST(RoudiSystemD, GetEnvironmentVariableReturnsCorrectValue)
{
::testing::Test::RecordProperty("TEST_ID", "12dfa746-d1f1-4b4e-864d-2cb28ee49f70");
const char* const env_var_name = "TEST_ENV_VAR";
const char* const env_var_value = "test_value";

auto set_env = IOX_POSIX_CALL(setenv)(env_var_name, env_var_value, 1).failureReturnValue(-1).evaluate();
EXPECT_FALSE(set_env.has_error()) << "setenv failed with error: " << set_env.get_error().errnum;

iox::roudi::service_management::ServiceManagementSystemd sut;

std::string result = sut.getEnvironmentVariable(env_var_name);

EXPECT_EQ(result, env_var_value);
}

TEST(RoudiSystemD, GetEnvironmentVariableHandlesNonExistentVar)
{
::testing::Test::RecordProperty("TEST_ID", "9595728f-a504-46e3-8672-b074696326a4");
iox::roudi::service_management::ServiceManagementSystemd sut;

std::string result = sut.getEnvironmentVariable("NON_EXISTENT_VAR");

EXPECT_TRUE(result.empty());
}

0 comments on commit b6ab141

Please sign in to comment.