diff options
author | Zachary Turner <zturner@google.com> | 2017-06-14 16:41:50 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-06-14 16:41:50 +0000 |
commit | cb30e705d8006b5bb7671ab2b364e8c38b6c0232 (patch) | |
tree | 6a8d9510060208e357745338b9d910d4329c6984 /llvm/unittests/DebugInfo/CodeView | |
parent | b6567b18c72b3a4370002d689fda50eeee827d5b (diff) | |
download | bcm5719-llvm-cb30e705d8006b5bb7671ab2b364e8c38b6c0232.tar.gz bcm5719-llvm-cb30e705d8006b5bb7671ab2b364e8c38b6c0232.zip |
[gtest] Create a shared include directory for gtest utilities.
Many times unit tests for different libraries would like to use
the same helper functions for checking common types of errors.
This patch adds a common library with helpers for testing things
in Support, and introduces helpers in here for integrating the
llvm::Error and llvm::Expected<T> classes with gtest and gmock.
Normally, we would just be able to write:
EXPECT_THAT(someFunction(), succeeded());
but due to some quirks in llvm::Error's move semantics, gmock
doesn't make this easy, so two macros EXPECT_THAT_ERROR() and
EXPECT_THAT_EXPECTED() are introduced to gloss over the difficulties.
Consider this an exception, and possibly only temporary as we
look for ways to improve this.
Differential Revision: https://reviews.llvm.org/D33059
llvm-svn: 305395
Diffstat (limited to 'llvm/unittests/DebugInfo/CodeView')
4 files changed, 24 insertions, 90 deletions
diff --git a/llvm/unittests/DebugInfo/CodeView/CMakeLists.txt b/llvm/unittests/DebugInfo/CodeView/CMakeLists.txt index aff3b6d09aa..800f482d668 100644 --- a/llvm/unittests/DebugInfo/CodeView/CMakeLists.txt +++ b/llvm/unittests/DebugInfo/CodeView/CMakeLists.txt @@ -1,12 +1,13 @@ -set(LLVM_LINK_COMPONENTS
- DebugInfoCodeView
- )
-
-set(DebugInfoCodeViewSources
- RandomAccessVisitorTest.cpp
- TypeIndexDiscoveryTest.cpp
- )
-
-add_llvm_unittest(DebugInfoCodeViewTests
- ${DebugInfoCodeViewSources}
- )
+set(LLVM_LINK_COMPONENTS + DebugInfoCodeView + TestingSupport + ) + +set(DebugInfoCodeViewSources + RandomAccessVisitorTest.cpp + TypeIndexDiscoveryTest.cpp + ) + +add_llvm_unittest(DebugInfoCodeViewTests + ${DebugInfoCodeViewSources} + ) diff --git a/llvm/unittests/DebugInfo/CodeView/ErrorChecking.h b/llvm/unittests/DebugInfo/CodeView/ErrorChecking.h deleted file mode 100644 index 4ca74c487b3..00000000000 --- a/llvm/unittests/DebugInfo/CodeView/ErrorChecking.h +++ /dev/null @@ -1,70 +0,0 @@ -//===- ErrorChecking.h - Helpers for verifying llvm::Errors -----*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_UNITTESTS_DEBUGINFO_CODEVIEW_ERRORCHECKING_H -#define LLVM_UNITTESTS_DEBUGINFO_CODEVIEW_ERRORCHECKING_H - -#define EXPECT_NO_ERROR(Err) \ - { \ - auto E = Err; \ - EXPECT_FALSE(static_cast<bool>(E)); \ - if (E) \ - consumeError(std::move(E)); \ - } - -#define EXPECT_ERROR(Err) \ - { \ - auto E = Err; \ - EXPECT_TRUE(static_cast<bool>(E)); \ - if (E) \ - consumeError(std::move(E)); \ - } - -#define ASSERT_EXPECTED(Exp) \ - { \ - auto E = Exp.takeError(); \ - bool Success = static_cast<bool>(E); \ - if (!Success) \ - consumeError(std::move(E)); \ - ASSERT_FALSE(Success); \ - } - -#define EXPECT_EXPECTED(Exp) \ - { \ - auto E = Exp.takeError(); \ - EXPECT_FALSE(static_cast<bool>(E)); \ - if (E) { \ - consumeError(std::move(E)); \ - return; \ - } \ - } - -#define EXPECT_EXPECTED_EQ(Val, Exp) \ - { \ - auto Result = Exp; \ - auto E = Result.takeError(); \ - EXPECT_FALSE(static_cast<bool>(E)); \ - if (E) { \ - consumeError(std::move(E)); \ - return; \ - } \ - EXPECT_EQ(Val, *Result); \ - } - -#define EXPECT_UNEXPECTED(Exp) \ - { \ - auto E = Exp.takeError(); \ - EXPECT_TRUE(static_cast<bool>(E)); \ - if (E) { \ - consumeError(std::move(E)); \ - return; \ - } \ - } - -#endif diff --git a/llvm/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp b/llvm/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp index 0ca24c716d1..4fa172a37ef 100644 --- a/llvm/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp +++ b/llvm/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp @@ -7,8 +7,6 @@ // //===----------------------------------------------------------------------===// -#include "ErrorChecking.h" - #include "llvm/ADT/SmallBitVector.h" #include "llvm/DebugInfo/CodeView/CVTypeVisitor.h" #include "llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h" @@ -22,6 +20,7 @@ #include "llvm/Support/Allocator.h" #include "llvm/Support/BinaryItemStream.h" #include "llvm/Support/Error.h" +#include "llvm/Testing/Support/Error.h" #include "gtest/gtest.h" @@ -219,7 +218,8 @@ TEST_F(RandomAccessVisitorTest, MultipleVisits) { for (uint32_t I : IndicesToVisit) { TypeIndex TI = TypeIndex::fromArrayIndex(I); CVType T = Types.getType(TI); - EXPECT_NO_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks)); + EXPECT_THAT_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks), + Succeeded()); } // [0,8) should be present @@ -247,7 +247,8 @@ TEST_F(RandomAccessVisitorTest, DescendingWithinChunk) { for (uint32_t I : IndicesToVisit) { TypeIndex TI = TypeIndex::fromArrayIndex(I); CVType T = Types.getType(TI); - EXPECT_NO_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks)); + EXPECT_THAT_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks), + Succeeded()); } // [0, 7] @@ -275,7 +276,8 @@ TEST_F(RandomAccessVisitorTest, AscendingWithinChunk) { for (uint32_t I : IndicesToVisit) { TypeIndex TI = TypeIndex::fromArrayIndex(I); CVType T = Types.getType(TI); - EXPECT_NO_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks)); + EXPECT_THAT_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks), + Succeeded()); } // [0, 7] @@ -305,7 +307,8 @@ TEST_F(RandomAccessVisitorTest, StopPrematurelyInChunk) { for (uint32_t I : IndicesToVisit) { TypeIndex TI = TypeIndex::fromArrayIndex(I); CVType T = Types.getType(TI); - EXPECT_NO_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks)); + EXPECT_THAT_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks), + Succeeded()); } // [0, 8) should be visited. @@ -334,7 +337,8 @@ TEST_F(RandomAccessVisitorTest, InnerChunk) { for (uint32_t I : IndicesToVisit) { TypeIndex TI = TypeIndex::fromArrayIndex(I); CVType T = Types.getType(TI); - EXPECT_NO_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks)); + EXPECT_THAT_ERROR(codeview::visitTypeRecord(T, TI, TestState->Callbacks), + Succeeded()); } // [4, 9) diff --git a/llvm/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp b/llvm/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp index 4eca7777a1e..99c84906be9 100644 --- a/llvm/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp +++ b/llvm/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp @@ -9,7 +9,6 @@ #include "llvm/DebugInfo/CodeView/TypeIndexDiscovery.h" -#include "ErrorChecking.h" #include "llvm/DebugInfo/CodeView/TypeTableBuilder.h" #include "llvm/Support/Allocator.h" |