blob: 6d4a7de7834a13aa16839595dbd84f66cf9ab623 [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
Zachary Turner9f664052016-09-14 23:17:08 +000039#define EXPECT_UNEXPECTED(Exp) \
40 { \
41 auto E = Exp.takeError(); \
42 EXPECT_TRUE(static_cast<bool>(E)); \
43 if (E) { \
44 consumeError(std::move(E)); \
45 return; \
46 } \
47 }
Zachary Turnerf52a8992016-07-15 20:43:38 +000048
49#endif