# Copyright (c) Meta Platforms, Inc. and affiliates.

# @noautodeps
load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library")
load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest")
load("//data_compression/experimental/zstrong:defs.bzl", "zs_fuzzers")

oncall("data_compression")

cpp_library(
    name = "json_extract_test_data",
    headers = ["json_extract_test_data.h"],
    exported_deps = [
        "//folly:dynamic",
        "//folly:json",
    ],
)

cpp_unittest(
    name = "test_json_extract",
    srcs = ["test_json_extract.cpp"],
    deps = [
        ":json_extract_test_data",
        "//data_compression/experimental/zstrong:zstronglib",
        "//data_compression/experimental/zstrong/custom_transforms/json_extract:json_extract",
        "//data_compression/experimental/zstrong/tools:zstrong_cpp",
    ],
)

zs_fuzzers(
    srcs = [
        "fuzz_json_extract.cpp",
    ],
    ftest_names = [
        ("JsonExtractTest", "FuzzRoundTrip"),
        ("JsonExtractTest", "FuzzDecompress"),
    ],
    deps = [
        "fbsource//xplat/security/lionhead/utils/lib_ftest:lib",
        ":json_extract_test_data",
        "//data_compression/experimental/zstrong/custom_transforms/json_extract:json_extract",
        "//data_compression/experimental/zstrong/tests:fuzz_utils",
        "//data_compression/experimental/zstrong/tools:zstrong_cpp",
    ],
)
