diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-12-09 09:31:01 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-12-09 09:31:01 +0000 |
commit | 0ef3b1b10a8cd66a0a8e8b9ef6eb50948ce51601 (patch) | |
tree | 32e86853ef9145d116b614e1c51aa6aa910bbb48 /libcxx/test/support/test.support | |
parent | f51e05ffbc28d184db78574f8477338093f358f8 (diff) | |
download | bcm5719-llvm-0ef3b1b10a8cd66a0a8e8b9ef6eb50948ce51601.tar.gz bcm5719-llvm-0ef3b1b10a8cd66a0a8e8b9ef6eb50948ce51601.zip |
Put C++ ABI headers in a special build directory instead of the top level.
This patch changes where the C++ ABI headers are put during the build. Previously
they were put in the top level include directory (not the libc++ header directory).
However that just polutes the top level directory. Instead this patch creates a special
directory to put them in. The reason they can't be put under c++/v1 until after the build
is because libc++ uses the in-source headers, so we can't add the include path of the libc++
headers in the object dir.
Additionally this patch teaches the test suite how to find the ABI headers,
and adds a demangling utility to help debug tests with.
llvm-svn: 289195
Diffstat (limited to 'libcxx/test/support/test.support')
-rw-r--r-- | libcxx/test/support/test.support/test_demangle.pass.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/libcxx/test/support/test.support/test_demangle.pass.cpp b/libcxx/test/support/test.support/test_demangle.pass.cpp new file mode 100644 index 00000000000..c5668d6f569 --- /dev/null +++ b/libcxx/test/support/test.support/test_demangle.pass.cpp @@ -0,0 +1,37 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +#include "demangle.h" +#include <typeinfo> +#include <cassert> + +struct MyType {}; + +template <class T, class U> struct ArgumentListID {}; + +int main() { + struct { + const char* raw; + const char* expect; + } TestCases[] = { + {typeid(int).name(), "i"}, // FIXME + {typeid(MyType).name(), "MyType"}, + {typeid(ArgumentListID<int, MyType>).name(), "ArgumentListID<int, MyType>"} + }; + const size_t size = sizeof(TestCases) / sizeof(TestCases[0]); + for (size_t i=0; i < size; ++i) { + const char* raw = TestCases[i].raw; + const char* expect = TestCases[i].expect; +#ifdef TEST_HAS_NO_DEMANGLE + assert(demangle(raw) == raw); +#else + assert(demangle(raw) == expect); +#endif + } +} |