Test Log

From STRIDE Wiki
Revision as of 12:54, 21 July 2015 by Jeffs (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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