test update
This commit is contained in:
parent
8807772d13
commit
db7d28f852
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#include "../datapool/PoolVariableIF.h"
|
#include "../datapool/PoolVariableIF.h"
|
||||||
#include "../datapool/DataSetIF.h"
|
#include "../datapool/DataSetIF.h"
|
||||||
|
#include "../serviceinterface/ServiceInterface.h"
|
||||||
#include "../objectmanager/ObjectManagerIF.h"
|
#include "../objectmanager/ObjectManagerIF.h"
|
||||||
#include "../serialize/SerializeAdapter.h"
|
#include "../serialize/SerializeAdapter.h"
|
||||||
|
|
||||||
|
@ -35,8 +35,11 @@ inline ReturnValue_t LocalPoolVariable<T>::readWithoutLock() {
|
|||||||
if(readWriteMode == pool_rwm_t::VAR_WRITE) {
|
if(readWriteMode == pool_rwm_t::VAR_WRITE) {
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::warning << "LocalPoolVariable: Invalid read write "
|
sif::warning << "LocalPoolVariable: Invalid read write "
|
||||||
"mode for read() call." << std::endl;
|
"mode for read call." << std::endl;
|
||||||
#endif
|
#else
|
||||||
|
fsfw::printWarning("LocalPoolVariable: Invalid read write "
|
||||||
|
"mode for read call.");
|
||||||
|
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
|
||||||
return PoolVariableIF::INVALID_READ_WRITE_MODE;
|
return PoolVariableIF::INVALID_READ_WRITE_MODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +51,11 @@ inline ReturnValue_t LocalPoolVariable<T>::readWithoutLock() {
|
|||||||
<< std::hex << std::setw(8) << std::setfill('0')
|
<< std::hex << std::setw(8) << std::setfill('0')
|
||||||
<< hkManager->getOwner() << " and lp ID 0x" << localPoolId
|
<< hkManager->getOwner() << " and lp ID 0x" << localPoolId
|
||||||
<< std::dec << " failed." << std::setfill(' ') << std::endl;
|
<< std::dec << " failed." << std::setfill(' ') << std::endl;
|
||||||
#endif
|
#else
|
||||||
|
fsfw::printError("LocalPoolVariable: Read of local pool variable of "
|
||||||
|
"object 0x%08x and lp ID 0x08x failed.", hkManager->getOwner(),
|
||||||
|
localPoolId);
|
||||||
|
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
this->value = *(poolEntry->address);
|
this->value = *(poolEntry->address);
|
||||||
@ -69,7 +76,7 @@ inline ReturnValue_t LocalPoolVariable<T>::commitWithoutLock() {
|
|||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::warning << "LocalPoolVariable: Invalid read write "
|
sif::warning << "LocalPoolVariable: Invalid read write "
|
||||||
"mode for commit() call." << std::endl;
|
"mode for commit() call." << std::endl;
|
||||||
#endif
|
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
|
||||||
return PoolVariableIF::INVALID_READ_WRITE_MODE;
|
return PoolVariableIF::INVALID_READ_WRITE_MODE;
|
||||||
}
|
}
|
||||||
PoolEntry<T>* poolEntry = nullptr;
|
PoolEntry<T>* poolEntry = nullptr;
|
||||||
@ -80,7 +87,11 @@ inline ReturnValue_t LocalPoolVariable<T>::commitWithoutLock() {
|
|||||||
<< "object " << std::hex << std::setw(8) << std::setfill('0')
|
<< "object " << std::hex << std::setw(8) << std::setfill('0')
|
||||||
<< hkManager->getOwner() << " and lp ID 0x" << localPoolId
|
<< hkManager->getOwner() << " and lp ID 0x" << localPoolId
|
||||||
<< std::dec << " failed." << std::endl;
|
<< std::dec << " failed." << std::endl;
|
||||||
#endif
|
#else
|
||||||
|
fsfw::printError("LocalPoolVariable: Read of local pool variable of "
|
||||||
|
"object 0x%08x and lp ID 0x08x failed.", hkManager->getOwner(),
|
||||||
|
localPoolId);
|
||||||
|
#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
*(poolEntry->address) = this->value;
|
*(poolEntry->address) = this->value;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include "../../serviceinterface/ServiceInterfaceStream.h"
|
#include "../../serviceinterface/ServiceInterfaceStream.h"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
namespace tv {
|
namespace tv {
|
||||||
// POD test values
|
// POD test values
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
|
#include <array>
|
||||||
|
|
||||||
|
|
||||||
TEST_CASE( "Action Helper" , "[ActionHelper]") {
|
TEST_CASE( "Action Helper" , "[ActionHelper]") {
|
||||||
ActionHelperOwnerMockBase testDhMock;
|
ActionHelperOwnerMockBase testDhMock;
|
||||||
|
@ -90,7 +90,9 @@ TEST_CASE("LocalPoolVariable" , "[LocPoolVarTest]") {
|
|||||||
|
|
||||||
lp_var_t<uint32_t> uint32tVar = lp_var_t<uint32_t>(
|
lp_var_t<uint32_t> uint32tVar = lp_var_t<uint32_t>(
|
||||||
objects::TEST_LOCAL_POOL_OWNER_BASE, lpool::uint32VarId);
|
objects::TEST_LOCAL_POOL_OWNER_BASE, lpool::uint32VarId);
|
||||||
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::info << "LocalPoolVariable printout: " <<uint32tVar << std::endl;
|
sif::info << "LocalPoolVariable printout: " <<uint32tVar << std::endl;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,19 @@ cmake_minimum_required(VERSION 3.13)
|
|||||||
|
|
||||||
# set(CMAKE_VERBOSE TRUE)
|
# set(CMAKE_VERBOSE TRUE)
|
||||||
|
|
||||||
set(CMAKE_SCRIPT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/buildsystem/cmake")
|
set(CMAKE_SCRIPT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
|
option(TMTC_TEST "Build binary for manual or automatic TMTC tests" FALSE)
|
||||||
|
option(GENERATE_COVERAGE
|
||||||
|
"Specify whether coverage data is generated with GCOV"
|
||||||
|
TRUE
|
||||||
|
)
|
||||||
|
|
||||||
|
if(TMTC_TEST)
|
||||||
|
set(LINK_CATCH2 FALSE)
|
||||||
|
else()
|
||||||
|
set(LINK_CATCH2 TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Tests can be built with the Host OSAL or with the Linux OSAL.
|
# Tests can be built with the Host OSAL or with the Linux OSAL.
|
||||||
if(NOT OS_FSFW)
|
if(NOT OS_FSFW)
|
||||||
@ -53,6 +65,7 @@ set(FSFW_PATH fsfw)
|
|||||||
set(CATCH2_PATH Catch2)
|
set(CATCH2_PATH Catch2)
|
||||||
set(FSFW_TESTS_PATH fsfw/unittest)
|
set(FSFW_TESTS_PATH fsfw/unittest)
|
||||||
set(TEST_SETUP_PATH unittest)
|
set(TEST_SETUP_PATH unittest)
|
||||||
|
set(TMTC_TEST_PATH tests)
|
||||||
|
|
||||||
# Analyse different OS and architecture/target options and
|
# Analyse different OS and architecture/target options and
|
||||||
# determine BSP_PATH
|
# determine BSP_PATH
|
||||||
@ -71,6 +84,15 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(GENERATE_COVERAGE)
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/cmake-modules)
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
include(CodeCoverage)
|
||||||
|
# Add compile options on target base, we don't want coverage for Catch2
|
||||||
|
# append_coverage_compiler_flags()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
set(FSFW_CONFIG_PATH testcfg)
|
set(FSFW_CONFIG_PATH testcfg)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -82,10 +104,16 @@ add_executable(${TARGET_NAME})
|
|||||||
|
|
||||||
# Add subdirectories
|
# Add subdirectories
|
||||||
add_subdirectory(${FSFW_PATH})
|
add_subdirectory(${FSFW_PATH})
|
||||||
add_subdirectory(${CATCH2_PATH})
|
|
||||||
add_subdirectory(${FSFW_CONFIG_PATH})
|
add_subdirectory(${FSFW_CONFIG_PATH})
|
||||||
add_subdirectory(${FSFW_TESTS_PATH})
|
|
||||||
add_subdirectory(${TEST_SETUP_PATH})
|
if(LINK_CATCH2)
|
||||||
|
add_subdirectory(${CATCH2_PATH})
|
||||||
|
add_subdirectory(${FSFW_TESTS_PATH})
|
||||||
|
add_subdirectory(${TEST_SETUP_PATH})
|
||||||
|
else()
|
||||||
|
add_subdirectory(${TMTC_TEST_PATH})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Post-Sources preparation
|
# Post-Sources preparation
|
||||||
@ -94,9 +122,74 @@ add_subdirectory(${TEST_SETUP_PATH})
|
|||||||
# Add libraries for all sources.
|
# Add libraries for all sources.
|
||||||
target_link_libraries(${TARGET_NAME} PRIVATE
|
target_link_libraries(${TARGET_NAME} PRIVATE
|
||||||
${LIB_FSFW_NAME}
|
${LIB_FSFW_NAME}
|
||||||
${CATCH2_TARGET}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(LINK_CATCH2)
|
||||||
|
target_link_libraries(${TARGET_NAME} PRIVATE
|
||||||
|
${CATCH2_TARGET}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(GENERATE_COVERAGE)
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
set(CODE_COVERAGE_VERBOSE TRUE)
|
||||||
|
include(CodeCoverage)
|
||||||
|
|
||||||
|
# Remove quotes.
|
||||||
|
separate_arguments(COVERAGE_COMPILER_FLAGS
|
||||||
|
NATIVE_COMMAND "${COVERAGE_COMPILER_FLAGS}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add compile options manually, we don't want coverage for Catch2
|
||||||
|
target_compile_options(${TARGET_NAME} PRIVATE
|
||||||
|
"${COVERAGE_COMPILER_FLAGS}"
|
||||||
|
)
|
||||||
|
target_compile_options(${LIB_FSFW_NAME} PRIVATE
|
||||||
|
"${COVERAGE_COMPILER_FLAGS}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Exclude internal unittest from coverage for now.
|
||||||
|
if(WIN32)
|
||||||
|
set(GCOVR_ADDITIONAL_ARGS
|
||||||
|
"--exclude-throw-branches"
|
||||||
|
"--exclude-unreachable-branches"
|
||||||
|
)
|
||||||
|
set(COVERAGE_EXCLUDES
|
||||||
|
"/c/msys64/mingw64/*" "Catch2"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/fsfw/unittest/internal"
|
||||||
|
)
|
||||||
|
elseif(UNIX)
|
||||||
|
set(COVERAGE_EXCLUDES
|
||||||
|
"/usr/include/*" "/usr/bin/*" "Catch2/*"
|
||||||
|
"fsfw/unittest/internal/*"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_options(${TARGET_NAME} PRIVATE
|
||||||
|
-fprofile-arcs
|
||||||
|
-ftest-coverage
|
||||||
|
)
|
||||||
|
target_link_options(${LIB_FSFW_NAME} PRIVATE
|
||||||
|
-fprofile-arcs
|
||||||
|
-ftest-coverage
|
||||||
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
setup_target_for_coverage_gcovr_html(
|
||||||
|
NAME ${TARGET_NAME}_coverage
|
||||||
|
EXECUTABLE ${TARGET_NAME}
|
||||||
|
DEPENDENCIES ${TARGET_NAME}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
setup_target_for_coverage_lcov(
|
||||||
|
NAME ${TARGET_NAME}_coverage
|
||||||
|
EXECUTABLE ${TARGET_NAME}
|
||||||
|
DEPENDENCIES ${TARGET_NAME}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add include paths for all sources.
|
# Add include paths for all sources.
|
||||||
target_include_directories(${TARGET_NAME} PRIVATE
|
target_include_directories(${TARGET_NAME} PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
@ -147,8 +240,7 @@ if(NOT CMAKE_SIZE)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(TARGET ${TARGET_NAME}
|
||||||
TARGET ${TARGET_NAME}
|
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND echo "Build directory: ${CMAKE_BINARY_DIR}"
|
COMMAND echo "Build directory: ${CMAKE_BINARY_DIR}"
|
||||||
COMMAND echo "Target OSAL: ${OS_FSFW}"
|
COMMAND echo "Target OSAL: ${OS_FSFW}"
|
||||||
@ -156,7 +248,7 @@ add_custom_command(
|
|||||||
COMMAND ${CMAKE_SIZE} ${TARGET_NAME}${FILE_SUFFIX}
|
COMMAND ${CMAKE_SIZE} ${TARGET_NAME}${FILE_SUFFIX}
|
||||||
)
|
)
|
||||||
|
|
||||||
include (${CMAKE_CURRENT_SOURCE_DIR}/buildsystem/cmake/BuildType.cmake)
|
include (${CMAKE_SCRIPT_PATH}/BuildType.cmake)
|
||||||
set_build_type()
|
set_build_type()
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,3 +5,9 @@ target_sources(${TARGET_NAME} PRIVATE
|
|||||||
CatchSetup.cpp
|
CatchSetup.cpp
|
||||||
printChar.cpp
|
printChar.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(CUSTOM_UNITTEST_RUNNER)
|
||||||
|
target_sources(${TARGET_NAME} PRIVATE
|
||||||
|
CatchRunner.cpp
|
||||||
|
)
|
||||||
|
endif()
|
@ -1,4 +1,5 @@
|
|||||||
#include "CatchDefinitions.h"
|
#include "CatchDefinitions.h"
|
||||||
|
#include <fsfw/serviceinterface/ServiceInterface.h>
|
||||||
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
||||||
|
|
||||||
StorageManagerIF* tglob::getIpcStoreHandle() {
|
StorageManagerIF* tglob::getIpcStoreHandle() {
|
||||||
@ -7,6 +8,8 @@ StorageManagerIF* tglob::getIpcStoreHandle() {
|
|||||||
} else {
|
} else {
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::error << "Global object manager uninitialized" << std::endl;
|
sif::error << "Global object manager uninitialized" << std::endl;
|
||||||
|
#else
|
||||||
|
fsfw::printError("Global object manager uninitialized");
|
||||||
#endif
|
#endif
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
|
#include <fsfw/datapoollocal/LocalDataPoolManager.h>
|
||||||
|
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
|
||||||
#include "CatchFactory.h"
|
#include "CatchFactory.h"
|
||||||
|
|
||||||
#include <fsfw/events/EventManager.h>
|
#include <fsfw/events/EventManager.h>
|
||||||
#include <fsfw/health/HealthTable.h>
|
#include <fsfw/health/HealthTable.h>
|
||||||
|
|
||||||
#include <fsfw/internalError/InternalErrorReporter.h>
|
#include <fsfw/internalError/InternalErrorReporter.h>
|
||||||
#include <fsfw/objectmanager/frameworkObjects.h>
|
#include <fsfw/objectmanager/frameworkObjects.h>
|
||||||
#include <fsfw/storagemanager/PoolManager.h>
|
#include <fsfw/storagemanager/PoolManager.h>
|
||||||
|
#include <fsfw/tmtcpacket/pus/TmPacketStored.h>
|
||||||
|
#include <fsfw/tmtcservices/CommandingServiceBase.h>
|
||||||
|
#include <fsfw/tmtcservices/PusServiceBase.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Produces system objects.
|
* @brief Produces system objects.
|
||||||
@ -50,7 +54,23 @@ void Factory::produce(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Factory::setStaticFrameworkObjectIds() {
|
void Factory::setStaticFrameworkObjectIds() {
|
||||||
|
PusServiceBase::packetSource = objects::NO_OBJECT;
|
||||||
|
PusServiceBase::packetDestination = objects::NO_OBJECT;
|
||||||
|
|
||||||
|
CommandingServiceBase::defaultPacketSource = objects::NO_OBJECT;
|
||||||
|
CommandingServiceBase::defaultPacketDestination = objects::NO_OBJECT;
|
||||||
|
|
||||||
|
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
|
||||||
|
|
||||||
|
DeviceHandlerBase::powerSwitcherId = objects::NO_OBJECT;
|
||||||
|
DeviceHandlerBase::rawDataReceiverId = objects::PUS_SERVICE_2_DEVICE_ACCESS;
|
||||||
|
|
||||||
|
LocalDataPoolManager::defaultHkDestination = objects::NO_OBJECT;
|
||||||
|
|
||||||
|
DeviceHandlerFailureIsolation::powerConfirmationId = objects::NO_OBJECT;
|
||||||
|
|
||||||
|
TmPacketStored::timeStamperId = objects::NO_OBJECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
/**
|
/**
|
||||||
* @file CatchSource.cpp
|
* @file CatchRunner.cpp
|
||||||
* @brief Source file to compile catch framework.
|
* @brief Source file to compile catch framework.
|
||||||
* @details All tests should be written in other files.
|
* @details All tests should be written in other files.
|
||||||
* For eclipse console output, install ANSI Escape in Console
|
* For eclipse console output, install ANSI Escape in Console
|
||||||
* from the eclipse market place to get colored characters.
|
* from the eclipse market place to get colored characters.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef NO_UNIT_TEST_FRAMEWORK
|
#include <TestsConfig.h>
|
||||||
|
|
||||||
#define CATCH_CONFIG_RUNNER
|
#define CATCH_CONFIG_COLOUR_WINDOWS
|
||||||
#include <catch2/catch.hpp>
|
|
||||||
|
|
||||||
#if CUSTOM_UNITTEST_RUNNER == 0
|
#include <catch2/catch_session.hpp>
|
||||||
|
|
||||||
extern int customSetup();
|
extern int customSetup();
|
||||||
|
|
||||||
@ -25,7 +24,3 @@ int main( int argc, char* argv[] ) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,21 +1,20 @@
|
|||||||
#include <fsfw/unittest/core/CatchFactory.h>
|
#include "CatchFactory.h"
|
||||||
#include "CatchDefinitions.h"
|
#include "CatchDefinitions.h"
|
||||||
#include <testcfg/cdatapool/dataPoolInit.h>
|
|
||||||
|
|
||||||
#ifdef GCOV
|
#ifdef GCOV
|
||||||
#include <gcov.h>
|
#include <gcov.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "../../objectmanager/ObjectManager.h"
|
#include <fsfw/objectmanager/ObjectManager.h>
|
||||||
#include "../../objectmanager/ObjectManagerIF.h"
|
#include <fsfw/objectmanager/ObjectManagerIF.h>
|
||||||
#include "../../storagemanager/StorageManagerIF.h"
|
#include <fsfw/storagemanager/StorageManagerIF.h>
|
||||||
#include "../../serviceinterface/ServiceInterfaceStream.h"
|
#include <fsfw/serviceinterface/ServiceInterfaceStream.h>
|
||||||
|
|
||||||
|
|
||||||
/* Global instantiations normally done in main.cpp */
|
/* Global instantiations normally done in main.cpp */
|
||||||
/* Initialize Data Pool */
|
/* Initialize Data Pool */
|
||||||
|
|
||||||
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
namespace sif {
|
namespace sif {
|
||||||
/* Set up output streams */
|
/* Set up output streams */
|
||||||
ServiceInterfaceStream debug("DEBUG");
|
ServiceInterfaceStream debug("DEBUG");
|
||||||
@ -23,6 +22,7 @@ ServiceInterfaceStream info("INFO");
|
|||||||
ServiceInterfaceStream error("ERROR");
|
ServiceInterfaceStream error("ERROR");
|
||||||
ServiceInterfaceStream warning("WARNING");
|
ServiceInterfaceStream warning("WARNING");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Global object manager */
|
/* Global object manager */
|
||||||
ObjectManagerIF *objectManager;
|
ObjectManagerIF *objectManager;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include <fsfw/unittest/core/printChar.h>
|
#include "printChar.h"
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
||||||
void printChar(const char* character, bool errStream) {
|
void printChar(const char* character, bool errStream) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user