# Copyright 2014 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")

source_set("query_parser") {
  sources = [
    "query_parser.cc",
    "query_parser.h",
    "snippet.cc",
    "snippet.h",
  ]

  deps = [
    "//base",
    "//base:i18n",
    "//third_party/icu",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "query_parser_unittest.cc",
    "snippet_unittest.cc",
  ]
  deps = [
    ":query_parser",
    "//base",
    "//testing/gtest",
  ]
}

fuzzer_test("query_parser_fuzzer") {
  sources = [ "query_parser_fuzzer.cc" ]
  deps = [
    ":query_parser",
    "//base:base",
    "//base:i18n",
  ]
}
