Add additional points to configure help output
[folly.git] / folly / test / IndestructibleTest.cpp
index 6ee8005d21033c10f3e1b1cf1ebda8bcdc6b6e31..b5ca965690a4a22145b25e1af7a7b4cc2aa1c597 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 Facebook, Inc.
+ * 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.
@@ -20,8 +20,9 @@
 #include <map>
 #include <memory>
 #include <string>
-#include <gtest/gtest.h>
+
 #include <folly/Memory.h>
+#include <folly/portability/GTest.h>
 
 using namespace std;
 using namespace folly;
@@ -74,6 +75,12 @@ TEST_F(IndestructibleTest, no_destruction) {
   EXPECT_EQ(1, state);
 }
 
+TEST_F(IndestructibleTest, empty) {
+  static const Indestructible<map<string, int>> data;
+  auto& m = *data;
+  EXPECT_EQ(0, m.size());
+}
+
 TEST_F(IndestructibleTest, move) {
   int state = 0;
   int value = 0;
@@ -101,3 +108,14 @@ TEST_F(IndestructibleTest, move) {
   EXPECT_EQ(1, state);
   EXPECT_EQ(2, moves);
 }
+
+TEST_F(IndestructibleTest, disabled_default_ctor) {
+  EXPECT_TRUE((std::is_constructible<Indestructible<int>>::value)) << "sanity";
+
+  struct Foo {
+    Foo(int) {}
+  };
+  EXPECT_FALSE((std::is_constructible<Indestructible<Foo>>::value));
+  EXPECT_FALSE((std::is_constructible<Indestructible<Foo>, Magic>::value));
+  EXPECT_TRUE((std::is_constructible<Indestructible<Foo>, int>::value));
+}