/*
- * Copyright 2013 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/ThreadCachedArena.h"
-#include "folly/Memory.h"
+#include <folly/ThreadCachedArena.h>
+#include <folly/Memory.h>
+#include <map>
#include <mutex>
#include <thread>
#include <iterator>
#include <unordered_map>
#include <glog/logging.h>
-#include <gtest/gtest.h>
-#include "folly/Range.h"
-#include "folly/Benchmark.h"
+#include <folly/Range.h>
+#include <folly/Benchmark.h>
+#include <folly/portability/GTest.h>
using namespace folly;
} // namespace
TEST(ThreadCachedArena, BlockSize) {
- struct Align { char c; } __attribute__((aligned));
- static const size_t alignment = alignof(Align);
+ static const size_t alignment = alignof(std::max_align_t);
static const size_t requestedBlockSize = 64;
ThreadCachedArena arena(requestedBlockSize);
TEST(ThreadCachedArena, SingleThreaded) {
static const size_t requestedBlockSize = 64;
ThreadCachedArena arena(requestedBlockSize);
+ EXPECT_EQ(arena.totalSize(), sizeof(ThreadCachedArena));
+
ArenaTester tester(arena);
tester.allocate(100, 100 << 10);
tester.verify();
+
+ EXPECT_GT(arena.totalSize(), sizeof(ThreadCachedArena));
}
TEST(ThreadCachedArena, MultiThreaded) {
int main(int argc, char *argv[]) {
testing::InitGoogleTest(&argc, argv);
- google::ParseCommandLineFlags(&argc, &argv, true);
+ gflags::ParseCommandLineFlags(&argc, &argv, true);
auto ret = RUN_ALL_TESTS();
if (!ret && FLAGS_benchmark) {
folly::runBenchmarks();
}
return ret;
}
-