[PATCH] D70528: [NFC] ASSERT_EQ before accessing items in containers

Kirill Bobyrev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 21 02:10:24 PST 2019


kbobyrev created this revision.
kbobyrev added a reviewer: ilya-biryukov.
kbobyrev added a project: clang-tools-extra.
Herald added subscribers: cfe-commits, usaxena95, kadircet, arphaman, jkorous.
Herald added a project: clang.

As discussed offline, `ASSERT_EQ` should be used to check if the container contains enough items before accessing them so that other tests can still be run even if the assertion fails as opposed to having `EXPECT_EQ` failing and then aborting the run due to the errors caused by out-of-bounds memory access.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D70528

Files:
  clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
  clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp


Index: clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+++ clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
@@ -709,7 +709,7 @@
 
   auto Parsed = TU.build();
   for (const auto &D : Parsed.getDiagnostics()) {
-    EXPECT_EQ(D.Fixes.size(), 1u);
+    ASSERT_EQ(D.Fixes.size(), 1u);
     EXPECT_EQ(D.Fixes[0].Message,
               std::string("Add include \"a.h\" for symbol X"));
   }
Index: clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
+++ clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
@@ -1874,7 +1874,7 @@
     Annotations TestCode(Text);
     auto Results = completions(Server, TestCode.code(), TestCode.point());
 
-    EXPECT_EQ(Results.Completions.size(), 1u);
+    ASSERT_EQ(Results.Completions.size(), 1u);
     EXPECT_THAT(Results.Completions.front().CompletionTokenRange,
                 TestCode.range());
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70528.230398.patch
Type: text/x-patch
Size: 1121 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191121/81139876/attachment-0001.bin>


More information about the cfe-commits mailing list