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

iox-#1196 Introduce and fix warnings in posh tests #1455

Merged
Show file tree
Hide file tree
Changes from 1 commit
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
8 changes: 0 additions & 8 deletions iceoryx_posh/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,5 @@ iox_add_executable( TARGET ${PROJECT_PREFIX}_integrationtests
${TESTUTILS_SRC}
)

# TODO: iox-#1287 fix conversion warnings
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set(TEST_CXX_FLAGS ${ICEORYX_WARNINGS} /bigobj)
else()
set(TEST_CXX_FLAGS PRIVATE ${ICEORYX_WARNINGS} ${ICEORYX_SANITIZER_FLAGS} -Wno-pedantic -Wno-conversion)
endif()

target_compile_options(${PROJECT_PREFIX}_moduletests PRIVATE ${TEST_CXX_FLAGS})
target_compile_options(${PROJECT_PREFIX}_integrationtests PRIVATE ${TEST_CXX_FLAGS})
# TODO: END iox-#1287 fix conversion warnings
3 changes: 2 additions & 1 deletion iceoryx_posh/test/integrationtests/test_client_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,8 @@ TEST_F(ClientServer_test, SlowServerDoesNotBlockClient)
Server<DummyRequest, DummyResponse> server{sd, serverOptions};

// send request till queue overflows
for (uint64_t i = 0; i < serverOptions.requestQueueCapacity + NUMBER_OF_OVERFLOWS; ++i)
const int64_t iMax = static_cast<int64_t>(serverOptions.requestQueueCapacity) + NUMBER_OF_OVERFLOWS;
MatthiasKillat marked this conversation as resolved.
Show resolved Hide resolved
for (int64_t i = 0; i < iMax; ++i)
{
auto loanResult = client.loan();
ASSERT_FALSE(loanResult.has_error());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ TEST_F(PublisherSubscriberCommunication_test, SendingComplexDataType_optional)
TEST_F(PublisherSubscriberCommunication_test, SendingComplexDataType_stack)
{
::testing::Test::RecordProperty("TEST_ID", "c378e0db-d863-4cad-9efa-4daec364b266");
using Type_t = ComplexDataType<stack<int64_t, 10>>;
using Type_t = ComplexDataType<stack<uint64_t, 10>>;
auto publisher = createPublisher<Type_t>();
this->InterOpWait();
auto subscriber = createSubscriber<Type_t>();
Expand All @@ -427,7 +427,7 @@ TEST_F(PublisherSubscriberCommunication_test, SendingComplexDataType_stack)
sample->someNumber = 41231;
for (uint64_t i = 0U; i < 10U; ++i)
{
sample->complexType.push(i + 123);
sample->complexType.push(i + 123U);
}
sample.publish();
})
Expand Down
14 changes: 14 additions & 0 deletions iceoryx_posh/test/integrationtests/test_service_discovery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,14 @@ struct ReqRes
};

using CommunicationKind = Types<PubSub, ReqRes>;
#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
TYPED_TEST_SUITE(ServiceDiscovery_test, CommunicationKind);
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

//
// Built-in topics can be found
Expand Down Expand Up @@ -783,7 +790,14 @@ using TestVariations = Types<PS_SIE,
// note that testing all variations is costly but ensures coverage of every
// combination of wildcards, communication type and many equivalence classes
// of a search setup, i.e. the existing services in the system
#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
TYPED_TEST_SUITE(ServiceDiscoveryFindService_test, TestVariations);
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

// *************************************************************************************************
// All tests run for publishers and servers as well as all 8 search variations.
Expand Down
7 changes: 7 additions & 0 deletions iceoryx_posh/test/mocks/base_port_mock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,19 @@ class MockBasePort
return *this;
}

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(const iox::capro::ServiceDescription&, getCaProServiceDescription, (), (const, noexcept));
MOCK_METHOD(const iox::RuntimeName_t&, getRuntimeName, (), (const, noexcept));
MOCK_METHOD(iox::popo::UniquePortId, getUniqueID, (), (const, noexcept));
MOCK_METHOD(const iox::NodeName_t&, getNodeName, (), (const, noexcept));
MOCK_METHOD(void, destroy, (), (noexcept));
MOCK_METHOD(bool, toBeDestroyed, (), (const, noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

explicit operator bool() const
{
Expand Down
14 changes: 14 additions & 0 deletions iceoryx_posh/test/mocks/client_mock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ class MockClientPortUser : public MockBasePort
return *this;
}

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD((iox::cxx::expected<iox::popo::RequestHeader*, iox::popo::AllocationError>),
allocateRequest,
(const uint32_t, const uint32_t),
Expand All @@ -69,6 +73,9 @@ class MockClientPortUser : public MockBasePort
MOCK_METHOD(void, setConditionVariable, (iox::popo::ConditionVariableData&, const uint64_t), (noexcept));
MOCK_METHOD(void, unsetConditionVariable, (), (noexcept));
MOCK_METHOD(bool, isConditionVariableSet, (), (const, noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif
};

class MockBaseClient
Expand All @@ -82,6 +89,10 @@ class MockBaseClient
{
}

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(iox::popo::uid_t, getUid, (), (const, noexcept));
MOCK_METHOD(const iox::capro::ServiceDescription&, getServiceDescription, (), (const, noexcept));
MOCK_METHOD(void, connect, (), (noexcept));
Expand All @@ -100,6 +111,9 @@ class MockBaseClient
MOCK_METHOD(void, disableState, (const iox::popo::ClientState), (noexcept));
MOCK_METHOD(void, enableEvent, (iox::popo::TriggerHandle&&, const iox::popo::ClientEvent), (noexcept));
MOCK_METHOD(void, disableEvent, (const iox::popo::ClientEvent), (noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif


const PortType& port() const noexcept
Expand Down
7 changes: 7 additions & 0 deletions iceoryx_posh/test/mocks/roudi_memory_block_mock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,17 @@
class MemoryBlockMock final : public iox::roudi::MemoryBlock
{
public:
#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(uint64_t, size, (), (const, noexcept, override));
MOCK_METHOD(uint64_t, alignment, (), (const, noexcept, override));
MOCK_METHOD(void, onMemoryAvailable, (iox::cxx::not_null<void*>), (noexcept, override));
MOCK_METHOD(void, destroy, (), (noexcept, override));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif
};

#endif // IOX_POSH_MOCKS_ROUDI_MEMORY_BLOCK_MOCK_HPP
14 changes: 14 additions & 0 deletions iceoryx_posh/test/mocks/roudi_memory_provider_mock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,14 @@ class MemoryProviderTestImpl : public iox::roudi::MemoryProvider
dummyMemory = static_cast<uint8_t*>(iox::cxx::alignedAlloc(alignment, size));
return iox::cxx::success<void*>(dummyMemory);
}
#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(void, createMemoryMock, (uint64_t, uint64_t), (noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

iox::cxx::expected<iox::roudi::MemoryProviderError> destroyMemory() noexcept override
{
Expand All @@ -63,7 +70,14 @@ class MemoryProviderTestImpl : public iox::roudi::MemoryProvider

return iox::cxx::success<void>();
}
#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(void, destroyMemoryMock, (), (noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

uint8_t* dummyMemory{nullptr};

Expand Down
14 changes: 14 additions & 0 deletions iceoryx_posh/test/mocks/server_mock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ class MockServerPortUser : public MockBasePort
return *this;
}

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD((iox::cxx::expected<const iox::popo::RequestHeader*, iox::popo::ServerRequestResult>),
getRequest,
(),
Expand All @@ -70,6 +74,9 @@ class MockServerPortUser : public MockBasePort
MOCK_METHOD(void, setConditionVariable, (iox::popo::ConditionVariableData&, const uint64_t), (noexcept));
MOCK_METHOD(void, unsetConditionVariable, (), (noexcept));
MOCK_METHOD(bool, isConditionVariableSet, (), (const, noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif
};

class MockBaseServer
Expand All @@ -83,6 +90,10 @@ class MockBaseServer
{
}

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(iox::popo::uid_t, getUid, (), (const, noexcept));
MOCK_METHOD(const iox::capro::ServiceDescription&, getServiceDescription, (), (const, noexcept));
MOCK_METHOD(void, offer, (), (noexcept));
Expand All @@ -102,6 +113,9 @@ class MockBaseServer
MOCK_METHOD(void, disableState, (const iox::popo::ServerState), (noexcept));
MOCK_METHOD(void, enableEvent, (iox::popo::TriggerHandle&&, const iox::popo::ServerEvent), (noexcept));
MOCK_METHOD(void, disableEvent, (const iox::popo::ServerEvent), (noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif


const PortType& port() const noexcept
Expand Down
14 changes: 14 additions & 0 deletions iceoryx_posh/test/mocks/trigger_handle_mock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,34 @@ class MockTriggeHandle
return *this;
}

#ifdef __clang__
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The more I see this #pragma sequence the more I think we should define some abbreviation macro for this (or let the compiler ignore it on a global level if possible. Can be decided in a separate PR though, fine for now.

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(bool, isValid, (), (const, noexcept));
MOCK_METHOD(bool, wasTriggered, (), (const, noexcept));
MOCK_METHOD(void, trigger, (), (noexcept));
MOCK_METHOD(void, reset, (), (noexcept));
MOCK_METHOD(void, invalidate, (), (noexcept));
MOCK_METHOD(uint64_t, getUniqueId, (), (const, noexcept));
MOCK_METHOD(iox::popo::ConditionVariableData*, getConditionVariableData, (), (noexcept));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

explicit operator bool() const
{
return operatorBoolMock();
}

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
MOCK_METHOD(bool, operatorBoolMock, (), (const));
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

uint64_t triggerId{0};
};
Expand Down
7 changes: 7 additions & 0 deletions iceoryx_posh/test/moduletests/test_base_port.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,14 @@ std::vector<UniquePortId> uniquePortIds;
using PortDataTypes =
Types<BasePortData, PublisherPortData, SubscriberPortData, ClientPortData, ServerPortData, InterfacePortData>;

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#endif
TYPED_TEST_SUITE(BasePort_test, PortDataTypes);
#ifdef __clang__
#pragma GCC diagnostic pop
#endif

// port data factories

Expand Down
38 changes: 20 additions & 18 deletions iceoryx_posh/test/moduletests/test_fixed_size_container.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,27 +115,29 @@ TEST_F(FixedSizeContainer_test, removeAndSizeMultiElementContainer)

for (uint32_t k = 0; k < capacity; ++k)
{
container.remove(k);
container.remove(static_cast<index_t>(k));
EXPECT_THAT(container.size(), Eq(capacity - k - 1));
}

for (uint32_t k = 0; k < capacity; ++k)
{
container.add(12);
container.add(12);
container.remove(k);
container.remove(static_cast<index_t>(k));
container.add(12);

size_t newSize = 2 * (k + 1);
if (newSize > 100)
{
newSize = 100;
}

EXPECT_THAT(container.size(), Eq(newSize));
}

for (uint32_t k = 0; k < capacity; ++k)
{
container.remove(k);
container.remove(static_cast<index_t>(k));
EXPECT_THAT(container.size(), Eq(capacity - k - 1));
}
}
Expand All @@ -156,22 +158,22 @@ TEST_F(FixedSizeContainer_test, addAndVerifySingleElementContainer)
TEST_F(FixedSizeContainer_test, addAndVerifyMultiElementContainer)
{
::testing::Test::RecordProperty("TEST_ID", "de654427-1873-4583-b6a6-117869ca86f0");
constexpr size_t capacity = 25;
constexpr uint32_t capacity = 25;
FixedSizeContainer<size_t, capacity> container;

for (size_t i = 0; i < capacity; ++i)
for (uint32_t i = 0; i < capacity; ++i)
{
for (size_t k = i; k < capacity; ++k)
for (uint32_t k = i; k < capacity; ++k)
{
EXPECT_THAT(container.get(k), Eq(nullptr));
EXPECT_THAT(container.get(static_cast<index_t>(k)), Eq(nullptr));
}

container.add(2 * i + 1);

for (size_t k = 0; k < i; ++k)
for (uint32_t k = 0; k < i; ++k)
{
EXPECT_THAT(*container.get(k), Eq(2 * k + 1));
EXPECT_THAT(container[k], Eq(2 * k + 1));
EXPECT_THAT(*container.get(static_cast<index_t>(k)), Eq(2 * k + 1));
EXPECT_THAT(container[static_cast<index_t>(k)], Eq(2 * k + 1));
}
}
}
Expand All @@ -191,23 +193,23 @@ TEST_F(FixedSizeContainer_test, removeAndVerifySingleElementContainer)
TEST_F(FixedSizeContainer_test, removeAndVerifyMultiElementContainer)
{
::testing::Test::RecordProperty("TEST_ID", "ad112c45-1166-41f9-8cd0-af604677957f");
constexpr size_t capacity = 25;
constexpr uint32_t capacity = 25;
FixedSizeContainer<size_t, capacity> container;
for (size_t i = 0; i < capacity; ++i)
for (uint32_t i = 0; i < capacity; ++i)
{
container.add(5 * i + 12);
}

for (size_t i = 0; i < capacity; ++i)
for (uint32_t i = 0; i < capacity; ++i)
{
for (size_t k = 0; k < i; ++k)
for (uint32_t k = 0; k < i; ++k)
{
EXPECT_THAT(container.get(k), Eq(nullptr));
EXPECT_THAT(container.get(static_cast<index_t>(k)), Eq(nullptr));
}
container.remove(i);
for (size_t k = i + 1; k < capacity; ++k)
container.remove(static_cast<index_t>(i));
for (uint32_t k = i + 1; k < capacity; ++k)
{
EXPECT_THAT(*container.get(k), Eq(5 * k + 12));
EXPECT_THAT(*container.get(static_cast<index_t>(k)), Eq(5 * k + 12));
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_posh/test/moduletests/test_mq_message.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ TEST_F(IpcMessage_test, CTorWithInitializerList_validEntries)
IpcMessage message3({"", "", ""});
EXPECT_THAT(message3.isValid(), Eq(true));
EXPECT_THAT(message3.getNumberOfElements(), Eq(3u));
for (int i = 0; i < 3; ++i)
for (uint16_t i = 0; i < 3; ++i)
MatthiasKillat marked this conversation as resolved.
Show resolved Hide resolved
{
EXPECT_THAT(message3.getElementAtIndex(i), Eq(""));
}
Expand Down
Loading