diff options
author | Pavel Labath <pavel@labath.sk> | 2019-08-14 13:33:28 +0000 |
---|---|---|
committer | Pavel Labath <pavel@labath.sk> | 2019-08-14 13:33:28 +0000 |
commit | 40837e97b199b4d6546df9f8912e14a56c434417 (patch) | |
tree | 99297768aa856be011a1fd62ef93806f019e2eb5 /llvm/unittests/Support/Path.cpp | |
parent | 4894eeecc99d9729259dba54efc207be4bc4ddf5 (diff) | |
download | bcm5719-llvm-40837e97b199b4d6546df9f8912e14a56c434417.tar.gz bcm5719-llvm-40837e97b199b4d6546df9f8912e14a56c434417.zip |
raw_ostream: add operator<< overload for std::error_code
Summary:
The main motivation for this is unit tests, which contain a large macro
for pretty-printing std::error_code, and this macro is duplicated in
every file that needs to do this. However, the functionality may be
useful elsewhere too.
In this patch I have reimplemented the existing ASSERT_NO_ERROR macros
to reuse the new functionality, but I have kept the macro (as a
one-liner) as it is slightly more readable than ASSERT_EQ(...,
std::error_code()).
Reviewers: sammccall, ilya-biryukov
Subscribers: zturner, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65643
llvm-svn: 368849
Diffstat (limited to 'llvm/unittests/Support/Path.cpp')
-rw-r--r-- | llvm/unittests/Support/Path.cpp | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/llvm/unittests/Support/Path.cpp b/llvm/unittests/Support/Path.cpp index 1802b0031ad..101f7608004 100644 --- a/llvm/unittests/Support/Path.cpp +++ b/llvm/unittests/Support/Path.cpp @@ -38,24 +38,8 @@ using namespace llvm; using namespace llvm::sys; -#define ASSERT_NO_ERROR(x) \ - if (std::error_code ASSERT_NO_ERROR_ec = x) { \ - SmallString<128> MessageStorage; \ - raw_svector_ostream Message(MessageStorage); \ - Message << #x ": did not return errc::success.\n" \ - << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \ - << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \ - GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \ - } else { \ - } - -#define ASSERT_ERROR(x) \ - if (!x) { \ - SmallString<128> MessageStorage; \ - raw_svector_ostream Message(MessageStorage); \ - Message << #x ": did not return a failure error code.\n"; \ - GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \ - } +#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code()) +#define ASSERT_ERROR(x) ASSERT_NE(x, std::error_code()) namespace { @@ -1265,7 +1249,7 @@ TEST_F(FileSystemTest, OpenFileForRead) { int FileDescriptor2; SmallString<64> ResultPath; ASSERT_NO_ERROR(fs::openFileForRead(Twine(TempPath), FileDescriptor2, - fs::OF_None, &ResultPath)) + fs::OF_None, &ResultPath)); // If we succeeded, check that the paths are the same (modulo case): if (!ResultPath.empty()) { |