class new in Git master
#include <Corrade/TestSuite/Tester.h>
TestCaseDescriptionSourceLocation Instanced test case description with source location.
When used instead of Containers::const char*
to define instanced test case descriptions, any messages printed to the output will contain also the file/line info of where the instance data were defined in addition of file/line location from where the message originated:
const struct { TestSuite::TestCaseDescriptionSourceLocation name; const char* filename; const char* ext; } ExtensionData[]{ {"simple", "file.txt", ".txt"}, {"no extension", "Documents", ""}, {"two extensions", "data.tar.gz", ".tar.gz"}, {"directory with a dot", "/etc/conf.d/samba", ""}, }; PathTest::PathTest() { addInstancedTests({&PathTest::extension}, Containers::arraySize(ExtensionData)); } void PathTest::extension() { auto&& data = ExtensionData[testCaseInstanceId()]; setTestCaseDescription(data.name); CORRADE_COMPARE(fileExtension(data.filename), data.ext); }
Starting PathTest with 4 test cases... OK [1] extension(simple) OK [2] extension(no extension) FAIL [3] extension(two extensions) at …/PathTest.cpp:68 with data at …/PathTest.cpp:55 Values fileExtension(data.filename) and data.ext are not the same, actual is .gz but expected .tar.gz OK [4] extension(directory with a dot) Finished PathTest with 1 errors out of 4 checks.
Useful especially in combination with terminals that are capable of treating the location information as a direct link to an IDE or text editor — clicking on …/PathTest.cpp:55
will open the editor at the line containing the "two extensions"
test case instance.
At the moment, this feature is available on GCC at least since version 4.8 (although it may not be giving correct results until version 12), Clang 9+ and MSVC 2019 16.6 and newer. Elsewhere it behaves like if just a regular Tester::
Constructors, destructors, conversion operators
-
TestCaseDescriptionSourceLocation(Containers::
StringView description) - Constructor.
- TestCaseDescriptionSourceLocation(const char* description)
- operator Containers::StringView() const
- Conversion to a string view.
Function documentation
Corrade:: TestSuite:: TestCaseDescriptionSourceLocation:: TestCaseDescriptionSourceLocation(const char* description)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.