| the Compartmented Robust Posix C++ Unit Test system |
|
|---|
Mark a test with a tag.
Used in: The modifier list of a test definition. See
TEST(name, ...)
Set a named tag to a test. The tag must be visible. See
DEFINE_TEST_TAG(tagname) for
defining tags.
A test can either be untagged (the default,) or have one tag. It is
not possible to attach several tags to a test.
See the command line option -T
{select}{/non-critical}
/
--tags={select}{/non-critical}
for how to use tags when running a test
program.
Example. The following test program:
#include <crpcut.hpp>
DEFINE_TEST_TAG(known_bug);
DEFINE_TEST_TAG(uncertain);
TEST(untagged)
{
FAIL << "the critical error";
}
TEST(buggy, WITH_TEST_TAG(known_bug))
{
FAIL << "this is a known issue we don't want to be bothered with right now";
}
TEST(we_dont_know_the_expected_behaviour, WITH_TEST_TAG(uncertain))
{
FAIL << "Was this right or wrong?";
}
int main(int argc, char *argv[])
{
return crpcut::run(argc, argv);
}
Shows how tags are defined and used by tests. Running it with
--tags=-known_bug/uncertain yields:
FAILED!: untagged
phase="running" --------------------------------------------------------------
samples/test_tag.cpp:35
the critical error
-------------------------------------------------------------------------------
===============================================================================
FAILED?: we_dont_know_the_expected_behaviour
phase="running" --------------------------------------------------------------
samples/test_tag.cpp:45
Was this right or wrong?
-------------------------------------------------------------------------------
===============================================================================
2 test cases selected
tag run passed failed
?uncertain 1 0 1
Total : Sum Critical Non-critical
FAILED : 2 1 1
Which shows two tests run, both failed, but one as non-critical. The test buggy is not run since all tests tagged known_bug were filtered out.