![]() By renaming .fail.cpp tests that don't need clang-verify to .compile.fail.cpp, the new test format will not try to compile these tests with clang-verify, and the old test format will work just the same. However, this allows removing a workaround that requires parsing each test looking for clang-verify markup. After this change, a .fail.cpp test should always have clang-verify markup. When clang-verify is not supported by the compiler, we will just check that these tests fail to compile. When clang-verify is supported, these tests will be compiled with clang-verify whether they have markup or not (so they should have markup, or they will fail). This simplifies the test suite and also ensures that all of our .fail.cpp tests provide clang-verify markup. If it's impossible for a test to have clang-verify markup, it can be moved to a .compile.fail.cpp test, which are unconditionally just checked for compilation failure. |
||
---|---|---|
.. | ||
unique.ptr.class | ||
unique.ptr.create | ||
unique.ptr.dltr | ||
unique.ptr.special | ||
README.TXT |
README.TXT
Test Naming and Directory Structure =================================== The directory structure for the unique_ptr class templates differs from the normal test directory naming conventions (e.g. matching the stable name in the standard). Instead of having a [unique.ptr.single] and [unique.ptr.runtime] directory, each containing their own tests, a single directory, "unique.ptr.class", contains both sets of tests. This allows the common behavior of the two unique_ptr specializations to be tested in the same place without duplication. Tests specific to [unique.ptr.single] have the suffix ".single.pass.cpp" and those specific to [unique.ptr.runtime] are named "*.runtime.pass.cpp". Tests for both specializations are named normally.