C++ Only Features: Difference between revisions
Jump to navigation
Jump to search
(Created page with '=== Use Operator << to Augment Test Macros === In C++ test code Test Point, Test Log and Test Code macros support adding to the annotation using the << operator. For…') |
|||
Line 1: | Line 1: | ||
=== Use Operator << to Augment Test Macros === | === Use Operator << to Augment Test Macros === | ||
In C++ test code [[Test Point]], [[Test Log]] and [[Test Code]] macros support adding to the annotation using the << operator. For example: | In C++ test code [[Test Point]], [[Test Log]] and [[Test Code Macros|Test Code]] macros support adding to the annotation using the << operator. For example: | ||
<source lang="cpp"> | <source lang="cpp"> |
Revision as of 18:41, 9 March 2010
Use Operator << to Augment Test Macros
In C++ test code Test Point, Test Log and Test Code macros support adding to the annotation using the << operator. For example:
srEXPECT_TRUE(a != b) << "My custom message";
As delivered, the macros will support stream input annotations for:
- all numeric types,
- C string (char* or wchar_t*), and
- types allowing implicit cast to numeric type or "C" string.
You can also overload the << operator in order to annotate reports using your own custom type. An example is below.
The following will compile and execute successfully given that the << operator is overloaded as shown:
#include <srtest.h>
// MyCustomClass implementation
class MyCustomClass
{
public:
MyCustomClass(int i) : m_int(i) {}
private:
int m_int;
friend stride::Message& operator<<(stride::Message& ss, const MyCustomClass& obj);
};
stride::Message& operator<<(stride::Message& ss, const MyCustomClass& obj)
{
ss << obj.m_int;
return ss;
}
void test()
{
MyCustomClass custom(34);
srEXPECT_FALSE(true) << custom;
}