Adds immediate migration results
This commit is contained in:
2395 files changed
+357322
-2524
No files matched your search
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
(c) Copyright, Real-Time Innovations, 2023.
|
||||
All rights reserved.
|
||||
No duplications, whole or partial, manual or electronic, may be made
|
||||
without express written permission. Any such copies, or
|
||||
revisions thereof, must display this notice unaltered.
|
||||
This code contains trade secrets of Real-Time Innovations, Inc.
|
||||
*/
|
||||
|
||||
#ifndef HPP_APPUTILS_TEST_LOG_CAPTURE_HPP_
|
||||
#define HPP_APPUTILS_TEST_LOG_CAPTURE_HPP_
|
||||
|
||||
// IMPORTANT: macros.hpp must be the first RTI header included in every header
|
||||
// file so that symbols are exported correctly on Windows
|
||||
#include <dds/core/macros.hpp>
|
||||
|
||||
#include <rti/apputils/ServiceException.hpp>
|
||||
|
||||
#include "rtitest/test_setting.h"
|
||||
#include "ddsctesthelpers/test_helper.h"
|
||||
|
||||
namespace rti { namespace apputils { namespace test {
|
||||
|
||||
/**
|
||||
* @brief This class is a C++ wrapper for the APPUTILSTestUtils_LoggerDevice
|
||||
* type, used to capture logs and find expected messages.
|
||||
*/
|
||||
class TestLogCapture {
|
||||
public:
|
||||
TestLogCapture(const std::string& expected_message) :
|
||||
expected_message_(expected_message)
|
||||
{
|
||||
device_data_ = DDSCTesterHelperLoggerDeviceData_INITIALIZER(NULL);
|
||||
if (!DDSCTesterHelperLoggerDeviceData_initialize(&device_data_)) {
|
||||
RTI_THROW_SERVICE_EXCEPTION(
|
||||
&RTI_LOG_INIT_FAILURE_s,
|
||||
"logger device data");
|
||||
}
|
||||
device_data_.expectedMessage = expected_message_.c_str();
|
||||
|
||||
if (!DDSCTesterHelper_cacheLoggingConfiguration()) {
|
||||
RTI_THROW_SERVICE_EXCEPTION(
|
||||
&RTI_LOG_ANY_FAILURE_s,
|
||||
"cache logging configuration");
|
||||
}
|
||||
|
||||
// Prepare the device logger for catching the expected message
|
||||
logger_device_ = NDDS_Config_LoggerDevice_INITIALIZER;
|
||||
logger_device_.device_data = &device_data_;
|
||||
logger_device_.write = DDSCTesterHelper_loggerDeviceWrite;
|
||||
|
||||
if (!NDDS_Config_Logger_set_output_device(
|
||||
NDDS_Config_Logger_get_instance(),
|
||||
&logger_device_)) {
|
||||
RTI_THROW_SERVICE_EXCEPTION(
|
||||
&RTI_LOG_INIT_FAILURE_s,
|
||||
"set output device");
|
||||
}
|
||||
}
|
||||
|
||||
~TestLogCapture()
|
||||
{
|
||||
DDSCTesterHelperLoggerDeviceData_finalize(&device_data_);
|
||||
|
||||
// Restore the logging configuration; this will restore the previous
|
||||
// output device if it was changed
|
||||
if (!DDSCTesterHelper_restoreLoggingConfiguration()) {
|
||||
RTITestLogger_log(
|
||||
RTI_LOG_BIT_EXCEPTION,
|
||||
&RTI_TEST_LOG_FAILURE_TEMPLATE,
|
||||
"restore logging configuration");
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int found_messages() const
|
||||
{
|
||||
return device_data_.foundMessages;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
|
||||
struct NDDS_Config_LoggerDevice logger_device_;
|
||||
|
||||
struct DDSCTesterHelperLoggerDeviceData device_data_;
|
||||
|
||||
std::string expected_message_;
|
||||
};
|
||||
|
||||
} } } /* namespace rti::apputils::test */
|
||||
|
||||
#endif /* HPP_APPUTILS_TEST_LOG_CAPTURE_HPP_ */
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/* End $Id$ */
|
||||
Reference in new issue
Block a user