Test Log
Test Log macros provide a simple means to add information from the source under test to the currently executing test case. This information is added to the test report as annotations with a level of either Error, Warning, or Info according to the macro that is used. The log messages are also captured when tracing is enabled in the STRIDE Runner.
The srTEST_LOG_xx() macro is intended to be a general instrumentation macro for capturing information in the source under test. Logs differ from test points in that they cannot be used for the basis of expectation tests - they are strictly informational. The STRIDE log messages are intended to supplement, not supplant STRIDE Test Points.
Reference
To use these macros you should include the srtest.h header file from the STRIDE Runtime in your compilation unit. The Test Log macros are active only when STRIDE_ENABLED is #defined, therefore it is practical to place these macros in-line in production source. When STRIDE_ENABLED is not #defined, these macros evaluate to nothing.
Error Logging | |
srTEST_LOG_ERROR(message, ...) | message is a pointer to a null-terminated format string ... variable list matching the format string |
Warning Logging | |
srTEST_LOG_WARN(message, ...) | message is a pointer to a null-terminated format string ... variable list matching the format string |
Info Logging | |
srTEST_LOG_INFO(message, ...) | message is a pointer to a null-terminated format string ... variable list matching the format string |
- The maximum length of the message string approximately 1000 characters. If the maximum length is exceeded, the message string is truncated.
C++ Only Features
In C++ source the macros above support adding to other content to the message by using the << operator. For more information please read this.
Log Level
By default only logs with level of either Error or Warning are propagated to the host. The STRIDE Runner via --log_level option provides finer control over that behavior.
Code Snippets
#include <srtest.h>
...
srTEST_LOG_ERROR("This is an error message.");
srTEST_LOG_WARN("This is a warning message with format string %d.", 123);
srTEST_LOG_INFO("This is an info message with format string %s and %s.", "this", "that");
#ifdef __cplusplus
srTEST_LOG_ERROR("some error: ") << "stream input supported under c++";
#endif