load("@fbsource//tools/build_defs/dirsync:fb_dirsync_cpp_benchmark.bzl", "fb_dirsync_cpp_benchmark")
load("@fbsource//tools/build_defs/dirsync:fb_dirsync_cpp_unittest.bzl", "fb_dirsync_cpp_unittest")

oncall("fbcode_entropy_wardens_folly")

fb_dirsync_cpp_unittest(
    name = "arena_test",
    srcs = ["ArenaTest.cpp"],
    labels = ["oss-broken"],
    deps = [
        "fbsource//third-party/glog:glog",
        "//folly:random",
        "//folly/memory:allocator",
        "//folly/memory:arena",
        "//folly/memory:mallctl_helper",
        "//folly/memory:malloc",
        "//folly/portability:gflags",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "mallctl_helper_test",
    srcs = ["MallctlHelperTest.cpp"],
    allocator = "jemalloc_debug",
    supports_static_listing = False,
    deps = [
        "fbsource//third-party/jemalloc:headers",
        "//folly/memory:mallctl_helper",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "malloc_test",
    srcs = ["MallocTest.cpp"],
    deps = [
        "//folly/memory:malloc",
        "//folly/portability:gtest",
        "//folly/portability:malloc",
        "//folly/test:test_utils",
    ],
)

fb_dirsync_cpp_benchmark(
    name = "malloc_benchmark",
    srcs = ["MallocBenchmark.cpp"],
    deps = [
        "//folly:benchmark",
        "//folly:random",
        "//folly/memory:malloc",
    ],
)

fb_dirsync_cpp_unittest(
    name = "memory_resource_test",
    srcs = ["MemoryResourceTest.cpp"],
    deps = [
        "//folly/memory:memory_resource",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "not_null_test",
    srcs = [
        "not_null_test.cpp",
    ],
    supports_static_listing = False,
    target_compatible_with = ["fbcode//opensource/macros:broken-in-oss"],
    deps = [
        "//folly/memory:not_null",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "reentrant_allocator_test",
    srcs = ["ReentrantAllocatorTest.cpp"],
    deps = [
        "//folly:utility",
        "//folly/functional:invoke",
        "//folly/memory:reentrant_allocator",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "sanitize_address_test",
    srcs = ["SanitizeAddressTest.cpp"],
    deps = [
        "//folly/lang:new",
        "//folly/memory:sanitize_address",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "sanitize_leak_test",
    srcs = ["SanitizeLeakTest.cpp"],
    modifiers = ["ovr_config//build_mode:asan_ubsan_dev_sanitizer_flags[enabled]"],
    deps = [
        "//folly/memory:sanitize_leak",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "shared_from_this_ptr_test",
    srcs = ["shared_from_this_ptr_test.cpp"],
    deps = [
        "//folly/memory:shared_from_this_ptr",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "thread_cached_arena_test",
    srcs = ["ThreadCachedArenaTest.cpp"],
    deps = [
        "fbsource//third-party/glog:glog",
        "//folly:benchmark",
        "//folly:memory",
        "//folly:range",
        "//folly/lang:align",
        "//folly/memory:thread_cached_arena",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "uninitialized_memory_hacks_test",
    srcs = [
        "UninitializedMemoryHacksODR.cpp",
        "UninitializedMemoryHacksTest.cpp",
    ],
    deps = [
        "fbsource//third-party/glog:glog",
        "//folly:random",
        "//folly:traits",
        "//folly/memory:uninitialized_memory_hacks",
        "//folly/portability:gtest",
    ],
)

fb_dirsync_cpp_unittest(
    name = "iobuf_arena_factory_test",
    srcs = ["IOBufArenaFactoryTest.cpp"],
    allocator = "jemalloc",
    deps = [
        "//folly/memory:io_uring_arena",
        "//folly/memory:iobuf_arena_factory",
        "//folly/memory:jemalloc_huge_page_allocator",
        "//folly/portability:gtest",
    ],
)
