chromium/tools/json_schema_compiler/test/BUILD.gn

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

import("//build/config/features.gni")
import("//extensions/buildflags/buildflags.gni")
import("//tools/json_schema_compiler/json_features.gni")
import("//tools/json_schema_compiler/json_schema_api.gni")

assert(enable_extensions)

sources_ = [
  "additional_properties.json",
  "any.json",
  "arrays.json",
  "callbacks.json",
  "choices.json",
  "crossref.json",
  "enums.json",
  "error_generation.json",
  "functions_as_parameters.json",
  "functions_on_types.json",
  "idl_basics.idl",
  "idl_object_types.idl",
  "idl_other_namespace.idl",
  "idl_other_namespace_sub_namespace.idl",
  "idl_properties.idl",
  "ignore_additional_properties.json",
  "objects.json",
  "objects_movable.idl",
  "objects_movable_json.json",
  "returns_async.json",
  "simple_api.json",
]

generated_types("generated_types") {
  visibility = [ ":*" ]

  sources = sources_

  root_namespace = "test::api::%(namespace)s"

  deps = [ "//extensions/buildflags" ]
}

generated_json_strings("generated_api_json_strings") {
  sources = sources_
  bundle_name = ""
  visibility = [ ":*" ]
  root_namespace = "test::api::%(namespace)s"
}

json_features("features_compiler_test") {
  feature_type = "APIFeature"
  method_name = "CompilerTestAddFeaturesMethod"
  sources = [
    "features_test.json",
    "features_test2.json",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "additional_properties_unittest.cc",
    "any_unittest.cc",
    "arrays_unittest.cc",
    "callbacks_unittest.cc",
    "choices_unittest.cc",
    "crossref_unittest.cc",
    "enums_unittest.cc",
    "error_generation_unittest.cc",
    "functions_as_parameters_unittest.cc",
    "functions_on_types_unittest.cc",
    "generated_schemas_unittest.cc",
    "idl_schemas_unittest.cc",
    "ignore_additional_properties_unittest.cc",
    "objects_unittest.cc",
    "returns_async_unittest.cc",
    "simple_api_unittest.cc",
    "test_util.cc",
    "test_util.h",
  ]

  public_deps = [ ":features_compiler_test" ]

  deps = [
    ":generated_api_json_strings",
    ":generated_types",
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}