Improve QueueAppender/IOBufQueue performance
[folly.git] / folly / test / PackedSyncPtrTest.cpp
index 0406b56d1f1ab2a4d8b4f6dca550e4f37db33abb..78392e39075e2752b28dae736f9492bbba02be72 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 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.
  * limitations under the License.
  */
 
-#include "folly/PackedSyncPtr.h"
+#include <folly/PackedSyncPtr.h>
 
 #include <cinttypes>
-#include <gtest/gtest.h>
 #include <thread>
 #include <unordered_map>
 #include <utility>
 
+#include <folly/portability/GTest.h>
+
 using folly::PackedSyncPtr;
 
 namespace {
@@ -33,7 +34,7 @@ struct ignore { PackedSyncPtr<int> foo; char c; } FOLLY_PACK_ATTR;
 FOLLY_PACK_POP
 static_assert(sizeof(ignore) == 9, "PackedSyncPtr wasn't packable");
 
-}
+} // namespace
 
 TEST(PackedSyncPtr, Basic) {
   PackedSyncPtr<std::pair<int,int>> sp;
@@ -61,13 +62,15 @@ TEST(PackedSyncPtr, Basic) {
   EXPECT_EQ(sp.extra(), 0x13);
   EXPECT_EQ(sp.get(), newP);
   sp.unlock();
+  delete sp.get();
 }
 
 // Here we use the PackedSyncPtr to lock the whole SyncVec (base, *base, and sz)
-template<typename T>
+template <typename T>
 struct SyncVec {
   PackedSyncPtr<T> base;
   SyncVec() { base.init(); }
+  ~SyncVec() { free(base.get()); }
   void push_back(const T& t) {
     base.set((T*) realloc(base.get(),
       (base.extra() + 1) * sizeof(T)));