diff options
author | Stephen Hines <srhines@google.com> | 2014-12-04 19:51:48 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-12-04 19:51:48 +0000 |
commit | a21bbdfad461e957fa42ac9d6860ddc9de2da3e9 (patch) | |
tree | 8d32ff2094b47e15a8def30d62fd7dee6e009de3 /unittests/IR/DebugInfoTest.cpp | |
parent | 6b8c6a5088c221af2b25065b8b6b8b0fec8a116f (diff) | |
parent | 876d6995443e99d13696f3941c3a789a4daa7c7a (diff) | |
download | external_llvm-a21bbdfad461e957fa42ac9d6860ddc9de2da3e9.zip external_llvm-a21bbdfad461e957fa42ac9d6860ddc9de2da3e9.tar.gz external_llvm-a21bbdfad461e957fa42ac9d6860ddc9de2da3e9.tar.bz2 |
am 876d6995: Merge "Update aosp/master LLVM for rebase to r222494."
* commit '876d6995443e99d13696f3941c3a789a4daa7c7a':
Update aosp/master LLVM for rebase to r222494.
Diffstat (limited to 'unittests/IR/DebugInfoTest.cpp')
-rw-r--r-- | unittests/IR/DebugInfoTest.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/unittests/IR/DebugInfoTest.cpp b/unittests/IR/DebugInfoTest.cpp new file mode 100644 index 0000000..1fa851e --- /dev/null +++ b/unittests/IR/DebugInfoTest.cpp @@ -0,0 +1,68 @@ +//===- llvm/unittest/IR/DebugInfo.cpp - DebugInfo tests -------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/IR/DebugInfo.h" +#include "gtest/gtest.h" + +using namespace llvm; + +namespace llvm { + +static void PrintTo(const StringRef &S, ::std::ostream *os) { + *os << "(" << (const void *)S.data() << "," << S.size() << ") = '"; + for (auto C : S) + if (C) + *os << C; + else + *os << "\\00"; + *os << "'"; +} +static void PrintTo(const DIHeaderFieldIterator &I, ::std::ostream *os) { + PrintTo(I.getCurrent(), os); + *os << " in "; + PrintTo(I.getHeader(), os); +} + +} // end namespace llvm + +namespace { + +#define MAKE_FIELD_ITERATOR(S) \ + DIHeaderFieldIterator(StringRef(S, sizeof(S) - 1)) +TEST(DebugInfoTest, DIHeaderFieldIterator) { + ASSERT_EQ(DIHeaderFieldIterator(), DIHeaderFieldIterator()); + + ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("")); + ASSERT_EQ(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("")); + ASSERT_EQ("", *DIHeaderFieldIterator("")); + + ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("stuff")); + ASSERT_EQ(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("stuff")); + ASSERT_EQ("stuff", *DIHeaderFieldIterator("stuff")); + + ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("st\0uff")); + ASSERT_NE(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("st\0uff")); + ASSERT_EQ(DIHeaderFieldIterator(), ++++MAKE_FIELD_ITERATOR("st\0uff")); + ASSERT_EQ("st", *MAKE_FIELD_ITERATOR("st\0uff")); + ASSERT_EQ("uff", *++MAKE_FIELD_ITERATOR("st\0uff")); + + ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("stuff\0")); + ASSERT_NE(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("stuff\0")); + ASSERT_EQ(DIHeaderFieldIterator(), ++++MAKE_FIELD_ITERATOR("stuff\0")); + ASSERT_EQ("stuff", *MAKE_FIELD_ITERATOR("stuff\0")); + ASSERT_EQ("", *++MAKE_FIELD_ITERATOR("stuff\0")); + + ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("\0stuff")); + ASSERT_NE(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("\0stuff")); + ASSERT_EQ(DIHeaderFieldIterator(), ++++MAKE_FIELD_ITERATOR("\0stuff")); + ASSERT_EQ("", *MAKE_FIELD_ITERATOR("\0stuff")); + ASSERT_EQ("stuff", *++MAKE_FIELD_ITERATOR("\0stuff")); +} + +} // end namespace |