ErrorChecking.h 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //===- 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. #ifndef LLVM_UNITTESTS_DEBUGINFO_CODEVIEW_ERRORCHECKING_H
  10. #define LLVM_UNITTESTS_DEBUGINFO_CODEVIEW_ERRORCHECKING_H
  11. #define EXPECT_NO_ERROR(Err) \
  12. { \
  13. auto E = Err; \
  14. EXPECT_FALSE(static_cast<bool>(E)); \
  15. if (E) \
  16. consumeError(std::move(E)); \
  17. }
  18. #define EXPECT_ERROR(Err) \
  19. { \
  20. auto E = Err; \
  21. EXPECT_TRUE(static_cast<bool>(E)); \
  22. if (E) \
  23. consumeError(std::move(E)); \
  24. }
  25. #define ASSERT_EXPECTED(Exp) \
  26. { \
  27. auto E = Exp.takeError(); \
  28. bool Success = static_cast<bool>(E); \
  29. if (!Success) \
  30. consumeError(std::move(E)); \
  31. ASSERT_FALSE(Success); \
  32. }
  33. #define EXPECT_EXPECTED(Exp) \
  34. { \
  35. auto E = Exp.takeError(); \
  36. EXPECT_FALSE(static_cast<bool>(E)); \
  37. if (E) { \
  38. consumeError(std::move(E)); \
  39. return; \
  40. } \
  41. }
  42. #define EXPECT_EXPECTED_EQ(Val, Exp) \
  43. { \
  44. auto Result = Exp; \
  45. auto E = Result.takeError(); \
  46. EXPECT_FALSE(static_cast<bool>(E)); \
  47. if (E) { \
  48. consumeError(std::move(E)); \
  49. return; \
  50. } \
  51. EXPECT_EQ(Val, *Result); \
  52. }
  53. #define EXPECT_UNEXPECTED(Exp) \
  54. { \
  55. auto E = Exp.takeError(); \
  56. EXPECT_TRUE(static_cast<bool>(E)); \
  57. if (E) { \
  58. consumeError(std::move(E)); \
  59. return; \
  60. } \
  61. }
  62. #endif