summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/DebugInfo/CodeView
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-06-14 16:41:50 +0000
committerZachary Turner <zturner@google.com>2017-06-14 16:41:50 +0000
commitcb30e705d8006b5bb7671ab2b364e8c38b6c0232 (patch)
tree6a8d9510060208e357745338b9d910d4329c6984 /llvm/unittests/DebugInfo/CodeView
parentb6567b18c72b3a4370002d689fda50eeee827d5b (diff)
downloadbcm5719-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')
-rw-r--r--llvm/unittests/DebugInfo/CodeView/CMakeLists.txt25
-rw-r--r--llvm/unittests/DebugInfo/CodeView/ErrorChecking.h70
-rw-r--r--llvm/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp18
-rw-r--r--llvm/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp1
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"
OpenPOWER on IntegriCloud