logging: convert assert() checks to FOLLY_SAFE_DCHECK()
authorAdam Simpkins <simpkins@fb.com>
Tue, 28 Nov 2017 20:02:02 +0000 (12:02 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Tue, 28 Nov 2017 20:05:41 +0000 (12:05 -0800)
Summary:
Replace all assert() checks in the folly logging code with
FOLLY_SAFE_DCHECK().

Reviewed By: yfeldblum

Differential Revision: D6422885

fbshipit-source-id: 5cb12dd59f2fe5d346f15b9d317abede8654a879

folly/experimental/logging/LogConfigParser.cpp
folly/experimental/logging/test/AsyncFileWriterTest.cpp

index 55244207c44cfed344234f7e36a40d2be9e6474e..d0948709d6fd24bbde59ba44499b8fd461476c7e 100644 (file)
@@ -21,7 +21,6 @@
 #include <folly/experimental/logging/LogName.h>
 #include <folly/json.h>
 #include <folly/lang/SafeAssert.h>
 #include <folly/experimental/logging/LogName.h>
 #include <folly/json.h>
 #include <folly/lang/SafeAssert.h>
-#include <cassert>
 
 using std::shared_ptr;
 using std::string;
 
 using std::shared_ptr;
 using std::string;
@@ -277,8 +276,9 @@ LogConfig::CategoryConfigMap parseCategoryConfigs(StringPiece value) {
     // Split the configString into level and handler information.
     std::vector<StringPiece> handlerPieces;
     folly::split(":", configString, handlerPieces);
     // Split the configString into level and handler information.
     std::vector<StringPiece> handlerPieces;
     folly::split(":", configString, handlerPieces);
-    // folly::split() always returns a list of length 1
-    assert(handlerPieces.size() >= 1);
+    FOLLY_SAFE_DCHECK(
+        handlerPieces.size() >= 1,
+        "folly::split() always returns a list of length 1");
     auto levelString = trimWhitespace(handlerPieces[0]);
 
     bool hasHandlerConfig = handlerPieces.size() > 1;
     auto levelString = trimWhitespace(handlerPieces[0]);
 
     bool hasHandlerConfig = handlerPieces.size() > 1;
@@ -359,8 +359,8 @@ bool splitNameValue(
 std::pair<std::string, LogHandlerConfig> parseHandlerConfig(StringPiece value) {
   std::vector<StringPiece> pieces;
   folly::split(",", value, pieces);
 std::pair<std::string, LogHandlerConfig> parseHandlerConfig(StringPiece value) {
   std::vector<StringPiece> pieces;
   folly::split(",", value, pieces);
-  // "folly::split() always returns a list of length 1";
-  assert(pieces.size() >= 1);
+  FOLLY_SAFE_DCHECK(
+      pieces.size() >= 1, "folly::split() always returns a list of length 1");
 
   StringPiece handlerName;
   StringPiece handlerType;
 
   StringPiece handlerName;
   StringPiece handlerType;
@@ -419,8 +419,8 @@ LogConfig parseLogConfig(StringPiece value) {
   // From then on each section specifies a single LogHandler config.
   std::vector<StringPiece> pieces;
   folly::split(";", value, pieces);
   // From then on each section specifies a single LogHandler config.
   std::vector<StringPiece> pieces;
   folly::split(";", value, pieces);
-  // "folly::split() always returns a list of length 1";
-  assert(pieces.size() >= 1);
+  FOLLY_SAFE_DCHECK(
+      pieces.size() >= 1, "folly::split() always returns a list of length 1");
 
   auto categoryConfigs = parseCategoryConfigs(pieces[0]);
   LogConfig::HandlerConfigMap handlerConfigs;
 
   auto categoryConfigs = parseCategoryConfigs(pieces[0]);
   LogConfig::HandlerConfigMap handlerConfigs;
index f2a779a7ad4b1c38e1ada4c736e15fae48ed57b5..753b07e7ed9969a5db2296b694d705755f6a5c58 100644 (file)
@@ -29,6 +29,7 @@
 #include <folly/futures/Future.h>
 #include <folly/futures/Promise.h>
 #include <folly/init/Init.h>
 #include <folly/futures/Future.h>
 #include <folly/futures/Promise.h>
 #include <folly/init/Init.h>
+#include <folly/lang/SafeAssert.h>
 #include <folly/portability/GFlags.h>
 #include <folly/portability/GMock.h>
 #include <folly/portability/GTest.h>
 #include <folly/portability/GFlags.h>
 #include <folly/portability/GMock.h>
 #include <folly/portability/GTest.h>
@@ -294,7 +295,9 @@ class ReadStats {
   }
   void writerFinished(size_t threadID, size_t messagesWritten, uint32_t flags) {
     auto map = perThreadWriteData_.wlock();
   }
   void writerFinished(size_t threadID, size_t messagesWritten, uint32_t flags) {
     auto map = perThreadWriteData_.wlock();
-    assert(map->find(threadID) == map->end());
+    FOLLY_SAFE_CHECK(
+        map->find(threadID) == map->end(),
+        "multiple writer threads with same ID");
     auto& data = (*map)[threadID];
     data.numMessagesWritten = messagesWritten;
     data.flags = flags;
     auto& data = (*map)[threadID];
     data.numMessagesWritten = messagesWritten;
     data.flags = flags;