Move folly/SafeAssert.h
authorYedidya Feldblum <yfeldblum@fb.com>
Fri, 3 Nov 2017 23:53:23 +0000 (16:53 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Sat, 4 Nov 2017 00:09:48 +0000 (17:09 -0700)
Summary: [Folly] Move `folly/SafeAssert.h` to `folly/lang/`.

Reviewed By: Orvid

Differential Revision: D6230421

fbshipit-source-id: 0086cd6fedd4ce0e7a4d5302a41153ec1a502e74

folly/Makefile.am
folly/SafeAssert.cpp [deleted file]
folly/SafeAssert.h [deleted file]
folly/experimental/StampedPtr.h
folly/experimental/symbolizer/Elf.h
folly/lang/SafeAssert.cpp [new file with mode: 0644]
folly/lang/SafeAssert.h [new file with mode: 0644]
folly/lang/test/SafeAssertTest.cpp [new file with mode: 0644]
folly/test/SafeAssertTest.cpp [deleted file]

index 79bcecb02ad150aaf36d7267843e07389e991a97..e1c0e4645d632debfe9f28c636d328e9fd9957d8 100644 (file)
@@ -314,6 +314,7 @@ nobase_follyinclude_HEADERS = \
        json.h \
        lang/Assume.h \
        lang/Launder.h \
+       lang/SafeAssert.h \
        Lazy.h \
        LifoSem.h \
        Likely.h \
@@ -392,7 +393,6 @@ nobase_follyinclude_HEADERS = \
        Range.h \
        Replaceable.h \
        RWSpinLock.h \
-       SafeAssert.h \
        ScopeGuard.h \
        SharedMutex.h \
        Singleton.h \
@@ -567,6 +567,7 @@ libfolly_la_SOURCES = \
        io/async/ssl/SSLErrors.cpp \
        json.cpp \
        lang/Assume.cpp \
+       lang/SafeAssert.cpp \
        detail/MemoryIdler.cpp \
        detail/SocketFastOpen.cpp \
        MacAddress.cpp \
@@ -592,7 +593,6 @@ libfolly_la_SOURCES = \
        portability/Time.cpp \
        portability/Unistd.cpp \
        Random.cpp \
-       SafeAssert.cpp \
        ScopeGuard.cpp \
        SharedMutex.cpp \
        MicroLock.cpp \
diff --git a/folly/SafeAssert.cpp b/folly/SafeAssert.cpp
deleted file mode 100644 (file)
index 62f3bc4..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2017 Facebook, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <folly/SafeAssert.h>
-
-#include <folly/Conv.h>
-#include <folly/FileUtil.h>
-
-namespace folly { namespace detail {
-
-namespace {
-void writeStderr(const char* s, size_t len) {
-  writeFull(STDERR_FILENO, s, len);
-}
-void writeStderr(const char* s) {
-  writeStderr(s, strlen(s));
-}
-} // namespace
-
-void assertionFailure(const char* expr, const char* msg, const char* file,
-                      unsigned int line, const char* function) {
-  writeStderr("\n\nAssertion failure: ");
-  writeStderr(expr + 1, strlen(expr) - 2);
-  writeStderr("\nMessage: ");
-  writeStderr(msg);
-  writeStderr("\nFile: ");
-  writeStderr(file);
-  writeStderr("\nLine: ");
-  char buf[20];
-  uint32_t n = uint64ToBufferUnsafe(line, buf);
-  writeFull(STDERR_FILENO, buf, n);
-  writeStderr("\nFunction: ");
-  writeStderr(function);
-  writeStderr("\n");
-  fsyncNoInt(STDERR_FILENO);
-  abort();
-}
-
-} // namespace detail
-} // namespace folly
diff --git a/folly/SafeAssert.h b/folly/SafeAssert.h
deleted file mode 100644 (file)
index 182b158..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2017 Facebook, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <folly/Portability.h>
-#include <folly/Preprocessor.h>
-
-/**
- * Verify that the expression is true. If not, prints an error message
- * (containing msg) to stderr and abort()s. Just like CHECK(), but only
- * logs to stderr and only does async-signal-safe calls.
- */
-#define FOLLY_SAFE_CHECK_IMPL(expr, expr_s, msg) \
-  ((expr) ? static_cast<void>(0) : \
-   ::folly::detail::assertionFailure( \
-       FB_STRINGIZE(expr_s), (msg), __FILE__, __LINE__, __PRETTY_FUNCTION__))
-#define FOLLY_SAFE_CHECK(expr, msg) FOLLY_SAFE_CHECK_IMPL((expr), (expr), (msg))
-
-/**
- * In debug mode, verify that the expression is true. Otherwise, do nothing
- * (do not even evaluate expr). Just like DCHECK(), but only logs to stderr and
- * only does async-signal-safe calls.
- */
-#define FOLLY_SAFE_DCHECK(expr, msg) \
-  FOLLY_SAFE_CHECK_IMPL(!folly::kIsDebug || (expr), (expr), (msg))
-
-namespace folly { namespace detail {
-
-[[noreturn]] void assertionFailure(
-    const char* expr,
-    const char* msg,
-    const char* file,
-    unsigned int line,
-    const char* function);
-} // namespace detail
-} // namespace folly
index 27432fdc6891754af205dbb078f0069fee5151f7..d8d2f65cce183f58b825fd20aa114ff5d097f5f2 100644 (file)
@@ -16,7 +16,7 @@
 
 #pragma once
 
-#include <folly/SafeAssert.h>
+#include <folly/lang/SafeAssert.h>
 
 #include <stdint.h>
 
index 2bf37a9def6754cdab44ec314c5465fcb5456d40..c097be6928e80f66d483ba2846736fc7e50ceacd 100644 (file)
@@ -29,7 +29,7 @@
 #include <folly/Conv.h>
 #include <folly/Likely.h>
 #include <folly/Range.h>
-#include <folly/SafeAssert.h>
+#include <folly/lang/SafeAssert.h>
 
 namespace folly {
 namespace symbolizer {
diff --git a/folly/lang/SafeAssert.cpp b/folly/lang/SafeAssert.cpp
new file mode 100644 (file)
index 0000000..20e35ae
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2017 Facebook, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <folly/lang/SafeAssert.h>
+
+#include <folly/Conv.h>
+#include <folly/FileUtil.h>
+
+namespace folly { namespace detail {
+
+namespace {
+void writeStderr(const char* s, size_t len) {
+  writeFull(STDERR_FILENO, s, len);
+}
+void writeStderr(const char* s) {
+  writeStderr(s, strlen(s));
+}
+} // namespace
+
+void assertionFailure(const char* expr, const char* msg, const char* file,
+                      unsigned int line, const char* function) {
+  writeStderr("\n\nAssertion failure: ");
+  writeStderr(expr + 1, strlen(expr) - 2);
+  writeStderr("\nMessage: ");
+  writeStderr(msg);
+  writeStderr("\nFile: ");
+  writeStderr(file);
+  writeStderr("\nLine: ");
+  char buf[20];
+  uint32_t n = uint64ToBufferUnsafe(line, buf);
+  writeFull(STDERR_FILENO, buf, n);
+  writeStderr("\nFunction: ");
+  writeStderr(function);
+  writeStderr("\n");
+  fsyncNoInt(STDERR_FILENO);
+  abort();
+}
+
+} // namespace detail
+} // namespace folly
diff --git a/folly/lang/SafeAssert.h b/folly/lang/SafeAssert.h
new file mode 100644 (file)
index 0000000..182b158
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2017 Facebook, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <folly/Portability.h>
+#include <folly/Preprocessor.h>
+
+/**
+ * Verify that the expression is true. If not, prints an error message
+ * (containing msg) to stderr and abort()s. Just like CHECK(), but only
+ * logs to stderr and only does async-signal-safe calls.
+ */
+#define FOLLY_SAFE_CHECK_IMPL(expr, expr_s, msg) \
+  ((expr) ? static_cast<void>(0) : \
+   ::folly::detail::assertionFailure( \
+       FB_STRINGIZE(expr_s), (msg), __FILE__, __LINE__, __PRETTY_FUNCTION__))
+#define FOLLY_SAFE_CHECK(expr, msg) FOLLY_SAFE_CHECK_IMPL((expr), (expr), (msg))
+
+/**
+ * In debug mode, verify that the expression is true. Otherwise, do nothing
+ * (do not even evaluate expr). Just like DCHECK(), but only logs to stderr and
+ * only does async-signal-safe calls.
+ */
+#define FOLLY_SAFE_DCHECK(expr, msg) \
+  FOLLY_SAFE_CHECK_IMPL(!folly::kIsDebug || (expr), (expr), (msg))
+
+namespace folly { namespace detail {
+
+[[noreturn]] void assertionFailure(
+    const char* expr,
+    const char* msg,
+    const char* file,
+    unsigned int line,
+    const char* function);
+} // namespace detail
+} // namespace folly
diff --git a/folly/lang/test/SafeAssertTest.cpp b/folly/lang/test/SafeAssertTest.cpp
new file mode 100644 (file)
index 0000000..fc2ba6a
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2017 Facebook, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <folly/lang/SafeAssert.h>
+
+#include <glog/logging.h>
+
+#include <folly/Benchmark.h>
+#include <folly/portability/GTest.h>
+
+using namespace folly;
+
+[[noreturn]] void fail() {
+  FOLLY_SAFE_CHECK(0 + 0, "hello");
+}
+
+void succeed() {
+  FOLLY_SAFE_CHECK(1, "world");
+}
+
+TEST(SafeAssert, AssertionFailure) {
+  succeed();
+  EXPECT_DEATH(fail(), "Assertion failure: 0 \\+ 0");
+  EXPECT_DEATH(fail(), "Message: hello");
+}
diff --git a/folly/test/SafeAssertTest.cpp b/folly/test/SafeAssertTest.cpp
deleted file mode 100644 (file)
index 8df2b8c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2017 Facebook, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <folly/SafeAssert.h>
-
-#include <glog/logging.h>
-
-#include <folly/Benchmark.h>
-#include <folly/portability/GTest.h>
-
-using namespace folly;
-
-[[noreturn]] void fail() {
-  FOLLY_SAFE_CHECK(0 + 0, "hello");
-}
-
-void succeed() {
-  FOLLY_SAFE_CHECK(1, "world");
-}
-
-TEST(SafeAssert, AssertionFailure) {
-  succeed();
-  EXPECT_DEATH(fail(), "Assertion failure: 0 \\+ 0");
-  EXPECT_DEATH(fail(), "Message: hello");
-}