repaired internal unit test
This commit is contained in:
parent
79cf009049
commit
eae3175976
@ -1,2 +1,5 @@
|
|||||||
add_subdirectory(internal)
|
add_subdirectory(internal)
|
||||||
add_subdirectory(tests)
|
|
||||||
|
if(LINK_CATCH2)
|
||||||
|
add_subdirectory(tests)
|
||||||
|
endif()
|
@ -5,7 +5,7 @@
|
|||||||
sif::error << "Unit Tester error: Failed at test ID "
|
sif::error << "Unit Tester error: Failed at test ID "
|
||||||
<< errorId << std::endl;
|
<< errorId << std::endl;
|
||||||
#else
|
#else
|
||||||
sif::printError("Unit Tester error: Failed at test ID 0x%08x", errorId);
|
sif::printError("Unit Tester error: Failed at test ID %s\n", errorId.c_str());
|
||||||
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
|
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
|
||||||
return HasReturnvaluesIF::RETURN_FAILED;
|
return HasReturnvaluesIF::RETURN_FAILED;
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
#include <fsfw/ipc/MutexFactory.h>
|
#include <fsfw/ipc/MutexFactory.h>
|
||||||
#include <fsfw/unittest/internal/UnittDefinitions.h>
|
#include <fsfw/unittest/internal/UnittDefinitions.h>
|
||||||
|
|
||||||
#if defined(hosted)
|
#if defined(WIN32) || defined(UNIX)
|
||||||
#include <fsfw/osal/hosted/Mutex.h>
|
#include <fsfw/osal/host/Mutex.h>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <future>
|
#include <future>
|
||||||
#endif
|
#endif
|
||||||
@ -19,10 +19,11 @@ void testmutex::testMutex() {
|
|||||||
}
|
}
|
||||||
// timed_mutex from the C++ library specifies undefined behaviour if
|
// timed_mutex from the C++ library specifies undefined behaviour if
|
||||||
// the timed mutex is locked twice from the same thread.
|
// the timed mutex is locked twice from the same thread.
|
||||||
#if defined(hosted)
|
// TODO: we should pass a define like FSFW_OSAL_HOST to the build.
|
||||||
|
#if defined(WIN32) || defined(UNIX)
|
||||||
// This calls the function from
|
// This calls the function from
|
||||||
// another thread and stores the returnvalue in a future.
|
// another thread and stores the returnvalue in a future.
|
||||||
auto future = std::async(&MutexIF::lockMutex, mutex, 1);
|
auto future = std::async(&MutexIF::lockMutex, mutex, MutexIF::TimeoutType::WAITING, 1);
|
||||||
result = future.get();
|
result = future.get();
|
||||||
#else
|
#else
|
||||||
result = mutex->lockMutex(MutexIF::TimeoutType::WAITING, 1);
|
result = mutex->lockMutex(MutexIF::TimeoutType::WAITING, 1);
|
||||||
@ -35,8 +36,12 @@ void testmutex::testMutex() {
|
|||||||
if(result != HasReturnvaluesIF::RETURN_OK) {
|
if(result != HasReturnvaluesIF::RETURN_OK) {
|
||||||
unitt::put_error(id);
|
unitt::put_error(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: we should pass a define like FSFW_OSAL_HOST to the build.
|
||||||
|
#if !defined(WIN32) && !defined(UNIX)
|
||||||
result = mutex->unlockMutex();
|
result = mutex->unlockMutex();
|
||||||
if(result != MutexIF::CURR_THREAD_DOES_NOT_OWN_MUTEX) {
|
if(result != MutexIF::CURR_THREAD_DOES_NOT_OWN_MUTEX) {
|
||||||
unitt::put_error(id);
|
unitt::put_error(id);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user