# 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("../../../tools/bindings/mojom.gni")

mojom("test_interfaces") {
  testonly = true
  sources = [
    "math_calculator.mojom",
    "no_module.mojom",
    "rect.mojom",
    "regression_tests.mojom",
    "sample_factory.mojom",
    "sample_import.mojom",
    "sample_import2.mojom",
    "sample_interfaces.mojom",
    "sample_service.mojom",
    "serialization_test_structs.mojom",
    "test_structs.mojom",
    "validation_test_interfaces.mojom",
  ]
}
