Test Log: Difference between revisions
No edit summary |
mNo edit summary |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
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 | __NOTOC__ | ||
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 <tt>srTEST_LOG_xx()</tt> macro is intended to be a general instrumentation macro for capturing information in the source under test. Logs differ from | The <tt>srTEST_LOG_xx()</tt> 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 a [[Test Point | Test Points]]. | ||
= Reference = | |||
To use these macros you should include the '''srtest.h''' header file from the | 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 <tt>STRIDE_ENABLED</tt> is <tt>#define</tt>d, therefore it is practical to place these macros in-line in production source. When <tt>STRIDE_ENABLED</tt> is not <tt>#define</tt>d, these macros evaluate to nothing. | ||
{| class="prettytable" | {| class="prettytable" | ||
| colspan="2" | '''Error Logging''' | | colspan="2" | '''Error Logging''' | ||
|- | |- | ||
| srTEST_LOG_ERROR | | srTEST_LOG_ERROR(''message'', ...) | ||
| ''message'' is a pointer to a null-terminated format string<br/> | | ''message'' is a pointer to a null-terminated format string<br/> | ||
''...'' variable list | ''...'' variable list matching the format string | ||
|} | |} | ||
Line 20: | Line 18: | ||
| colspan="2" | '''Warning Logging''' | | colspan="2" | '''Warning Logging''' | ||
|- | |- | ||
| srTEST_LOG_WARN | | srTEST_LOG_WARN(''message'', ...) | ||
| ''message'' is a pointer to a null-terminated format string<br/> | | ''message'' is a pointer to a null-terminated format string<br/> | ||
''...'' variable list | ''...'' variable list matching the format string | ||
|} | |} | ||
Line 31: | Line 26: | ||
| colspan="2" | '''Info Logging''' | | colspan="2" | '''Info Logging''' | ||
|- | |- | ||
| srTEST_LOG_INFO | | srTEST_LOG_INFO(''message'', ...) | ||
| ''message'' is a pointer to a null-terminated format string<br/> | | ''message'' is a pointer to a null-terminated format string<br/> | ||
''...'' variable list | ''...'' variable list matching the format string | ||
|} | |} | ||
Line 42: | Line 34: | ||
=== C++ Only Features === | === C++ Only Features === | ||
In C++ source | In C++ source the macros above support adding to other content to the message by using the << operator. | ||
=== Log Level === | |||
By default only logs with level of either ''Error'' or ''Warning'' are propagated to the host. The [[STRIDE Runner#Options | Stride Runner]] via <tt>--log_level</tt> ''option'' provides finer control over that behavior. | |||
== Code Snippets == | == Code Snippets == | ||
Line 50: | Line 46: | ||
srTEST_LOG_ERROR("This is an error message."); | 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 | #ifdef __cplusplus | ||
Line 58: | Line 54: | ||
#endif | #endif | ||
</source> | </source> | ||
Latest revision as of 18:54, 21 July 2015
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 a 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.
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