OSDN Git Service

Test coverage for non-default-constructible elements in a StringMap
authorDavid Blaikie <dblaikie@gmail.com>
Thu, 2 Jan 2014 23:57:28 +0000 (23:57 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Thu, 2 Jan 2014 23:57:28 +0000 (23:57 +0000)
This functionality was enabled by r198374. Here's a test to ensure it
works and we don't regress it.

Based on a patch by Maciej Piechotka.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198377 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ADT/StringMapTest.cpp

index 2ab09b5..130a799 100644 (file)
@@ -203,4 +203,19 @@ TEST_F(StringMapTest, InsertTest) {
   assertSingleItemMap();
 }
 
+// Create a non-default constructable value
+TEST_F(StringMapTest, NonDefaultConstructable) {
+  struct StringMapTestStruct {
+    StringMapTestStruct(int i) : i(i) {}
+    StringMapTestStruct() LLVM_DELETED_FUNCTION;
+    int i;
+  };
+
+  StringMap<StringMapTestStruct> t;
+  t.GetOrCreateValue("Test", StringMapTestStruct(123));
+  StringMap<StringMapTestStruct>::iterator iter = t.find("Test");
+  ASSERT_NE(iter, t.end());
+  ASSERT_EQ(iter->second.i, 123);
+}
+
 } // end anonymous namespace