summaryrefslogtreecommitdiff
path: root/AudioManagerUtilities/test/AmSocketHandlerTest/CAmSocketHandlerTest.cpp
Commit message (Collapse)AuthorAgeFilesLines
* AMUtil: Fix inconsistent fdPollingArrayJens Lorenz2018-06-121-64/+27
| | | | | | | | | | | | | | | | In case someone removed a fd and closed it opened a new one and added it to the socket handler the container state of the object in map was changed from either REMOVE/CLOSE to UNINIT. This leads to the emplace call in the fdPollingArray vector and the fd is maintained twice. Over the entire runtime there will be zombie fds provided to ppoll functions which will race a POLLERR revent leading to 100% cpu load. Also the CLOSE state is now removed because only the application is aware if a fd has to be closed. For instance calling add/remove in a loop were start_listenting is not running will turn to a system issue were no fds can be provided by the operation system. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Return in threads with NULLJens Lorenz2018-04-231-0/+6
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Fix startup sequence addFdPoll and removeFdPollJens Lorenz2018-04-091-0/+75
| | | | | | | | | | In case plugins add new fdpoll elements and directly removing them afterwards the state inside the structure will be changed to REMOVE. REMOVE will lead all the time to an erase which will not work in case the pointer is at .end() of vector or the element itself is not the correct one. Both cases will be fixed just by checking if the fd is the same. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Cleanup indents and whitespacesJens Lorenz2018-04-091-22/+23
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Rework of socketHandler to avoid calls of invalidated objectsJens Lorenz2018-04-091-79/+287
| | | | | | | | | | | | | | | | | | | This patch tries to follow the idea raised in PR26. Following two patches have been reworked: commit: cfe0e77aaf87a0590ceea42f6afa62b0c7d95e80 commit: bc33226f59910a960f62d419ba10d4ea761e3724 The biggest change applies to the internal database. Instead of having a vector for all items which will be copied inside the worker thread the new approach aims a central map which allows to store the sh_poll elements in containers. By this a container is valid until it is remove from map. The remove of items inside a map is now centralized within the worker and only the worker is responsible to keep the ppoll list and the map in sync. This patch also extends the unit tests to stress different timer scenarios. Signed-off-by: Aleksandar Donchev <Aleksander.Donchev@partner.bmw.de> Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Ensure that revents are tested in fire callbackJens Lorenz2018-04-091-2/+2
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Lets check the return value of addTimerJens Lorenz2018-04-091-13/+14
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Remove off-by-one problem for timer meas. and socket testsJens Lorenz2018-04-091-45/+39
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Fix mExpected value range for 32-bitJens Lorenz2018-04-091-1/+1
| | | | | | | The duration calculation for mExpected is not working. The playWithTimers oneshot test reported all times warnings. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* Revert "Utility updates capi fixes"revert-26-utilityUpdates_CAPI_fixesJens Lorenz2018-03-131-332/+84
|
* The real-time scheduler removed.Aleksandar Donchev2018-02-131-5/+0
| | | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I7c8a2c474bc8fac62c76a46545a231c518edb2a8
* Cmake parameters for real-time scheduler's priority and policy and throw ↵Aleksandar Donchev2018-02-131-38/+41
| | | | | | | | runtime error if read fails. Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I6a7a2c424bc8fac62c76a66545a231c518edb2e1
* Real time scheduler added, capi wrapper timeout return value considered in ↵Aleksandar Donchev2018-02-131-17/+31
| | | | | | | registerTimeout, only requested revent passed from within the camsockethandler instead of all Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I2d9d2c424ac3fac62c76a66545a531c518edb2e8
* Runtime check for calls to the sockethandler from other threadsAleksandar Donchev2018-02-131-55/+61
| | | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I9d9d3c424ac9fad62c76a76545c731b518bdb1e2
* A filedescriptor removal will set an invalidation flag which will prevent ↵Aleksandar Donchev2018-02-131-3/+6
| | | | | | | | | | | calls on the invalidated objects in the current iteration. Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I9d5d3c434ac9fad62c76a76145c731b538aeb1e3 # Conflicts: # AudioManagerUtilities/src/CAmSocketHandler.cpp
* Timer fd is closed at the beginning of the next iteration + some unit tests. ↵Aleksandar Donchev2018-02-131-1/+228
| | | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I8c5d3c436ac9fad62c76a26145c731b538abb1e7
* The primary signals SIGINT and SIGQUIT are handled on top level inAleksandar Donchev2017-07-101-41/+75
| | | | | | | | | contrast to secondary signals SIGHUP, SIGTERM, SIGCHLD, which are handled in the SocketHandler. Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I8c5d3c436ac9fcd61c76a26145c731b427cab1e6
* Signal handling via main loop with signalfd.Aleksandar Donchev2017-05-021-4/+139
| | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I8c4c2c436ac9fcd61c76a21145c731f327cab0c1
* CAmSerializer interface extended to support std::function. Aleksandar Donchev2017-05-021-3/+5
| | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I8b4c2c436ac9fbc37c76a21145c731f327cab0e4
* CAmSocketHandler - usage of std::function instead of function pointers,Aleksandar Donchev2017-05-021-91/+284
| | | | | | | code cleanup and minior optimizations. Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I8c2c2c436ac9abc37c76a12245c731f327cab0e5
* * rework of the build structure, adopt to standard cmake package structure7.4Christian Linke2016-02-151-0/+357
* check versions when loading the libs * introduction of the AudioManagerCore * give control plugin as file or directory * remove SQLITE * either find and use gmock or build and install it * fixed [Bug 411] * compile flag gnu11 is now used Signed-off-by: Christian Linke <Christian.Linke@bmw.de> Signed-off-by: Christian Linke <Christian.Linke@bmw.de>