blob: da734a9b1b5ba56ec966533378b0c91ab70fc354 [file] [log] [blame]
Zachary Turnerf52a8992016-07-15 20:43:38 +00001//===- ErrorChecking.h - Helpers for verifying llvm::Errors -----*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLVM_UNITTESTS_DEBUGINFO_PDB_ERRORCHECKING_H
11#define LLVM_UNITTESTS_DEBUGINFO_PDB_ERRORCHECKING_H
12
13#define EXPECT_NO_ERROR(Err) \
14 { \
15 auto E = Err; \
16 EXPECT_FALSE(static_cast<bool>(E)); \
17 if (E) \
18 consumeError(std::move(E)); \
19 }
20
21#define EXPECT_ERROR(Err) \
22 { \
23 auto E = Err; \
24 EXPECT_TRUE(static_cast<bool>(E)); \
25 if (E) \
26 consumeError(std::move(E)); \
27 }
28
29#define EXPECT_EXPECTED(Exp) \
30 { \
31 auto E = Exp.takeError(); \
32 EXPECT_FALSE(static_cast<bool>(E)); \
33 if (E) { \
34 consumeError(std::move(E)); \
35 return; \
36 } \
37 }
38
39#define EXPECT_UNEXPECTED(Exp) EXPECT_ERROR(Err)
40
41#endif