The Unit Test Framework is flexible on the naming the test units (test cases/suites) and it is possible to use a wide variety of characters. However there are scenarios where the name of a test unit may collide with other features of the Unit Test Framework. For instance:
section for more details)
To prevent any conflicting declaration, the Unit Test Framework
sanitizes the name given to a test unit
(case or suite), prior to adding the test to the test tree. Any conflicting
character is replaced by an underscore
Spaces are not considered as special chars and are preserved, except for the leading and trailing spaces which are removed.
The sanitization of the test unit names has been introduced in Boost 1.67.
The Unit Test Framework considers an error if two sibling test cases have the same name. This consistency check is performed at runtime and is not sensitive to test filtering.
For test-cases registered automatically, and within the same compilation
unit, a compilation error should be raised by the compiler in case of name
conflict. For manual registration of test cases and in case of conflicts,
BOOST_TEST_CASE_NAME may be used.
The data driven tests are automatically created in an isolated test-suite and with a name that is indexed on the sample.
This constraints does not apply to test-suites: Opening/closing a test-suite declaration adds the test-cases to an existing or newly created test-suite of that name.