<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Done, thanks for catching this!<div class=""><br class=""></div><span class="">r307596<br class=""></span><span class=""><br class=""></span><div class="">vedant</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 7, 2017, at 2:51 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Fri, Jul 7, 2017 at 2:03 PM David Blaikie via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">Author: dblaikie<br class="">Date: Fri Jul  7 14:02:59 2017<br class="">New Revision: 307440<br class=""><br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project?rev=307440&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=307440&view=rev</a><br class="">Log:<br class="">ProfData: Fix some unchecked Errors in unit tests<br class=""><br class="">The 'NoError' function was meant to be used as the input to<br class="">ASSERT/EXPECT_TRUE, but it is easy to forget this (it could be annotated<br class="">with nodiscard to help this) so many sites that look like they're checked<br class="">are not (& silently discard the failure). Only one site actually has an<br class="">Error sneaking out this way and I've replaced that one with a<br class="">FIXME+consumeError.<br class=""><br class="">The rest of the code has been modified to use the EXPECT_THAT_ERROR<br class="">macros Zach introduced a while back. Between the options available this<br class="">seems OK/good/something to standardize on - though it's difficult to<br class="">build a matcher that could handle checking for a specific llvm::Error<br class="">result, so those remain using the custom ErrorEquals (& the nodiscard<br class="">added to ensure it is not misused as it was previous to this patch). It<br class="">could still be generalized a bit further (even not as far as a matcher,<br class="">but at least support multiple kinds of Error, etc) & added to the<br class="">general Error utility header.<br class=""><br class="">Modified:<br class="">   <span class="Apple-converted-space"> </span>llvm/trunk/unittests/ProfileData/CMakeLists.txt<br class="">   <span class="Apple-converted-space"> </span>llvm/trunk/unittests/ProfileData/CoverageMappingTest.cpp<br class="">   <span class="Apple-converted-space"> </span>llvm/trunk/unittests/ProfileData/InstrProfTest.cpp<br class=""><br class="">Modified: llvm/trunk/unittests/ProfileData/CMakeLists.txt<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ProfileData/CMakeLists.txt?rev=307440&r1=307439&r2=307440&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ProfileData/CMakeLists.txt?rev=307440&r1=307439&r2=307440&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/unittests/ProfileData/CMakeLists.txt (original)<br class="">+++ llvm/trunk/unittests/ProfileData/CMakeLists.txt Fri Jul  7 14:02:59 2017<br class="">@@ -10,3 +10,5 @@ add_llvm_unittest(ProfileDataTests<br class="">   InstrProfTest.cpp<br class="">   SampleProfTest.cpp<br class="">   )<br class="">+<br class="">+target_link_libraries(ProfileDataTests LLVMTestingSupport)<br class=""><br class="">Modified: llvm/trunk/unittests/ProfileData/CoverageMappingTest.cpp<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ProfileData/CoverageMappingTest.cpp?rev=307440&r1=307439&r2=307440&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ProfileData/CoverageMappingTest.cpp?rev=307440&r1=307439&r2=307440&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/unittests/ProfileData/CoverageMappingTest.cpp (original)<br class="">+++ llvm/trunk/unittests/ProfileData/CoverageMappingTest.cpp Fri Jul  7 14:02:59 2017<br class="">@@ -13,6 +13,8 @@<br class=""> #include "llvm/ProfileData/InstrProfReader.h"<br class=""> #include "llvm/ProfileData/InstrProfWriter.h"<br class=""> #include "llvm/Support/raw_ostream.h"<br class="">+#include "llvm/Testing/Support/Error.h"<br class="">+#include "llvm/Testing/Support/SupportHelpers.h"<br class=""> #include "gtest/gtest.h"<br class=""><br class=""> #include <ostream><br class="">@@ -21,15 +23,8 @@<br class=""> using namespace llvm;<br class=""> using namespace coverage;<br class=""><br class="">-static ::testing::AssertionResult NoError(Error E) {<br class="">-  if (!E)<br class="">-    return ::testing::AssertionSuccess();<br class="">-  return ::testing::AssertionFailure() << "error: " << toString(std::move(E))<br class="">-                                       << "\n";<br class="">-}<br class="">-<br class="">-static ::testing::AssertionResult ErrorEquals(coveragemap_error Expected,<br class="">-                                              Error E) {<br class="">+LLVM_NODISCARD static ::testing::AssertionResult<br class="">+ErrorEquals(coveragemap_error Expected, Error E) {<br class="">   coveragemap_error Found;<br class="">   std::string FoundMsg;<br class="">   handleAllErrors(std::move(E), [&](const CoverageMapError &CME) {<br class="">@@ -209,7 +204,7 @@ struct CoverageMappingTest : ::testing::<br class="">     std::vector<CounterExpression> Expressions;<br class="">     RawCoverageMappingReader Reader(Coverage, Filenames, Data.Filenames,<br class="">                                     Expressions, Data.Regions);<br class="">-    ASSERT_TRUE(NoError(Reader.read()));<br class="">+    EXPECT_THAT_ERROR(Reader.read(), Succeeded());<br class="">   }<br class=""><br class="">   void writeAndReadCoverageRegions(bool EmitFilenames = true) {<br class="">@@ -227,7 +222,7 @@ struct CoverageMappingTest : ::testing::<br class="">   void readProfCounts() {<br class="">     auto Profile = ProfileWriter.writeBuffer();<br class="">     auto ReaderOrErr = IndexedInstrProfReader::create(std::move(Profile));<br class="">-    ASSERT_TRUE(NoError(ReaderOrErr.takeError()));<br class="">+    EXPECT_THAT_ERROR(ReaderOrErr.takeError(), Succeeded());<br class="">     ProfileReader = std::move(ReaderOrErr.get());<br class="">   }<br class=""><br class="">@@ -309,7 +304,8 @@ TEST_P(CoverageMappingTest, correct_dese<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, load_coverage_for_more_than_two_files) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {0}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {0}}),<br class="">+                    Succeeded());<br class=""><br class="">   const char *FileNames[] = {"bar", "baz", "foo"};<br class="">   static const unsigned N = array_lengthof(FileNames);<br class="">@@ -320,7 +316,7 @@ TEST_P(CoverageMappingTest, load_coverag<br class="">     // in order to preserve that information during possible sorting of CMRs.<br class="">     addCMR(Counter::getCounter(0), FileNames[I], I, 1, I, 1);<br class=""><br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   for (unsigned I = 0; I < N; ++I) {<br class="">     CoverageData Data = LoadedCoverage->getCoverageForFile(FileNames[I]);<br class="">@@ -330,15 +326,17 @@ TEST_P(CoverageMappingTest, load_coverag<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, load_coverage_with_bogus_function_name) {<br class="">-  NoError(ProfileWriter.addRecord({"", 0x1234, {10}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"", 0x1234, {10}}), Succeeded());<br class="">   startFunction("", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "foo", 1, 1, 5, 5);<br class="">-  ErrorEquals(coveragemap_error::malformed, loadCoverageMapping());<br class="">+  EXPECT_TRUE(ErrorEquals(coveragemap_error::malformed, loadCoverageMapping()));<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, load_coverage_for_several_functions) {<br class="">-  NoError(ProfileWriter.addRecord({"func1", 0x1234, {10}}));<br class="">-  NoError(ProfileWriter.addRecord({"func2", 0x2345, {20}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func1", 0x1234, {10}}),<br class="">+                    Succeeded());<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func2", 0x2345, {20}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func1", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "foo", 1, 1, 5, 5);<br class="">@@ -346,7 +344,7 @@ TEST_P(CoverageMappingTest, load_coverag<br class="">   startFunction("func2", 0x2345);<br class="">   addCMR(Counter::getCounter(0), "bar", 2, 2, 6, 6);<br class=""><br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   const auto FunctionRecords = LoadedCoverage->getCoveredFunctions();<br class="">   EXPECT_EQ(2, std::distance(FunctionRecords.begin(), FunctionRecords.end()));<br class="">@@ -382,14 +380,15 @@ TEST_P(CoverageMappingTest, expansion_ge<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, basic_coverage_iteration) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {30, 20, 10, 0}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {30, 20, 10, 0}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class="">   addCMR(Counter::getCounter(1), "file1", 1, 1, 4, 7);<br class="">   addCMR(Counter::getCounter(2), "file1", 5, 8, 9, 1);<br class="">   addCMR(Counter::getCounter(3), "file1", 10, 10, 11, 11);<br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("file1");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -406,7 +405,7 @@ TEST_P(CoverageMappingTest, basic_covera<br class=""> TEST_P(CoverageMappingTest, uncovered_function) {<br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getZero(), "file1", 1, 2, 3, 4);<br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("file1");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -419,7 +418,7 @@ TEST_P(CoverageMappingTest, uncovered_fu<br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class="">   addCMR(Counter::getCounter(1), "file1", 1, 1, 4, 7);<br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("file1");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -430,13 +429,14 @@ TEST_P(CoverageMappingTest, uncovered_fu<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, combine_regions) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {10, 20, 30}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {10, 20, 30}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class="">   addCMR(Counter::getCounter(1), "file1", 3, 3, 4, 4);<br class="">   addCMR(Counter::getCounter(2), "file1", 3, 3, 4, 4);<br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("file1");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -448,13 +448,14 @@ TEST_P(CoverageMappingTest, combine_regi<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, restore_combined_counter_after_nested_region) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {10, 20, 40}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {10, 20, 40}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class="">   addCMR(Counter::getCounter(1), "file1", 1, 1, 9, 9);<br class="">   addCMR(Counter::getCounter(2), "file1", 3, 3, 5, 5);<br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("file1");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -468,15 +469,17 @@ TEST_P(CoverageMappingTest, restore_comb<br class=""> // If CodeRegions and ExpansionRegions cover the same area,<br class=""> // only counts of CodeRegions should be used.<br class=""> TEST_P(CoverageMappingTest, dont_combine_expansions) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {10, 20}}));<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {0, 0}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {10, 20}}),<br class="">+                    Succeeded());<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {0, 0}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class="">   addCMR(Counter::getCounter(1), "file1", 3, 3, 4, 4);<br class="">   addCMR(Counter::getCounter(1), "include1", 6, 6, 7, 7);<br class="">   addExpansionCMR("file1", "include1", 3, 3, 4, 4);<br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("file1");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -489,7 +492,8 @@ TEST_P(CoverageMappingTest, dont_combine<br class=""><br class=""> // If an area is covered only by ExpansionRegions, they should be combinated.<br class=""> TEST_P(CoverageMappingTest, combine_expansions) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {2, 3, 7}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {2, 3, 7}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(1), "include1", 1, 1, 1, 10);<br class="">@@ -498,7 +502,7 @@ TEST_P(CoverageMappingTest, combine_expa<br class="">   addExpansionCMR("file", "include1", 3, 1, 3, 5);<br class="">   addExpansionCMR("file", "include2", 3, 1, 3, 5);<br class=""><br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("file");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -510,11 +514,12 @@ TEST_P(CoverageMappingTest, combine_expa<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, strip_filename_prefix) {<br class="">-  NoError(ProfileWriter.addRecord({"file1:func", 0x1234, {0}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"file1:func", 0x1234, {0}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("file1:func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   std::vector<std::string> Names;<br class="">   for (const auto &Func : LoadedCoverage->getCoveredFunctions())<br class="">@@ -524,11 +529,12 @@ TEST_P(CoverageMappingTest, strip_filena<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, strip_unknown_filename_prefix) {<br class="">-  NoError(ProfileWriter.addRecord({"<unknown>:func", 0x1234, {0}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"<unknown>:func", 0x1234, {0}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("<unknown>:func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "", 1, 1, 9, 9);<br class="">-  NoError(loadCoverageMapping(/*EmitFilenames=*/false));<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(/*EmitFilenames=*/false), Succeeded());<br class=""><br class="">   std::vector<std::string> Names;<br class="">   for (const auto &Func : LoadedCoverage->getCoveredFunctions())<br class="">@@ -538,8 +544,10 @@ TEST_P(CoverageMappingTest, strip_unknow<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, dont_detect_false_instantiations) {<br class="">-  NoError(ProfileWriter.addRecord({"foo", 0x1234, {10}}));<br class="">-  NoError(ProfileWriter.addRecord({"bar", 0x2345, {20}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"foo", 0x1234, {10}}),<br class="">+                    Succeeded());<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"bar", 0x2345, {20}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("foo", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "expanded", 1, 1, 1, 10);<br class="">@@ -549,7 +557,7 @@ TEST_P(CoverageMappingTest, dont_detect_<br class="">   addCMR(Counter::getCounter(0), "expanded", 1, 1, 1, 10);<br class="">   addExpansionCMR("main", "expanded", 9, 1, 9, 5);<br class=""><br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   std::vector<const FunctionRecord *> Instantiations =<br class="">       LoadedCoverage->getInstantiations("expanded");<br class="">@@ -557,13 +565,14 @@ TEST_P(CoverageMappingTest, dont_detect_<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, load_coverage_for_expanded_file) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {10}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {10}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "expanded", 1, 1, 1, 10);<br class="">   addExpansionCMR("main", "expanded", 4, 1, 4, 5);<br class=""><br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   CoverageData Data = LoadedCoverage->getCoverageForFile("expanded");<br class="">   std::vector<CoverageSegment> Segments(Data.begin(), Data.end());<br class="">@@ -573,7 +582,8 @@ TEST_P(CoverageMappingTest, load_coverag<br class=""> }<br class=""><br class=""> TEST_P(CoverageMappingTest, skip_duplicate_function_record) {<br class="">-  NoError(ProfileWriter.addRecord({"func", 0x1234, {1}}));<br class="">+  EXPECT_THAT_ERROR(ProfileWriter.addRecord({"func", 0x1234, {1}}),<br class="">+                    Succeeded());<br class=""><br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class="">@@ -581,7 +591,7 @@ TEST_P(CoverageMappingTest, skip_duplica<br class="">   startFunction("func", 0x1234);<br class="">   addCMR(Counter::getCounter(0), "file1", 1, 1, 9, 9);<br class=""><br class="">-  NoError(loadCoverageMapping());<br class="">+  EXPECT_THAT_ERROR(loadCoverageMapping(), Succeeded());<br class=""><br class="">   auto Funcs = LoadedCoverage->getCoveredFunctions();<br class="">   unsigned NumFuncs = std::distance(Funcs.begin(), Funcs.end());<br class=""><br class="">Modified: llvm/trunk/unittests/ProfileData/InstrProfTest.cpp<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ProfileData/InstrProfTest.cpp?rev=307440&r1=307439&r2=307440&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ProfileData/InstrProfTest.cpp?rev=307440&r1=307439&r2=307440&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/unittests/ProfileData/InstrProfTest.cpp (original)<br class="">+++ llvm/trunk/unittests/ProfileData/InstrProfTest.cpp Fri Jul  7 14:02:59 2017<br class="">@@ -14,20 +14,15 @@<br class=""> #include "llvm/ProfileData/InstrProfReader.h"<br class=""> #include "llvm/ProfileData/InstrProfWriter.h"<br class=""> #include "llvm/Support/Compression.h"<br class="">+#include "llvm/Testing/Support/Error.h"<br class="">+#include "llvm/Testing/Support/SupportHelpers.h"<br class=""> #include "gtest/gtest.h"<br class=""> #include <cstdarg><br class=""><br class=""> using namespace llvm;<br class=""><br class="">-static ::testing::AssertionResult NoError(Error E) {<br class="">-  if (!E)<br class="">-    return ::testing::AssertionSuccess();<br class="">-  return ::testing::AssertionFailure() << "error: " << toString(std::move(E))<br class="">-                                       << "\n";<br class="">-}<br class="">-<br class="">-static ::testing::AssertionResult ErrorEquals(instrprof_error Expected,<br class="">-                                              Error E) {<br class="">+LLVM_NODISCARD static ::testing::AssertionResult<br class="">+ErrorEquals(instrprof_error Expected, Error E) {<br class="">   instrprof_error Found;<br class="">   std::string FoundMsg;<br class="">   handleAllErrors(std::move(E), [&](const InstrProfError &IPE) {<br class="">@@ -49,7 +44,7 @@ struct InstrProfTest : ::testing::Test {<br class=""><br class="">   void readProfile(std::unique_ptr<MemoryBuffer> Profile) {<br class="">     auto ReaderOrErr = IndexedInstrProfReader::create(std::move(Profile));<br class="">-    ASSERT_TRUE(NoError(ReaderOrErr.takeError()));<br class="">+    EXPECT_THAT_ERROR(ReaderOrErr.takeError(), Succeeded());<br class="">     Reader = std::move(ReaderOrErr.get());<br class="">   }<br class=""> };<br class="">@@ -70,7 +65,8 @@ TEST_P(MaybeSparseInstrProfTest, write_a<br class=""> }<br class=""><br class=""> TEST_P(MaybeSparseInstrProfTest, write_and_read_one_function) {<br class="">-  NoError(Writer.addRecord({"foo", 0x1234, {1, 2, 3, 4}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1234, {1, 2, 3, 4}}),<br class="">+                    Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">@@ -87,19 +83,19 @@ TEST_P(MaybeSparseInstrProfTest, write_a<br class=""> }<br class=""><br class=""> TEST_P(MaybeSparseInstrProfTest, get_instr_prof_record) {<br class="">-  NoError(Writer.addRecord({"foo", 0x1234, {1, 2}}));<br class="">-  NoError(Writer.addRecord({"foo", 0x1235, {3, 4}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1234, {1, 2}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1235, {3, 4}}), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("foo", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(2U, R->Counts.size());<br class="">   ASSERT_EQ(1U, R->Counts[0]);<br class="">   ASSERT_EQ(2U, R->Counts[1]);<br class=""><br class="">   R = Reader->getInstrProfRecord("foo", 0x1235);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(2U, R->Counts.size());<br class="">   ASSERT_EQ(3U, R->Counts[0]);<br class="">   ASSERT_EQ(4U, R->Counts[1]);<br class="">@@ -112,18 +108,20 @@ TEST_P(MaybeSparseInstrProfTest, get_ins<br class=""> }<br class=""><br class=""> TEST_P(MaybeSparseInstrProfTest, get_function_counts) {<br class="">-  NoError(Writer.addRecord({"foo", 0x1234, {1, 2}}));<br class="">-  NoError(Writer.addRecord({"foo", 0x1235, {3, 4}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1234, {1, 2}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1235, {3, 4}}), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   std::vector<uint64_t> Counts;<br class="">-  ASSERT_TRUE(NoError(Reader->getFunctionCounts("foo", 0x1234, Counts)));<br class="">+  EXPECT_THAT_ERROR(Reader->getFunctionCounts("foo", 0x1234, Counts),<br class="">+                    Succeeded());<br class="">   ASSERT_EQ(2U, Counts.size());<br class="">   ASSERT_EQ(1U, Counts[0]);<br class="">   ASSERT_EQ(2U, Counts[1]);<br class=""><br class="">-  ASSERT_TRUE(NoError(Reader->getFunctionCounts("foo", 0x1235, Counts)));<br class="">+  EXPECT_THAT_ERROR(Reader->getFunctionCounts("foo", 0x1235, Counts),<br class="">+                    Succeeded());<br class="">   ASSERT_EQ(2U, Counts.size());<br class="">   ASSERT_EQ(3U, Counts[0]);<br class="">   ASSERT_EQ(4U, Counts[1]);<br class="">@@ -137,14 +135,15 @@ TEST_P(MaybeSparseInstrProfTest, get_fun<br class=""><br class=""> // Profile data is copied from general.proftext<br class=""> TEST_F(InstrProfTest, get_profile_summary) {<br class="">-  NoError(Writer.addRecord({"func1", 0x1234, {97531}}));<br class="">-  NoError(Writer.addRecord({"func2", 0x1234, {0, 0}}));<br class="">-  NoError(Writer.addRecord(<br class="">-      {"func3",<br class="">-       0x1234,<br class="">-       {2305843009213693952, 1152921504606846976, 576460752303423488,<br class="">-        288230376151711744, 144115188075855872, 72057594037927936}}));<br class="">-  NoError(Writer.addRecord({"func4", 0x1234, {0}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"func1", 0x1234, {97531}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"func2", 0x1234, {0, 0}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"func3",<br class="">+                                      0x1234,<br class="">+                                      {2305843009213693952, 1152921504606846976,<br class="">+                                       576460752303423488, 288230376151711744,<br class="">+                                       144115188075855872, 72057594037927936}}),<br class="">+                    Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"func4", 0x1234, {0}}), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">@@ -195,23 +194,24 @@ TEST_F(InstrProfTest, get_profile_summar<br class=""> }<br class=""><br class=""> TEST_F(InstrProfTest, test_writer_merge) {<br class="">-  NoError(Writer.addRecord({"func1", 0x1234, {42}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"func1", 0x1234, {42}}), Succeeded());<br class=""><br class="">   InstrProfWriter Writer2;<br class="">-  NoError(Writer2.addRecord({"func2", 0x1234, {0, 0}}));<br class="">+  EXPECT_THAT_ERROR(Writer2.addRecord({"func2", 0x1234, {0, 0}}), Succeeded());<br class=""><br class="">-  NoError(Writer.mergeRecordsFromWriter(std::move(Writer2)));<br class="">+  EXPECT_THAT_ERROR(Writer.mergeRecordsFromWriter(std::move(Writer2)),<br class="">+                    Succeeded());<br class=""><br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("func1", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(1U, R->Counts.size());<br class="">   ASSERT_EQ(42U, R->Counts[0]);<br class=""><br class="">   R = Reader->getInstrProfRecord("func2", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(2U, R->Counts.size());<br class="">   ASSERT_EQ(0U, R->Counts[0]);<br class="">   ASSERT_EQ(0U, R->Counts[1]);<br class="">@@ -239,15 +239,15 @@ TEST_P(MaybeSparseInstrProfTest, get_ica<br class="">   InstrProfValueData VD3[] = {{(uint64_t)callee1, 1}};<br class="">   Record1.addValueData(IPVK_IndirectCallTarget, 3, VD3, 1, nullptr);<br class=""><br class="">-  NoError(Writer.addRecord(std::move(Record1)));<br class="">-  NoError(Writer.addRecord({"callee1", 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({"callee2", 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({"callee3", 0x1235, {3, 4}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record1)), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee1", 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee2", 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee3", 0x1235, {3, 4}}), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("caller", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(4U, R->getNumValueSites(IPVK_IndirectCallTarget));<br class="">   ASSERT_EQ(3U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 0));<br class="">   ASSERT_EQ(0U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 1));<br class="">@@ -274,11 +274,11 @@ TEST_P(MaybeSparseInstrProfTest, annotat<br class="">   InstrProfValueData VD0[] = {{1000, 1}, {2000, 2}, {3000, 3}, {5000, 5},<br class="">                               {4000, 4}, {6000, 6}};<br class="">   Record.addValueData(IPVK_IndirectCallTarget, 0, VD0, 6, nullptr);<br class="">-  NoError(Writer.addRecord(std::move(Record)));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record)), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("caller", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class=""><br class="">   LLVMContext Ctx;<br class="">   std::unique_ptr<Module> M(new Module("MyModule", Ctx));<br class="">@@ -379,15 +379,15 @@ TEST_P(MaybeSparseInstrProfTest, get_ica<br class="">   InstrProfValueData VD3[] = {{(uint64_t)callee1, 1}};<br class="">   Record1.addValueData(IPVK_IndirectCallTarget, 3, VD3, 1, nullptr);<br class=""><br class="">-  NoError(Writer.addRecord(std::move(Record1), 10));<br class="">-  NoError(Writer.addRecord({"callee1", 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({"callee2", 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({"callee3", 0x1235, {3, 4}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record1), 10), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee1", 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee2", 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee3", 0x1235, {3, 4}}), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("caller", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(4U, R->getNumValueSites(IPVK_IndirectCallTarget));<br class="">   ASSERT_EQ(3U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 0));<br class="">   ASSERT_EQ(0U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 1));<br class="">@@ -422,10 +422,10 @@ TEST_P(MaybeSparseInstrProfTest, get_ica<br class="">   InstrProfValueData VD3[] = {{(uint64_t)callee1, 1}};<br class="">   Record1.addValueData(IPVK_IndirectCallTarget, 3, VD3, 1, nullptr);<br class=""><br class="">-  NoError(Writer.addRecord(std::move(Record1)));<br class="">-  NoError(Writer.addRecord({"callee1", 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({"callee2", 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({"callee3", 0x1235, {3, 4}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record1)), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee1", 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee2", 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"callee3", 0x1235, {3, 4}}), Succeeded());<br class=""><br class="">   // Set big endian output.<br class="">   Writer.setValueProfDataEndianness(support::big);<br class="">@@ -437,7 +437,7 @@ TEST_P(MaybeSparseInstrProfTest, get_ica<br class="">   Reader->setValueProfDataEndianness(support::big);<br class=""><br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("caller", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(4U, R->getNumValueSites(IPVK_IndirectCallTarget));<br class="">   ASSERT_EQ(3U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 0));<br class="">   ASSERT_EQ(0U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 1));<br class="">@@ -501,20 +501,20 @@ TEST_P(MaybeSparseInstrProfTest, get_ica<br class="">                               <span class="Apple-converted-space"> </span>{uint64_t(callee3), 3}};<br class="">   Record12.addValueData(IPVK_IndirectCallTarget, 4, VD42, 3, nullptr);<br class=""><br class="">-  NoError(Writer.addRecord(std::move(Record11)));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record11)), Succeeded());<br class="">   // Merge profile data.<br class="">-  NoError(Writer.addRecord(std::move(Record12)));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record12)), Succeeded());<br class=""><br class="">-  NoError(Writer.addRecord({callee1, 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({callee2, 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({callee3, 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({callee3, 0x1235, {3, 4}}));<br class="">-  NoError(Writer.addRecord({callee4, 0x1235, {3, 5}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({callee1, 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({callee2, 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({callee3, 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({callee3, 0x1235, {3, 4}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({callee4, 0x1235, {3, 5}}), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("caller", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   ASSERT_EQ(5U, R->getNumValueSites(IPVK_IndirectCallTarget));<br class="">   ASSERT_EQ(4U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 0));<br class="">   ASSERT_EQ(0U, R->getNumValueDataForSite(IPVK_IndirectCallTarget, 1));<br class="">@@ -600,7 +600,7 @@ TEST_P(MaybeSparseInstrProfTest, get_ica<br class="">   // Verify saturation of counts.<br class="">   Expected<InstrProfRecord> ReadRecord1 =<br class="">       Reader->getInstrProfRecord("foo", 0x1234);<br class="">-  ASSERT_TRUE(NoError(ReadRecord1.takeError()));<br class="">+  EXPECT_THAT_ERROR(ReadRecord1.takeError(), Succeeded());<br class="">   ASSERT_EQ(Max, ReadRecord1->Counts[0]);<br class=""><br class="">   Expected<InstrProfRecord> ReadRecord2 =<br class="">@@ -643,15 +643,15 @@ TEST_P(MaybeSparseInstrProfTest, get_ica<br class="">   Record12.addValueData(IPVK_IndirectCallTarget, 0, VD1, 255, nullptr);<br class="">   Record12.addValueData(IPVK_IndirectCallTarget, 1, nullptr, 0, nullptr);<br class=""><br class="">-  NoError(Writer.addRecord(std::move(Record11)));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record11)), Succeeded());<br class="">   // Merge profile data.<br class="">-  NoError(Writer.addRecord(std::move(Record12)));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord(std::move(Record12)), Succeeded());<br class=""><br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   Expected<InstrProfRecord> R = Reader->getInstrProfRecord("caller", 0x1234);<br class="">-  ASSERT_TRUE(NoError(R.takeError()));<br class="">+  EXPECT_THAT_ERROR(R.takeError(), Succeeded());<br class="">   std::unique_ptr<InstrProfValueData[]> VD(<br class="">       R->getValueForSite(IPVK_IndirectCallTarget, 0));<br class="">   ASSERT_EQ(2U, R->getNumValueSites(IPVK_IndirectCallTarget));<br class="">@@ -790,9 +790,11 @@ TEST_P(MaybeSparseInstrProfTest, value_p<br class=""> }<br class=""><br class=""> TEST_P(MaybeSparseInstrProfTest, get_max_function_count) {<br class="">-  NoError(Writer.addRecord({"foo", 0x1234, {1ULL << 31, 2}}));<br class="">-  NoError(Writer.addRecord({"bar", 0, {1ULL << 63}}));<br class="">-  NoError(Writer.addRecord({"baz", 0x5678, {0, 0, 0, 0}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1234, {1ULL << 31, 2}}),<br class="">+                    Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"bar", 0, {1ULL << 63}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"baz", 0x5678, {0, 0, 0, 0}}),<br class="">+                    Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">@@ -800,18 +802,20 @@ TEST_P(MaybeSparseInstrProfTest, get_max<br class=""> }<br class=""><br class=""> TEST_P(MaybeSparseInstrProfTest, get_weighted_function_counts) {<br class="">-  NoError(Writer.addRecord({"foo", 0x1234, {1, 2}}, 3));<br class="">-  NoError(Writer.addRecord({"foo", 0x1235, {3, 4}}, 5));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1234, {1, 2}}, 3), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1235, {3, 4}}, 5), Succeeded());<br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class="">   std::vector<uint64_t> Counts;<br class="">-  ASSERT_TRUE(NoError(Reader->getFunctionCounts("foo", 0x1234, Counts)));<br class="">+  EXPECT_THAT_ERROR(Reader->getFunctionCounts("foo", 0x1234, Counts),<br class="">+                    Succeeded());<br class="">   ASSERT_EQ(2U, Counts.size());<br class="">   ASSERT_EQ(3U, Counts[0]);<br class="">   ASSERT_EQ(6U, Counts[1]);<br class=""><br class="">-  ASSERT_TRUE(NoError(Reader->getFunctionCounts("foo", 0x1235, Counts)));<br class="">+  EXPECT_THAT_ERROR(Reader->getFunctionCounts("foo", 0x1235, Counts),<br class="">+                    Succeeded());<br class="">   ASSERT_EQ(2U, Counts.size());<br class="">   ASSERT_EQ(15U, Counts[0]);<br class="">   ASSERT_EQ(20U, Counts[1]);<br class="">@@ -827,7 +831,7 @@ TEST_P(MaybeSparseInstrProfTest, instr_p<br class="">   FuncNames.push_back("bar2");<br class="">   FuncNames.push_back("bar3");<br class="">   InstrProfSymtab Symtab;<br class="">-  NoError(Symtab.create(FuncNames));<br class="">+  EXPECT_THAT_ERROR(Symtab.create(FuncNames), Succeeded());<br class="">   StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func1"));<br class="">   ASSERT_EQ(StringRef("func1"), R);<br class="">   R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func2"));<br class="">@@ -848,9 +852,9 @@ TEST_P(MaybeSparseInstrProfTest, instr_p<br class="">   ASSERT_EQ(StringRef(), R);<br class=""><br class="">   // Now incrementally update the symtab<br class="">-  NoError(Symtab.addFuncName("blah_1"));<br class="">-  NoError(Symtab.addFuncName("blah_2"));<br class="">-  NoError(Symtab.addFuncName("blah_3"));<br class="">+  EXPECT_THAT_ERROR(Symtab.addFuncName("blah_1"), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Symtab.addFuncName("blah_2"), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Symtab.addFuncName("blah_3"), Succeeded());<br class="">   // Finalize it<br class="">   Symtab.finalizeSymtab();<br class=""><br class="">@@ -878,7 +882,7 @@ TEST_P(MaybeSparseInstrProfTest, instr_p<br class=""> // Test that we get an error when creating a bogus symtab.<br class=""> TEST_P(MaybeSparseInstrProfTest, instr_prof_bogus_symtab_empty_func_name) {<br class="">   InstrProfSymtab Symtab;<br class="">-  ErrorEquals(instrprof_error::malformed, Symtab.addFuncName(""));<br class="">+  EXPECT_TRUE(ErrorEquals(instrprof_error::malformed, Symtab.addFuncName("")));<br class=""> }<br class=""><br class=""> // Testing symtab creator interface used by value profile transformer.<br class="">@@ -901,7 +905,7 @@ TEST_P(MaybeSparseInstrProfTest, instr_p<br class="">   Function::Create(FTy, Function::WeakODRLinkage, "Wbar", M.get());<br class=""><br class="">   InstrProfSymtab ProfSymtab;<br class="">-  NoError(ProfSymtab.create(*M));<br class="">+  EXPECT_THAT_ERROR(ProfSymtab.create(*M), Succeeded());<br class=""><br class="">   StringRef Funcs[] = {"Gfoo", "Gblah", "Gbar", "Ifoo", "Iblah", "Ibar",<br class="">                       <span class="Apple-converted-space"> </span>"Pfoo", "Pblah", "Pbar", "Wfoo", "Wblah", "Wbar"};<br class="">@@ -941,13 +945,17 @@ TEST_P(MaybeSparseInstrProfTest, instr_p<br class="">   for (bool DoCompression : {false, true}) {<br class="">     // Compressing:<br class="">     std::string FuncNameStrings1;<br class="">-    NoError(collectPGOFuncNameStrings(<br class="">-        FuncNames1, (DoCompression && zlib::isAvailable()), FuncNameStrings1));<br class="">+    EXPECT_THAT_ERROR(collectPGOFuncNameStrings(<br class="">+                          FuncNames1, (DoCompression && zlib::isAvailable()),<br class="">+                          FuncNameStrings1),<br class="">+                      Succeeded());<br class=""><br class="">     // Compressing:<br class="">     std::string FuncNameStrings2;<br class="">-    NoError(collectPGOFuncNameStrings(<br class="">-        FuncNames2, (DoCompression && zlib::isAvailable()), FuncNameStrings2));<br class="">+    EXPECT_THAT_ERROR(collectPGOFuncNameStrings(<br class="">+                          FuncNames2, (DoCompression && zlib::isAvailable()),<br class="">+                          FuncNameStrings2),<br class="">+                      Succeeded());<br class=""><br class="">     for (int Padding = 0; Padding < 2; Padding++) {<br class="">       // Join with paddings :<br class="">@@ -959,7 +967,7 @@ TEST_P(MaybeSparseInstrProfTest, instr_p<br class=""><br class="">       // Now decompress:<br class="">       InstrProfSymtab Symtab;<br class="">-      NoError(Symtab.create(StringRef(FuncNameStrings)));<br class="">+      EXPECT_THAT_ERROR(Symtab.create(StringRef(FuncNameStrings)), Succeeded());<br class=""><br class="">       // Now do the checks:<br class="">       // First sampling some data points:<br class="">@@ -983,9 +991,11 @@ TEST_P(MaybeSparseInstrProfTest, instr_p<br class=""> }<br class=""><br class=""> TEST_F(SparseInstrProfTest, preserve_no_records) {<br class="">-  NoError(Writer.addRecord({"foo", 0x1234, {0}}));<br class="">-  NoError(Writer.addRecord({"bar", 0x4321, {0, 0}}));<br class="">-  NoError(Writer.addRecord({"bar", 0x4321, {0, 0, 0}}));<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"foo", 0x1234, {0}}), Succeeded());<br class="">+  EXPECT_THAT_ERROR(Writer.addRecord({"bar", 0x4321, {0, 0}}), Succeeded());<br class="">+  // FIXME: I'm guessing this data should be different, but the original author<br class="">+  // should check/update this test so it doesn't produce errors.<br class="">+  consumeError(Writer.addRecord({"bar", 0x4321, {0, 0, 0}}));<br class=""></blockquote><div class=""><br class="">Hey Vedant - could you fix this ^ I'm not sure what the right fix was, so left it this way to preserve existing behavior.<br class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><br class="">   auto Profile = Writer.writeBuffer();<br class="">   readProfile(std::move(Profile));<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></blockquote></div></div></div></blockquote></div><br class=""></div></body></html>