# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//testing/libfuzzer/fuzzer_test.gni")

static_library("common") {
  sources = [
    "allocator_state.cc",
    "allocator_state.h",
    "crash_key_name.h",
    "pack_stack_trace.cc",
    "pack_stack_trace.h",
  ]

  deps = [
    "//base",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "allocator_state_unittest.cc",
    "pack_stack_trace_unittest.cc",
  ]
  deps = [
    ":common",
    "//base/test:test_support",
    "//testing/gtest",
  ]
}

fuzzer_test("pack_stack_trace_unpack_fuzzer") {
  sources = [
    "pack_stack_trace_unpack_fuzzer.cc",
  ]
  deps = [
    "//components/gwp_asan/common",
  ]
}

fuzzer_test("pack_stack_trace_differential_fuzzer") {
  sources = [
    "pack_stack_trace_differential_fuzzer.cc",
  ]
  deps = [
    "//components/gwp_asan/common",
  ]
}
