From cb2cb55b0ffbdd55c45708d5f9100172d8be9df2 Mon Sep 17 00:00:00 2001 From: Thomas Herrmann Date: Wed, 8 Jan 2025 13:42:57 +0100 Subject: [PATCH] Remove support of legacy API from asyncFreeRtos * Remove (conditional) references from asyncFreeRtos to former modules looper and commonTimeout * Remove legacy module commonTimeout Change-Id: Ibc9342a09992fe3105e4ce47a72f93102889d1f2 --- .../include/os/FreeRtosPlatformConfig.h | 10 -- .../include/os/FreeRtosPlatformConfig.h | 8 - executables/unitTest/common/CMakeLists.txt | 2 +- libs/bsw/CMakeLists.txt | 1 - libs/bsw/asyncFreeRtos/CMakeLists.txt | 5 - .../include/async/FreeRtosAdapter.h | 68 -------- libs/bsw/asyncFreeRtos/include/async/Legacy.h | 28 --- libs/bsw/asyncFreeRtos/src/async/Legacy.cpp | 20 --- .../asyncFreeRtos/test/gtest/CMakeLists.txt | 1 - .../test/gtest/src/async/AsyncTest.cpp | 1 - .../gtest/src/async/FreeRtosAdapterTest.cpp | 15 -- .../test/gtest/src/async/LegacyTest.cpp | 30 ---- libs/bsw/commonTimeout/CMakeLists.txt | 14 -- libs/bsw/commonTimeout/doc/index.rst | 10 -- .../include/util/timeout/AbstractTimeout.h | 68 -------- .../util/timeout/AsyncTimeoutManager.h | 40 ----- .../util/timeout/AbstractTimeoutMock.h | 19 --- .../util/timeout/TimeoutManager2Mock.h | 92 ---------- libs/bsw/commonTimeout/module.spec | 1 - .../src/util/timeout/AbstractTimeout.cpp | 59 ------- .../src/util/timeout/AsyncTimeoutManager.cpp | 49 ------ .../src/util/timeout/AbstractTimeoutTest.cpp | 159 ------------------ .../util/timeout/AsyncTimeoutManagerTest.cpp | 105 ------------ libs/bsw/uds/CMakeLists.txt | 1 - libs/bsw/uds/test/gtest/CMakeLists.txt | 1 - 25 files changed, 1 insertion(+), 806 deletions(-) delete mode 100644 libs/bsw/asyncFreeRtos/include/async/Legacy.h delete mode 100644 libs/bsw/asyncFreeRtos/src/async/Legacy.cpp delete mode 100644 libs/bsw/asyncFreeRtos/test/gtest/src/async/LegacyTest.cpp delete mode 100644 libs/bsw/commonTimeout/CMakeLists.txt delete mode 100644 libs/bsw/commonTimeout/doc/index.rst delete mode 100644 libs/bsw/commonTimeout/include/util/timeout/AbstractTimeout.h delete mode 100644 libs/bsw/commonTimeout/include/util/timeout/AsyncTimeoutManager.h delete mode 100644 libs/bsw/commonTimeout/mock/include/util/timeout/AbstractTimeoutMock.h delete mode 100644 libs/bsw/commonTimeout/mock/include/util/timeout/TimeoutManager2Mock.h delete mode 100644 libs/bsw/commonTimeout/module.spec delete mode 100644 libs/bsw/commonTimeout/src/util/timeout/AbstractTimeout.cpp delete mode 100644 libs/bsw/commonTimeout/src/util/timeout/AsyncTimeoutManager.cpp delete mode 100644 libs/bsw/commonTimeout/test/gtest/src/util/timeout/AbstractTimeoutTest.cpp delete mode 100644 libs/bsw/commonTimeout/test/gtest/src/util/timeout/AsyncTimeoutManagerTest.cpp diff --git a/executables/referenceApp/platforms/posix/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h b/executables/referenceApp/platforms/posix/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h index edd0b86a05..83dd3a7bd6 100644 --- a/executables/referenceApp/platforms/posix/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h +++ b/executables/referenceApp/platforms/posix/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h @@ -12,16 +12,6 @@ extern "C" #undef configCHECK_FOR_STACK_OVERFLOW #define configCHECK_FOR_STACK_OVERFLOW 2 // change from 1 in order to watermark check boundaries -// Disable legacy support for async - -#ifndef ASYNC_LOOPER_DISABLE -#define ASYNC_LOOPER_DISABLE 1 -#endif // ASYNC_LOOPER_DISABLE - -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE -#define ASYNC_TIMEOUTMANAGER2_DISABLE 1 -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - #ifndef MINIMUM_STACK_SIZE #define EXTRA_THREAD_DATA_STACK_SIZE 40U // see pxPortInitialiseStack() #if (defined(_DYNAMIC_STACK_SIZE_SOURCE)) || (defined(_GNU_SOURCE)) diff --git a/executables/referenceApp/platforms/s32k148evb/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h b/executables/referenceApp/platforms/s32k148evb/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h index c236def3aa..126cc94b37 100644 --- a/executables/referenceApp/platforms/s32k148evb/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h +++ b/executables/referenceApp/platforms/s32k148evb/freeRtosCoreConfiguration/include/os/FreeRtosPlatformConfig.h @@ -136,14 +136,6 @@ standard names. */ #define configTIMER_SERVICE_TASK_NAME "TIMER_OS" -#ifndef ASYNC_LOOPER_DISABLE -#define ASYNC_LOOPER_DISABLE 1 -#endif // ASYNC_LOOPER_DISABLE - -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE -#define ASYNC_TIMEOUTMANAGER2_DISABLE 1 -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/executables/unitTest/common/CMakeLists.txt b/executables/unitTest/common/CMakeLists.txt index fea7e5a536..28f7c7e1ce 100644 --- a/executables/unitTest/common/CMakeLists.txt +++ b/executables/unitTest/common/CMakeLists.txt @@ -2,7 +2,7 @@ add_library(utCommon src/util/EcuIdList.cpp src/util/crc/CRCCalculator.cpp) target_include_directories(utCommon PUBLIC include test/gtest/include) -target_link_libraries(utCommon PUBLIC estd platform commonTimeout) +target_link_libraries(utCommon PUBLIC estd platform) if (BUILD_UNIT_TESTS) add_library(utCommonMock INTERFACE) diff --git a/libs/bsw/CMakeLists.txt b/libs/bsw/CMakeLists.txt index 5ff9edd72d..28ad803b61 100644 --- a/libs/bsw/CMakeLists.txt +++ b/libs/bsw/CMakeLists.txt @@ -4,7 +4,6 @@ add_subdirectory(asyncFreeRtos EXCLUDE_FROM_ALL) add_subdirectory(asyncImpl EXCLUDE_FROM_ALL) add_subdirectory(bsp EXCLUDE_FROM_ALL) add_subdirectory(common EXCLUDE_FROM_ALL) -add_subdirectory(commonTimeout EXCLUDE_FROM_ALL) add_subdirectory(cpp2can EXCLUDE_FROM_ALL) add_subdirectory(docan EXCLUDE_FROM_ALL) add_subdirectory(estd EXCLUDE_FROM_ALL) diff --git a/libs/bsw/asyncFreeRtos/CMakeLists.txt b/libs/bsw/asyncFreeRtos/CMakeLists.txt index 635c1e6b1e..bc8ce44c66 100644 --- a/libs/bsw/asyncFreeRtos/CMakeLists.txt +++ b/libs/bsw/asyncFreeRtos/CMakeLists.txt @@ -16,7 +16,6 @@ add_library( src/async/Async.cpp src/async/FutureSupport.cpp src/async/Hook.cpp - src/async/Legacy.cpp src/async/Types.cpp) target_include_directories(asyncFreeRtosImpl PRIVATE include) @@ -37,10 +36,6 @@ target_link_libraries( if (BUILD_UNIT_TESTS) # These compile definitions apply to all unit test - target_compile_definitions( - asyncFreeRtos INTERFACE ASYNC_LOOPER_DISABLE - ASYNC_TIMEOUTMANAGER2_DISABLE) - add_library(asyncBinding INTERFACE) target_include_directories(asyncBinding INTERFACE test/include) diff --git a/libs/bsw/asyncFreeRtos/include/async/FreeRtosAdapter.h b/libs/bsw/asyncFreeRtos/include/async/FreeRtosAdapter.h index fe7eb780be..45e5f9682b 100644 --- a/libs/bsw/asyncFreeRtos/include/async/FreeRtosAdapter.h +++ b/libs/bsw/asyncFreeRtos/include/async/FreeRtosAdapter.h @@ -9,14 +9,6 @@ #include "async/TaskContext.h" #include "async/TaskInitializer.h" -#ifndef ASYNC_LOOPER_DISABLE -#include -#endif // ASYNC_LOOPER_DISABLE - -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE -#include -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - #include #include @@ -131,27 +123,6 @@ class FreeRtosAdapter static ContextType getCurrentTaskContext(); -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE - /** - * Retrieves the timeout manager for a given context. - * - * \param context The task context. - * \return A reference to the timeout manager. - */ - static ::common::ITimeoutManager2& getTimeoutManager(ContextType context); -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - -#ifndef ASYNC_LOOPER_DISABLE - /** - * Retrieves the looper for a given context. - * - * \param context The task context. - * \return A reference to the looper. - */ - static ::loop::looper& getLooper(ContextType context); -#endif // ASYNC_LOOPER_DISABLE - - /// Initializes the FreeRTOS adapter and associated tasks. static void init(); /// Starts the FreeRTOS scheduler. @@ -244,12 +215,6 @@ class FreeRtosAdapter static TaskInitializer* _idleTaskInitializer; static TaskInitializer* _timerTaskInitializer; static ::estd::array _taskContexts; -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE - static ::estd::array<::common::AsyncTimeoutManager, TASK_COUNT> _timeoutManagers; -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE -#ifndef ASYNC_LOOPER_DISABLE - static ::estd::array<::loop::looper, TASK_COUNT> _loopers; -#endif // ASYNC_LOOPER_DISABLE static ::estd::array _stackSizes; static char const* _timerTaskName; static BaseType_t _higherPriorityTaskWokenFlag; @@ -270,16 +235,6 @@ template ::estd:: array::TaskContextType, FreeRtosAdapter::TASK_COUNT> FreeRtosAdapter::_taskContexts; -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE -template -::estd::array<::common::AsyncTimeoutManager, FreeRtosAdapter::TASK_COUNT> - FreeRtosAdapter::_timeoutManagers; -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE -#ifndef ASYNC_LOOPER_DISABLE -template -::estd::array<::loop::looper, FreeRtosAdapter::TASK_COUNT> - FreeRtosAdapter::_loopers; -#endif // ASYNC_LOOPER_DISABLE template ::estd::array::FREERTOS_TASK_COUNT> FreeRtosAdapter::_stackSizes; @@ -379,12 +334,6 @@ void FreeRtosAdapter::initTask( { TaskContextType& taskContext = _taskContexts[static_cast(context)]; taskContext.createTimer(timer, name); -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE - _timeoutManagers[static_cast(context)].init(context); -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE -#ifndef ASYNC_LOOPER_DISABLE - _loopers[static_cast(context)].init(context); -#endif // ASYNC_LOOPER_DISABLE } template @@ -467,23 +416,6 @@ inline void FreeRtosAdapter::cancel(TimeoutType& timeout) } } -#ifndef ASYNC_LOOPER_DISABLE -template -::loop::looper& FreeRtosAdapter::getLooper(ContextType const context) -{ - return _loopers[static_cast(context)]; -} -#endif // ASYNC_LOOPER_DISABLE - -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE -template -inline ::common::ITimeoutManager2& -FreeRtosAdapter::getTimeoutManager(ContextType const context) -{ - return _timeoutManagers[static_cast(context)]; -} -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - template inline BaseType_t* FreeRtosAdapter::getHigherPriorityTaskWoken() { diff --git a/libs/bsw/asyncFreeRtos/include/async/Legacy.h b/libs/bsw/asyncFreeRtos/include/async/Legacy.h deleted file mode 100644 index 414fa3435d..0000000000 --- a/libs/bsw/asyncFreeRtos/include/async/Legacy.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2024 Accenture. - -/** - * \ingroup async - */ -#ifndef GUARD_71FFB374_BE25_48D7_A2A7_947AA3BCD696 -#define GUARD_71FFB374_BE25_48D7_A2A7_947AA3BCD696 - -#include "async/Types.h" - -namespace common -{ -class ITimeoutManager2; -} - -namespace loop -{ -class looper; -} - -namespace async -{ -::common::ITimeoutManager2& getTimeoutManager(ContextType context); -::loop::looper& getLooper(ContextType context); - -} // namespace async - -#endif // GUARD_71FFB374_BE25_48D7_A2A7_947AA3BCD696 diff --git a/libs/bsw/asyncFreeRtos/src/async/Legacy.cpp b/libs/bsw/asyncFreeRtos/src/async/Legacy.cpp deleted file mode 100644 index d32ec69583..0000000000 --- a/libs/bsw/asyncFreeRtos/src/async/Legacy.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2024 Accenture. - -#include "async/AsyncBinding.h" - -namespace async -{ -using AdapterType = AsyncBindingType::AdapterType; - -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE -::common::ITimeoutManager2& getTimeoutManager(ContextType const context) -{ - return AdapterType::getTimeoutManager(context); -} -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - -#ifndef ASYNC_LOOPER_DISABLE -::loop::looper& getLooper(ContextType const context) { return AdapterType::getLooper(context); } -#endif // ASYNC_LOOPER_DISABLE - -} // namespace async diff --git a/libs/bsw/asyncFreeRtos/test/gtest/CMakeLists.txt b/libs/bsw/asyncFreeRtos/test/gtest/CMakeLists.txt index abf95f9fe9..60ba853482 100644 --- a/libs/bsw/asyncFreeRtos/test/gtest/CMakeLists.txt +++ b/libs/bsw/asyncFreeRtos/test/gtest/CMakeLists.txt @@ -3,7 +3,6 @@ add_executable( src/async/AsyncTest.cpp src/async/FreeRtosAdapterTest.cpp src/async/FutureSupportTest.cpp - src/async/LegacyTest.cpp src/async/LockTest.cpp src/async/ModifiableLockTest.cpp src/async/StaticRunnableTest.cpp diff --git a/libs/bsw/asyncFreeRtos/test/gtest/src/async/AsyncTest.cpp b/libs/bsw/asyncFreeRtos/test/gtest/src/async/AsyncTest.cpp index 69df090632..c1f18afd01 100644 --- a/libs/bsw/asyncFreeRtos/test/gtest/src/async/AsyncTest.cpp +++ b/libs/bsw/asyncFreeRtos/test/gtest/src/async/AsyncTest.cpp @@ -5,7 +5,6 @@ #include "async/AsyncBinding.h" #include "async/ContextHookMock.h" #include "async/Hook.h" -#include "async/Legacy.h" #include "async/RunnableMock.h" #include "async/TickHookMock.h" #include "async/TimeoutMock.h" diff --git a/libs/bsw/asyncFreeRtos/test/gtest/src/async/FreeRtosAdapterTest.cpp b/libs/bsw/asyncFreeRtos/test/gtest/src/async/FreeRtosAdapterTest.cpp index b3eb4837c8..7f93b96930 100644 --- a/libs/bsw/asyncFreeRtos/test/gtest/src/async/FreeRtosAdapterTest.cpp +++ b/libs/bsw/asyncFreeRtos/test/gtest/src/async/FreeRtosAdapterTest.cpp @@ -278,21 +278,6 @@ TEST_F(FreeRtosAdapterTest, testMinStackSize) EXPECT_THROW({ TaskType task("test"); }, ::estd::assert_exception); } -/** - * \refs: SMD_asyncFreeRtos_FreeRtosAdapterLegacy - * \desc: To test Timeout Manager and Looper - */ -TEST_F(FreeRtosAdapterTest, testGetTimeoutManagerAndLooper) -{ -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE - CutType::getTimeoutManager(1U); -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - -#ifndef ASYNC_LOOPER_DISABLE - CutType::getLooper(1U); -#endif // ASYNC_LOOPER_DISABLE} -} - /** * \refs: SMD_asyncFreeRtos_FreeRtosAdapterTimerTask * \desc: To test user defined config for tasks diff --git a/libs/bsw/asyncFreeRtos/test/gtest/src/async/LegacyTest.cpp b/libs/bsw/asyncFreeRtos/test/gtest/src/async/LegacyTest.cpp deleted file mode 100644 index b428991899..0000000000 --- a/libs/bsw/asyncFreeRtos/test/gtest/src/async/LegacyTest.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2024 Accenture. - -#include "async/Legacy.h" - -#include "async/Async.h" -#include "async/AsyncBinding.h" - -namespace -{ -using namespace ::async; -using namespace ::testing; - -using AdapterType = AsyncBindingType::AdapterType; - -/** - * \refs: SMD_asyncFreeRtos_FreeRtosAdapterLegacy - * \desc: To test Timeout Manager and Looper - */ -TEST(LegacyTest, testGetTimeoutManagerAndLooper) -{ -#ifndef ASYNC_TIMEOUTMANAGER2_DISABLE - EXPECT_EQ(&AdapterType::getTimeoutManager(1U), &getTimeoutManager(1U)); -#endif // ASYNC_TIMEOUTMANAGER2_DISABLE - -#ifndef ASYNC_LOOPER_DISABLE - EXPECT_EQ(&AdapterType::getLooper(1U), &getLooper(1U)); -#endif // ASYNC_LOOPER_DISABLE -} - -} // namespace diff --git a/libs/bsw/commonTimeout/CMakeLists.txt b/libs/bsw/commonTimeout/CMakeLists.txt deleted file mode 100644 index 01d54d3dc3..0000000000 --- a/libs/bsw/commonTimeout/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -add_library(commonTimeout src/util/timeout/AbstractTimeout.cpp - src/util/timeout/AsyncTimeoutManager.cpp) - -target_include_directories(commonTimeout PUBLIC include) - -target_link_libraries(commonTimeout PUBLIC async common estd) - -if (BUILD_UNIT_TESTS) - - add_library(commonTimeoutMock INTERFACE) - - target_include_directories(commonTimeoutMock INTERFACE mock/include) - -endif () diff --git a/libs/bsw/commonTimeout/doc/index.rst b/libs/bsw/commonTimeout/doc/index.rst deleted file mode 100644 index ff29933d91..0000000000 --- a/libs/bsw/commonTimeout/doc/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -commonTimeout -============= - -.. note:: - - The module **commonTimeout** is deprecated and **async** should be used. - -Overview --------- -The module **commonTimeout** provides implementation of a timeout mechanism. \ No newline at end of file diff --git a/libs/bsw/commonTimeout/include/util/timeout/AbstractTimeout.h b/libs/bsw/commonTimeout/include/util/timeout/AbstractTimeout.h deleted file mode 100644 index d20dc3216d..0000000000 --- a/libs/bsw/commonTimeout/include/util/timeout/AbstractTimeout.h +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2024 Accenture. - -#ifndef GUARD_229D2FB3_F055_4DC5_99DB_D6E35310F81B -#define GUARD_229D2FB3_F055_4DC5_99DB_D6E35310F81B - -#include "async/Types.h" - -#include - -#include - -namespace common -{ -/** - * Base class for timeout based action classes - * \note this base class can be used for software based timers - */ -class AbstractTimeout : public ::async::RunnableType -{ - UNCOPYABLE(AbstractTimeout); - -public: - class TimeoutExpiredActions - { - public: - explicit TimeoutExpiredActions(AbstractTimeout& timeout); - - TimeoutExpiredActions(TimeoutExpiredActions const& rhs); - - void reset(); - void reset(uint32_t newTimeout); - void cancel(); - - private: - AbstractTimeout& _timeout; - }; - - AbstractTimeout() = default; - - /** - * Callback that gets called once a set timeout expires. - * \param actions TimeoutExpiredActions that can be used to reset or - * cancel the current timeout. - * The parameter actions is passed by value on purpose! - * \note - * This callback is called from the ITimeoutManager2s task context - */ - virtual void expired(TimeoutExpiredActions actions) = 0; - - void execute() override; - - bool isActive() const; - - ::async::TimeoutType _asyncTimeout{}; - uint32_t _time = 0U; - ::async::ContextType _context = ::async::CONTEXT_INVALID; - bool _isCyclic = false; - bool _isActive = false; -}; - -inline bool operator==(AbstractTimeout const& lhs, AbstractTimeout const& rhs) -{ - return &lhs == &rhs; -} - -} // namespace common - -#endif /*GUARD_229D2FB3_F055_4DC5_99DB_D6E35310F81B*/ diff --git a/libs/bsw/commonTimeout/include/util/timeout/AsyncTimeoutManager.h b/libs/bsw/commonTimeout/include/util/timeout/AsyncTimeoutManager.h deleted file mode 100644 index 16860d4f46..0000000000 --- a/libs/bsw/commonTimeout/include/util/timeout/AsyncTimeoutManager.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2024 Accenture. - -#ifndef GUARD_881F73AF_B733_4944_92D6_A1CBEE933F4C -#define GUARD_881F73AF_B733_4944_92D6_A1CBEE933F4C - -#include "async/Types.h" -#include "util/timeout/ITimeoutManager2.h" - -#include - -namespace common -{ -class AsyncTimeoutManager : public ITimeoutManager2 -{ - UNCOPYABLE(AsyncTimeoutManager); - -public: - AsyncTimeoutManager(); - - operator ::async::ContextType() const { return _context; } - - void init(::async::ContextType context); - - void init() override; - - void shutdown() override; - - ErrorCode set(AbstractTimeout& timeout, uint32_t time, bool cyclic = false) override; - - void cancel(AbstractTimeout& timeout) override; - - ::async::ContextType const& context() const { return _context; } - -private: - ::async::ContextType _context; -}; - -} // namespace common - -#endif /*GUARD_881F73AF_B733_4944_92D6_A1CBEE933F4C*/ diff --git a/libs/bsw/commonTimeout/mock/include/util/timeout/AbstractTimeoutMock.h b/libs/bsw/commonTimeout/mock/include/util/timeout/AbstractTimeoutMock.h deleted file mode 100644 index 62fabd2e5c..0000000000 --- a/libs/bsw/commonTimeout/mock/include/util/timeout/AbstractTimeoutMock.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2024 Accenture. - -#ifndef GUARD_551D529C_F3AE_43B3_9DE4_44C145F02257 -#define GUARD_551D529C_F3AE_43B3_9DE4_44C145F02257 - -#include "gmock/gmock.h" -#include "util/timeout/AbstractTimeout.h" - -namespace common -{ -class AbstractTimeoutMock : public AbstractTimeout -{ -public: - MOCK_METHOD1(expired, void(TimeoutExpiredActions)); -}; - -} // namespace common - -#endif /* GUARD_551D529C_F3AE_43B3_9DE4_44C145F02257 */ diff --git a/libs/bsw/commonTimeout/mock/include/util/timeout/TimeoutManager2Mock.h b/libs/bsw/commonTimeout/mock/include/util/timeout/TimeoutManager2Mock.h deleted file mode 100644 index 166f8a26fb..0000000000 --- a/libs/bsw/commonTimeout/mock/include/util/timeout/TimeoutManager2Mock.h +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2024 Accenture. - -#ifndef GUARD_33115040_6944_4ABB_BABB_D5B5C3E79538 -#define GUARD_33115040_6944_4ABB_BABB_D5B5C3E79538 - -#include "util/timeout/AbstractTimeout.h" -#include "util/timeout/ITimeoutManager2.h" - -#include - -namespace common -{ -class TimeoutManager2Mock : public ITimeoutManager2 -{ -public: - virtual ~TimeoutManager2Mock() - { - while (_first != nullptr) - { - TimerInfo* remove = _first; - _first = _first->_next; - delete remove; - } - } - - TimeoutManager2Mock() : _first(nullptr) - { - using namespace ::testing; - ON_CALL(*this, set(_, _, _)) - .WillByDefault(Invoke(this, &TimeoutManager2Mock::setImplementation)); - ON_CALL(*this, cancel(_)) - .WillByDefault(Invoke(this, &TimeoutManager2Mock::cancelImplementation)); - } - - MOCK_METHOD0(init, void()); - MOCK_METHOD0(shutdown, void()); - MOCK_METHOD3(set, ErrorCode(AbstractTimeout&, uint32_t, bool)); - MOCK_METHOD1(cancel, void(AbstractTimeout&)); - - void expire(AbstractTimeout& timeout) - { - if (timeout._isActive) - { - timeout._isActive = timeout._isCyclic; - timeout.expired(AbstractTimeout::TimeoutExpiredActions(timeout)); - } - } - -private: - struct TimerInfo - { - TimerInfo(AbstractTimeout& timeout, TimerInfo* next) : _timeout(&timeout), _next(next) {} - - AbstractTimeout* _timeout; - TimerInfo* _next; - }; - - ErrorCode setImplementation(AbstractTimeout& timeout, uint32_t time, bool isCyclic) - { - getTimerInfo(timeout); - timeout._time = time; - timeout._isCyclic = isCyclic; - timeout._isActive = true; - return ITimeoutManager2::TIMEOUT_OK; - } - - void cancelImplementation(AbstractTimeout& timeout) - { - getTimerInfo(timeout)._timeout->_isActive = false; - } - - TimerInfo& getTimerInfo(AbstractTimeout& timeout) - { - TimerInfo* info = _first; - while ((info != nullptr) && (info->_timeout != &timeout)) - { - info = info->_next; - } - if (info == nullptr) - { - info = new TimerInfo(timeout, _first); - _first = info; - } - return *info; - } - - TimerInfo* _first; -}; - -} // namespace common - -#endif /* GUARD_33115040_6944_4ABB_BABB_D5B5C3E79538 */ diff --git a/libs/bsw/commonTimeout/module.spec b/libs/bsw/commonTimeout/module.spec deleted file mode 100644 index 87faef85b7..0000000000 --- a/libs/bsw/commonTimeout/module.spec +++ /dev/null @@ -1 +0,0 @@ -oss: true diff --git a/libs/bsw/commonTimeout/src/util/timeout/AbstractTimeout.cpp b/libs/bsw/commonTimeout/src/util/timeout/AbstractTimeout.cpp deleted file mode 100644 index d848945415..0000000000 --- a/libs/bsw/commonTimeout/src/util/timeout/AbstractTimeout.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2024 Accenture. - -#include "util/timeout/AbstractTimeout.h" - -#include - -namespace common -{ -void AbstractTimeout::execute() -{ - if (_isActive) - { - _isActive = _isCyclic; - expired(TimeoutExpiredActions(*this)); - } -} - -bool AbstractTimeout::isActive() const { return _isActive; } - -AbstractTimeout::TimeoutExpiredActions::TimeoutExpiredActions(AbstractTimeout& timeout) -: _timeout(timeout) -{} - -AbstractTimeout::TimeoutExpiredActions::TimeoutExpiredActions(TimeoutExpiredActions const& rhs) - = default; - -void AbstractTimeout::TimeoutExpiredActions::reset() { reset(_timeout._time); } - -void AbstractTimeout::TimeoutExpiredActions::reset(uint32_t const newTimeout) -{ - _timeout._asyncTimeout.cancel(); - _timeout._isActive = true; - if (_timeout._isCyclic) - { - ::async::scheduleAtFixedRate( - _timeout._context, - _timeout, - _timeout._asyncTimeout, - newTimeout, - ::async::TimeUnit::MILLISECONDS); - } - else - { - ::async::schedule( - _timeout._context, - _timeout, - _timeout._asyncTimeout, - newTimeout, - ::async::TimeUnit::MILLISECONDS); - } -} - -void AbstractTimeout::TimeoutExpiredActions::cancel() -{ - _timeout._isActive = false; - _timeout._asyncTimeout.cancel(); -} - -} // namespace common diff --git a/libs/bsw/commonTimeout/src/util/timeout/AsyncTimeoutManager.cpp b/libs/bsw/commonTimeout/src/util/timeout/AsyncTimeoutManager.cpp deleted file mode 100644 index 3376ac0a77..0000000000 --- a/libs/bsw/commonTimeout/src/util/timeout/AsyncTimeoutManager.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2024 Accenture. - -#include "util/timeout/AsyncTimeoutManager.h" - -#include "async/Async.h" -#include "estd/assert.h" -#include "util/timeout/AbstractTimeout.h" - -namespace common -{ -AsyncTimeoutManager::AsyncTimeoutManager() : _context(::async::CONTEXT_INVALID) {} - -void AsyncTimeoutManager::init(::async::ContextType const context) { _context = context; } - -void AsyncTimeoutManager::init() {} - -void AsyncTimeoutManager::shutdown() {} - -ITimeoutManager2::ErrorCode -AsyncTimeoutManager::set(AbstractTimeout& timeout, uint32_t const time, bool const cyclic) -{ - if (timeout._isActive) - { - return ErrorCode::TIMEOUT_ALREADY_SET; - } - timeout._time = time; - timeout._isCyclic = cyclic; - timeout._isActive = true; - timeout._context = _context; - if (cyclic) - { - ::async::scheduleAtFixedRate( - _context, timeout, timeout._asyncTimeout, time, ::async::TimeUnit::MILLISECONDS); - } - else - { - ::async::schedule( - _context, timeout, timeout._asyncTimeout, time, ::async::TimeUnit::MILLISECONDS); - } - return ErrorCode::TIMEOUT_OK; -} - -void AsyncTimeoutManager::cancel(AbstractTimeout& timeout) -{ - timeout._isActive = false; - timeout._asyncTimeout.cancel(); -} - -} // namespace common diff --git a/libs/bsw/commonTimeout/test/gtest/src/util/timeout/AbstractTimeoutTest.cpp b/libs/bsw/commonTimeout/test/gtest/src/util/timeout/AbstractTimeoutTest.cpp deleted file mode 100644 index 6cc7f1c04c..0000000000 --- a/libs/bsw/commonTimeout/test/gtest/src/util/timeout/AbstractTimeoutTest.cpp +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright 2024 Accenture. - -#include "util/timeout/AbstractTimeout.h" - -#include "async/AsyncMock.h" -#include "async/TimeoutMock.h" - -namespace -{ -using namespace common; -using namespace testing; - -ACTION(Reset) { AbstractTimeout::TimeoutExpiredActions(arg0).reset(); } - -ACTION_P(Reset, newTimeout) { AbstractTimeout::TimeoutExpiredActions(arg0).reset(newTimeout); } - -ACTION(Cancel) { AbstractTimeout::TimeoutExpiredActions(arg0).cancel(); } - -class AbstractTimeoutMock : public ::common::AbstractTimeout -{ -public: - MOCK_METHOD1(expired, void(TimeoutExpiredActions)); -}; - -class AbstractTimeoutTest : public Test -{ -public: - StrictMock<::async::AsyncMock> _asyncMock; - StrictMock<::async::TimeoutMock> _timeoutMock; -}; - -TEST_F(AbstractTimeoutTest, testAll) -{ - StrictMock cut; - { - EXPECT_EQ(cut._context, ::async::CONTEXT_INVALID); - EXPECT_EQ(cut._time, 0U); - EXPECT_FALSE(cut._isCyclic); - EXPECT_FALSE(cut._isActive); - EXPECT_FALSE(cut.isActive()); - } - ::async::ContextType context(3U); - { - // nothing should happen if executed accidentally - cut.execute(); - } - cut._context = context; - cut._time = 2398U; - cut._isActive = true; - { - // execute single-shot timeout - EXPECT_CALL(cut, expired(_)); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_FALSE(cut._isActive); - } - { - cut._isActive = true; - // reset single-shot timeout - Sequence seq; - EXPECT_CALL(cut, expired(_)).WillOnce(Reset()); - EXPECT_CALL(_timeoutMock, cancel(Ref(cut._asyncTimeout))).InSequence(seq); - EXPECT_CALL( - _asyncMock, - schedule( - context, Ref(cut), Ref(cut._asyncTimeout), 2398U, ::async::TimeUnit::MILLISECONDS)) - .InSequence(seq); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_TRUE(cut._isActive); - } - { - // reset single-shot timeout with new value - Sequence seq; - EXPECT_CALL(cut, expired(_)).WillOnce(Reset(3384U)); - EXPECT_CALL(_timeoutMock, cancel(Ref(cut._asyncTimeout))).InSequence(seq); - EXPECT_CALL( - _asyncMock, - schedule( - context, Ref(cut), Ref(cut._asyncTimeout), 3384U, ::async::TimeUnit::MILLISECONDS)) - .InSequence(seq); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_TRUE(cut._isActive); - } - { - // cancel single-shot timeout - Sequence seq; - EXPECT_CALL(cut, expired(_)).WillOnce(Cancel()); - EXPECT_CALL(_timeoutMock, cancel(Ref(cut._asyncTimeout))).InSequence(seq); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_FALSE(cut._isActive); - } - - cut._isCyclic = true; - { - // execute cyclic timeout - cut._isActive = true; - EXPECT_CALL(cut, expired(_)); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_TRUE(cut._isActive); - } - { - // reset cyclic timeout - cut._time = 2314U; - Sequence seq; - EXPECT_CALL(cut, expired(_)).WillOnce(Reset()); - EXPECT_CALL(_timeoutMock, cancel(Ref(cut._asyncTimeout))).InSequence(seq); - EXPECT_CALL( - _asyncMock, - scheduleAtFixedRate( - context, Ref(cut), Ref(cut._asyncTimeout), 2314U, ::async::TimeUnit::MILLISECONDS)) - .InSequence(seq); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_TRUE(cut._isActive); - } - { - // reset cyclic timeout with new value - Sequence seq; - EXPECT_CALL(cut, expired(_)).WillOnce(Reset(2343U)); - EXPECT_CALL(_timeoutMock, cancel(Ref(cut._asyncTimeout))).InSequence(seq); - EXPECT_CALL( - _asyncMock, - scheduleAtFixedRate( - context, Ref(cut), Ref(cut._asyncTimeout), 2343U, ::async::TimeUnit::MILLISECONDS)) - .InSequence(seq); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_TRUE(cut._isActive); - } - { - // cancel cyclic timeout - Sequence seq; - EXPECT_CALL(cut, expired(_)).WillOnce(Cancel()); - EXPECT_CALL(_timeoutMock, cancel(Ref(cut._asyncTimeout))).InSequence(seq); - cut.execute(); - Mock::VerifyAndClearExpectations(&cut); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_FALSE(cut._isActive); - } -} - -} // namespace diff --git a/libs/bsw/commonTimeout/test/gtest/src/util/timeout/AsyncTimeoutManagerTest.cpp b/libs/bsw/commonTimeout/test/gtest/src/util/timeout/AsyncTimeoutManagerTest.cpp deleted file mode 100644 index 318557bf87..0000000000 --- a/libs/bsw/commonTimeout/test/gtest/src/util/timeout/AsyncTimeoutManagerTest.cpp +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2024 Accenture. - -#include "util/timeout/AsyncTimeoutManager.h" - -#include "async/AsyncMock.h" -#include "async/TimeoutMock.h" -#include "util/timeout/AbstractTimeout.h" - -namespace -{ -using namespace common; -using namespace testing; - -class AbstractTimeoutMock : public ::common::AbstractTimeout -{ -public: - MOCK_METHOD1(expired, void(TimeoutExpiredActions)); -}; - -class AsyncTimeoutManagerTest : public Test -{ -public: - StrictMock _abstractTimeoutMock1; - StrictMock _abstractTimeoutMock2; - StrictMock<::async::AsyncMock> _asyncMock; - StrictMock<::async::TimeoutMock> _timeoutMock; -}; - -TEST_F(AsyncTimeoutManagerTest, testAll) -{ - AsyncTimeoutManager cut; - ::async::ContextType context(3U); - cut.init(context); - { - cut.init(); - } - { - // check set single timeout - EXPECT_CALL( - _asyncMock, - schedule( - context, - Ref(_abstractTimeoutMock1), - Ref(_abstractTimeoutMock1._asyncTimeout), - 1239U, - ::async::TimeUnit::MILLISECONDS)); - EXPECT_EQ(ITimeoutManager2::TIMEOUT_OK, cut.set(_abstractTimeoutMock1, 1239U, false)); - EXPECT_TRUE(_abstractTimeoutMock1.isActive()); - - // setting again should return bad result - EXPECT_EQ( - ITimeoutManager2::TIMEOUT_ALREADY_SET, cut.set(_abstractTimeoutMock1, 343U, false)); - - // expire - EXPECT_CALL(_abstractTimeoutMock1, expired(_)); - _abstractTimeoutMock1.execute(); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_abstractTimeoutMock1); - EXPECT_FALSE(_abstractTimeoutMock1.isActive()); - } - { - // check set periodic timeout - EXPECT_CALL( - _asyncMock, - scheduleAtFixedRate( - context, - Ref(_abstractTimeoutMock1), - Ref(_abstractTimeoutMock1._asyncTimeout), - 1349U, - ::async::TimeUnit::MILLISECONDS)); - EXPECT_EQ(ITimeoutManager2::TIMEOUT_OK, cut.set(_abstractTimeoutMock1, 1349U, true)); - EXPECT_TRUE(_abstractTimeoutMock1.isActive()); - - // expire - EXPECT_CALL(_abstractTimeoutMock1, expired(_)); - _abstractTimeoutMock1.execute(); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_abstractTimeoutMock1); - EXPECT_TRUE(_abstractTimeoutMock1.isActive()); - - // expire again - EXPECT_CALL(_abstractTimeoutMock1, expired(_)); - _abstractTimeoutMock1.execute(); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_abstractTimeoutMock1); - EXPECT_TRUE(_abstractTimeoutMock1.isActive()); - } - { - // check cancel - EXPECT_CALL(_timeoutMock, cancel(Ref(_abstractTimeoutMock1._asyncTimeout))); - cut.cancel(_abstractTimeoutMock1); - Mock::VerifyAndClearExpectations(&_timeoutMock); - EXPECT_FALSE(_abstractTimeoutMock1.isActive()); - - // expire shouldn't work - _abstractTimeoutMock1.execute(); - Mock::VerifyAndClearExpectations(&_asyncMock); - Mock::VerifyAndClearExpectations(&_abstractTimeoutMock1); - } - { - cut.shutdown(); - } -} - -} // namespace diff --git a/libs/bsw/uds/CMakeLists.txt b/libs/bsw/uds/CMakeLists.txt index df7d99546a..bc4919fd95 100644 --- a/libs/bsw/uds/CMakeLists.txt +++ b/libs/bsw/uds/CMakeLists.txt @@ -58,7 +58,6 @@ target_link_libraries( uds PUBLIC async bsp - commonTimeout configuration transport transportConfiguration diff --git a/libs/bsw/uds/test/gtest/CMakeLists.txt b/libs/bsw/uds/test/gtest/CMakeLists.txt index 5460379ed2..e1194efc64 100644 --- a/libs/bsw/uds/test/gtest/CMakeLists.txt +++ b/libs/bsw/uds/test/gtest/CMakeLists.txt @@ -49,7 +49,6 @@ target_include_directories(udsTest PRIVATE include ../include) target_link_libraries( udsTest PRIVATE uds - commonTimeout udsMock transportMock utCommon