# Copyright 2022 The Dawn & Tint Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build_overrides/build.gni")
import("//testing/test.gni")
import("../../tint_overrides_with_defaults.gni")

###############################################################################
# Gtest Gmock - Handle building inside and outside of Chromium.
###############################################################################
# When building outside of Chromium we need to define our own targets for GTest
# and GMock. However when compiling inside of Chromium we need to reuse the
# existing targets, both because Chromium has a special harness for swarming
# and because otherwise the "gn check" fails.

if (!build_with_chromium) {
  # When we aren't in Chromium we define out own targets based on the location
  # of the googletest repo.
  config("gtest_config") {
    include_dirs = [
      "${tint_googletest_dir}/googletest",
      "${tint_googletest_dir}/googletest/include",
    ]
  }
  static_library("gtest") {
    testonly = true
    sources = [ "${tint_googletest_dir}/googletest/src/gtest-all.cc" ]
    public_configs = [ ":gtest_config" ]
  }

  config("gmock_config") {
    include_dirs = [
      "${tint_googletest_dir}/googlemock",
      "${tint_googletest_dir}/googlemock/include",
      "${tint_googletest_dir}/googletest/include",
    ]
  }

  static_library("gmock") {
    testonly = true
    sources = [ "${tint_googletest_dir}/googlemock/src/gmock-all.cc" ]
    public_configs = [ ":gmock_config" ]
  }

  group("gmock_and_gtest") {
    testonly = true
    public_deps = [
      ":gmock",
      ":gtest",
    ]
  }
} else {
  # When we are in Chromium we reuse its targets, and also add some deps that
  # are needed to launch the test in swarming mode.
  group("gmock_and_gtest") {
    testonly = true
    public_deps = [
      "//base",
      "//base/test:test_support",
      "//testing/gmock",
      "//testing/gtest",
      "//third_party/googletest:gmock",
    ]
  }
}

###############################################################################
# Wrapping of Chromium targets
###############################################################################
# These targets are separated because they are Chromium sources files that
# can't use the tint_internal config, otherwise Tint's warning flags get
# applied while compiling a bunch of Chromium's //base (via header inclusion)
source_set("tint_unittests_main") {
  testonly = true
  deps = [ ":gmock_and_gtest" ]
  if (build_with_chromium) {
    sources = [ "//gpu/tint_unittests_main.cc" ]
  } else {
    sources = [ "../../src/tint/test_main.cc" ]
    configs += [ ":tint_unittests_config" ]
    deps += [
      ":tint_unittests_hlsl_writer_src",
      ":tint_unittests_msl_writer_src",
      ":tint_unittests_spv_reader_src",
      "${tint_root_dir}/src/tint:libtint",
    ]
  }
}

###############################################################################
# Tests - For libtint core and optional modules
###############################################################################
config("tint_unittests_config") {
  include_dirs = [
    "${tint_googletest_dir}/googlemock/include",
    "${tint_googletest_dir}/googletest/include",
  ]

  configs = [
    "${tint_root_dir}/src/tint:tint_common_config",
    "${tint_root_dir}/src/tint:tint_public_config",
  ]
}

template("tint_unittests_source_set") {
  source_set(target_name) {
    forward_variables_from(invoker, "*", [ "configs" ])

    if (defined(invoker.configs)) {
      configs += invoker.configs
    }
    configs += [ ":tint_unittests_config" ]
    if (build_with_chromium) {
      configs -= [ "//build/config/compiler:chromium_code" ]
      configs += [ "//build/config/compiler:no_chromium_code" ]
    }

    testonly = true

    if (!defined(invoker.deps)) {
      deps = []
    }
    deps += [
      ":gmock_and_gtest",
      "${tint_root_dir}/src/tint:libtint",
      "${tint_root_dir}/src/tint:tint_utils_io",
    ]
  }
}

tint_unittests_source_set("tint_unittests_ast_src") {
  sources = [
    "../../src/tint/ast/alias_test.cc",
    "../../src/tint/ast/array_test.cc",
    "../../src/tint/ast/assignment_statement_test.cc",
    "../../src/tint/ast/atomic_test.cc",
    "../../src/tint/ast/binary_expression_test.cc",
    "../../src/tint/ast/binding_attribute_test.cc",
    "../../src/tint/ast/bitcast_expression_test.cc",
    "../../src/tint/ast/block_statement_test.cc",
    "../../src/tint/ast/bool_literal_expression_test.cc",
    "../../src/tint/ast/bool_test.cc",
    "../../src/tint/ast/break_statement_test.cc",
    "../../src/tint/ast/builtin_attribute_test.cc",
    "../../src/tint/ast/builtin_texture_helper_test.cc",
    "../../src/tint/ast/builtin_texture_helper_test.h",
    "../../src/tint/ast/call_expression_test.cc",
    "../../src/tint/ast/call_statement_test.cc",
    "../../src/tint/ast/case_statement_test.cc",
    "../../src/tint/ast/compound_assignment_statement_test.cc",
    "../../src/tint/ast/continue_statement_test.cc",
    "../../src/tint/ast/depth_multisampled_texture_test.cc",
    "../../src/tint/ast/depth_texture_test.cc",
    "../../src/tint/ast/discard_statement_test.cc",
    "../../src/tint/ast/enable_test.cc",
    "../../src/tint/ast/extension_test.cc",
    "../../src/tint/ast/external_texture_test.cc",
    "../../src/tint/ast/f16_test.cc",
    "../../src/tint/ast/f32_test.cc",
    "../../src/tint/ast/fallthrough_statement_test.cc",
    "../../src/tint/ast/float_literal_expression_test.cc",
    "../../src/tint/ast/for_loop_statement_test.cc",
    "../../src/tint/ast/function_test.cc",
    "../../src/tint/ast/group_attribute_test.cc",
    "../../src/tint/ast/i32_test.cc",
    "../../src/tint/ast/id_attribute_test.cc",
    "../../src/tint/ast/identifier_expression_test.cc",
    "../../src/tint/ast/if_statement_test.cc",
    "../../src/tint/ast/increment_decrement_statement_test.cc",
    "../../src/tint/ast/index_accessor_expression_test.cc",
    "../../src/tint/ast/int_literal_expression_test.cc",
    "../../src/tint/ast/interpolate_attribute_test.cc",
    "../../src/tint/ast/invariant_attribute_test.cc",
    "../../src/tint/ast/location_attribute_test.cc",
    "../../src/tint/ast/loop_statement_test.cc",
    "../../src/tint/ast/matrix_test.cc",
    "../../src/tint/ast/member_accessor_expression_test.cc",
    "../../src/tint/ast/module_clone_test.cc",
    "../../src/tint/ast/module_test.cc",
    "../../src/tint/ast/multisampled_texture_test.cc",
    "../../src/tint/ast/phony_expression_test.cc",
    "../../src/tint/ast/pointer_test.cc",
    "../../src/tint/ast/return_statement_test.cc",
    "../../src/tint/ast/sampled_texture_test.cc",
    "../../src/tint/ast/sampler_test.cc",
    "../../src/tint/ast/stage_attribute_test.cc",
    "../../src/tint/ast/storage_texture_test.cc",
    "../../src/tint/ast/stride_attribute_test.cc",
    "../../src/tint/ast/struct_member_align_attribute_test.cc",
    "../../src/tint/ast/struct_member_offset_attribute_test.cc",
    "../../src/tint/ast/struct_member_size_attribute_test.cc",
    "../../src/tint/ast/struct_member_test.cc",
    "../../src/tint/ast/struct_test.cc",
    "../../src/tint/ast/switch_statement_test.cc",
    "../../src/tint/ast/test_helper.h",
    "../../src/tint/ast/texture_test.cc",
    "../../src/tint/ast/traverse_expressions_test.cc",
    "../../src/tint/ast/u32_test.cc",
    "../../src/tint/ast/unary_op_expression_test.cc",
    "../../src/tint/ast/variable_decl_statement_test.cc",
    "../../src/tint/ast/variable_test.cc",
    "../../src/tint/ast/vector_test.cc",
    "../../src/tint/ast/workgroup_attribute_test.cc",
  ]
}

tint_unittests_source_set("tint_unittests_diagnostic_src") {
  sources = [
    "../../src/tint/diagnostic/diagnostic_test.cc",
    "../../src/tint/diagnostic/formatter_test.cc",
    "../../src/tint/diagnostic/printer_test.cc",
  ]
}

tint_unittests_source_set("tint_unittests_inspector_src") {
  sources = [
    "../../src/tint/inspector/inspector_test.cc",
    "../../src/tint/inspector/test_inspector_builder.cc",
    "../../src/tint/inspector/test_inspector_builder.h",
    "../../src/tint/inspector/test_inspector_runner.cc",
    "../../src/tint/inspector/test_inspector_runner.h",
  ]
}

tint_unittests_source_set("tint_unittests_resolver_src") {
  sources = [
    "../../src/tint/resolver/array_accessor_test.cc",
    "../../src/tint/resolver/assignment_validation_test.cc",
    "../../src/tint/resolver/atomics_test.cc",
    "../../src/tint/resolver/atomics_validation_test.cc",
    "../../src/tint/resolver/attribute_validation_test.cc",
    "../../src/tint/resolver/bitcast_validation_test.cc",
    "../../src/tint/resolver/builtin_test.cc",
    "../../src/tint/resolver/builtin_validation_test.cc",
    "../../src/tint/resolver/builtins_validation_test.cc",
    "../../src/tint/resolver/call_test.cc",
    "../../src/tint/resolver/call_validation_test.cc",
    "../../src/tint/resolver/compound_assignment_validation_test.cc",
    "../../src/tint/resolver/compound_statement_test.cc",
    "../../src/tint/resolver/control_block_validation_test.cc",
    "../../src/tint/resolver/dependency_graph_test.cc",
    "../../src/tint/resolver/entry_point_validation_test.cc",
    "../../src/tint/resolver/function_validation_test.cc",
    "../../src/tint/resolver/host_shareable_validation_test.cc",
    "../../src/tint/resolver/increment_decrement_validation_test.cc",
    "../../src/tint/resolver/intrinsic_table_test.cc",
    "../../src/tint/resolver/is_host_shareable_test.cc",
    "../../src/tint/resolver/is_storeable_test.cc",
    "../../src/tint/resolver/materialize_test.cc",
    "../../src/tint/resolver/pipeline_overridable_constant_test.cc",
    "../../src/tint/resolver/ptr_ref_test.cc",
    "../../src/tint/resolver/ptr_ref_validation_test.cc",
    "../../src/tint/resolver/resolver_behavior_test.cc",
    "../../src/tint/resolver/resolver_constants_test.cc",
    "../../src/tint/resolver/resolver_test.cc",
    "../../src/tint/resolver/resolver_test_helper.cc",
    "../../src/tint/resolver/resolver_test_helper.h",
    "../../src/tint/resolver/side_effects_test.cc",
    "../../src/tint/resolver/source_variable_test.cc",
    "../../src/tint/resolver/storage_class_layout_validation_test.cc",
    "../../src/tint/resolver/storage_class_validation_test.cc",
    "../../src/tint/resolver/struct_layout_test.cc",
    "../../src/tint/resolver/struct_pipeline_stage_use_test.cc",
    "../../src/tint/resolver/struct_storage_class_use_test.cc",
    "../../src/tint/resolver/type_constructor_validation_test.cc",
    "../../src/tint/resolver/type_validation_test.cc",
    "../../src/tint/resolver/uniformity_test.cc",
    "../../src/tint/resolver/validation_test.cc",
    "../../src/tint/resolver/validator_is_storeable_test.cc",
    "../../src/tint/resolver/var_let_test.cc",
    "../../src/tint/resolver/var_let_validation_test.cc",
  ]
  deps = [ ":tint_unittests_ast_src" ]
}

tint_unittests_source_set("tint_unittests_sem_src") {
  sources = [
    "../../src/tint/sem/atomic_test.cc",
    "../../src/tint/sem/bool_test.cc",
    "../../src/tint/sem/builtin_test.cc",
    "../../src/tint/sem/constant_test.cc",
    "../../src/tint/sem/depth_multisampled_texture_test.cc",
    "../../src/tint/sem/depth_texture_test.cc",
    "../../src/tint/sem/expression_test.cc",
    "../../src/tint/sem/external_texture_test.cc",
    "../../src/tint/sem/f16_test.cc",
    "../../src/tint/sem/f32_test.cc",
    "../../src/tint/sem/i32_test.cc",
    "../../src/tint/sem/matrix_test.cc",
    "../../src/tint/sem/multisampled_texture_test.cc",
    "../../src/tint/sem/pointer_test.cc",
    "../../src/tint/sem/reference_test.cc",
    "../../src/tint/sem/sampled_texture_test.cc",
    "../../src/tint/sem/sampler_test.cc",
    "../../src/tint/sem/sem_array_test.cc",
    "../../src/tint/sem/sem_struct_test.cc",
    "../../src/tint/sem/storage_texture_test.cc",
    "../../src/tint/sem/texture_test.cc",
    "../../src/tint/sem/type_test.cc",
    "../../src/tint/sem/type_manager_test.cc",
    "../../src/tint/sem/u32_test.cc",
    "../../src/tint/sem/vector_test.cc",
  ]
}

tint_unittests_source_set("tint_unittests_text_src") {
  sources = [ "../../src/tint/text/unicode_test.cc" ]
}

tint_unittests_source_set("tint_unittests_transform_src") {
  sources = [
    "../../src/tint/transform/add_empty_entry_point_test.cc",
    "../../src/tint/transform/add_spirv_block_attribute_test.cc",
    "../../src/tint/transform/array_length_from_uniform_test.cc",
    "../../src/tint/transform/binding_remapper_test.cc",
    "../../src/tint/transform/builtin_polyfill_test.cc",
    "../../src/tint/transform/calculate_array_length_test.cc",
    "../../src/tint/transform/canonicalize_entry_point_io_test.cc",
    "../../src/tint/transform/combine_samplers_test.cc",
    "../../src/tint/transform/decompose_memory_access_test.cc",
    "../../src/tint/transform/decompose_strided_array_test.cc",
    "../../src/tint/transform/decompose_strided_matrix_test.cc",
    "../../src/tint/transform/disable_uniformity_analysis_test.cc",
    "../../src/tint/transform/expand_compound_assignment_test.cc",
    "../../src/tint/transform/first_index_offset_test.cc",
    "../../src/tint/transform/fold_trivial_single_use_lets_test.cc",
    "../../src/tint/transform/for_loop_to_loop_test.cc",
    "../../src/tint/transform/localize_struct_array_assignment_test.cc",
    "../../src/tint/transform/loop_to_for_loop_test.cc",
    "../../src/tint/transform/module_scope_var_to_entry_point_param_test.cc",
    "../../src/tint/transform/multiplanar_external_texture_test.cc",
    "../../src/tint/transform/num_workgroups_from_uniform_test.cc",
    "../../src/tint/transform/promote_initializers_to_const_var_test.cc",
    "../../src/tint/transform/promote_side_effects_to_decl_test.cc",
    "../../src/tint/transform/remove_continue_in_switch_test.cc",
    "../../src/tint/transform/remove_phonies_test.cc",
    "../../src/tint/transform/remove_unreachable_statements_test.cc",
    "../../src/tint/transform/renamer_test.cc",
    "../../src/tint/transform/robustness_test.cc",
    "../../src/tint/transform/simplify_pointers_test.cc",
    "../../src/tint/transform/single_entry_point_test.cc",
    "../../src/tint/transform/test_helper.h",
    "../../src/tint/transform/transform_test.cc",
    "../../src/tint/transform/unshadow_test.cc",
    "../../src/tint/transform/unwind_discard_functions_test.cc",
    "../../src/tint/transform/utils/get_insertion_point_test.cc",
    "../../src/tint/transform/utils/hoist_to_decl_before_test.cc",
    "../../src/tint/transform/var_for_dynamic_index_test.cc",
    "../../src/tint/transform/vectorize_scalar_matrix_constructors_test.cc",
    "../../src/tint/transform/vertex_pulling_test.cc",
    "../../src/tint/transform/wrap_arrays_in_structs_test.cc",
    "../../src/tint/transform/zero_init_workgroup_memory_test.cc",
  ]
}

tint_unittests_source_set("tint_unittests_utils_src") {
  sources = [
    "../../src/tint/utils/bitcast_test.cc",
    "../../src/tint/utils/crc32_test.cc",
    "../../src/tint/utils/defer_test.cc",
    "../../src/tint/utils/enum_set_test.cc",
    "../../src/tint/utils/hash_test.cc",
    "../../src/tint/utils/io/command_test.cc",
    "../../src/tint/utils/io/tmpfile_test.cc",
    "../../src/tint/utils/map_test.cc",
    "../../src/tint/utils/math_test.cc",
    "../../src/tint/utils/result_test.cc",
    "../../src/tint/utils/reverse_test.cc",
    "../../src/tint/utils/scoped_assignment_test.cc",
    "../../src/tint/utils/string_test.cc",
    "../../src/tint/utils/transform_test.cc",
    "../../src/tint/utils/unique_allocator_test.cc",
    "../../src/tint/utils/unique_vector_test.cc",
  ]
}

tint_unittests_source_set("tint_unittests_writer_src") {
  sources = [
    "../../src/tint/writer/append_vector_test.cc",
    "../../src/tint/writer/flatten_bindings_test.cc",
    "../../src/tint/writer/float_to_string_test.cc",
    "../../src/tint/writer/generate_external_texture_bindings_test.cc",
    "../../src/tint/writer/text_generator_test.cc",
  ]
}

tint_unittests_source_set("tint_unittests_spv_reader_src") {
  sources = [
    "../../src/tint/reader/spirv/enum_converter_test.cc",
    "../../src/tint/reader/spirv/fail_stream_test.cc",
    "../../src/tint/reader/spirv/function_arithmetic_test.cc",
    "../../src/tint/reader/spirv/function_bit_test.cc",
    "../../src/tint/reader/spirv/function_call_test.cc",
    "../../src/tint/reader/spirv/function_cfg_test.cc",
    "../../src/tint/reader/spirv/function_composite_test.cc",
    "../../src/tint/reader/spirv/function_conversion_test.cc",
    "../../src/tint/reader/spirv/function_decl_test.cc",
    "../../src/tint/reader/spirv/function_glsl_std_450_test.cc",
    "../../src/tint/reader/spirv/function_logical_test.cc",
    "../../src/tint/reader/spirv/function_memory_test.cc",
    "../../src/tint/reader/spirv/function_misc_test.cc",
    "../../src/tint/reader/spirv/function_var_test.cc",
    "../../src/tint/reader/spirv/namer_test.cc",
    "../../src/tint/reader/spirv/parser_impl_barrier_test.cc",
    "../../src/tint/reader/spirv/parser_impl_convert_member_decoration_test.cc",
    "../../src/tint/reader/spirv/parser_impl_convert_type_test.cc",
    "../../src/tint/reader/spirv/parser_impl_function_decl_test.cc",
    "../../src/tint/reader/spirv/parser_impl_get_decorations_test.cc",
    "../../src/tint/reader/spirv/parser_impl_handle_test.cc",
    "../../src/tint/reader/spirv/parser_impl_import_test.cc",
    "../../src/tint/reader/spirv/parser_impl_module_var_test.cc",
    "../../src/tint/reader/spirv/parser_impl_named_types_test.cc",
    "../../src/tint/reader/spirv/parser_impl_test.cc",
    "../../src/tint/reader/spirv/parser_impl_test_helper.cc",
    "../../src/tint/reader/spirv/parser_impl_test_helper.h",
    "../../src/tint/reader/spirv/parser_impl_user_name_test.cc",
    "../../src/tint/reader/spirv/parser_test.cc",
    "../../src/tint/reader/spirv/parser_type_test.cc",
    "../../src/tint/reader/spirv/spirv_tools_helpers_test.cc",
    "../../src/tint/reader/spirv/spirv_tools_helpers_test.h",
    "../../src/tint/reader/spirv/usage_test.cc",
  ]

  deps = [ "${tint_root_dir}/src/tint:libtint_spv_reader_src" ]
}

tint_unittests_source_set("tint_unittests_spv_writer_src") {
  sources = [
    "../../src/tint/writer/spirv/binary_writer_test.cc",
    "../../src/tint/writer/spirv/builder_accessor_expression_test.cc",
    "../../src/tint/writer/spirv/builder_assign_test.cc",
    "../../src/tint/writer/spirv/builder_binary_expression_test.cc",
    "../../src/tint/writer/spirv/builder_bitcast_expression_test.cc",
    "../../src/tint/writer/spirv/builder_block_test.cc",
    "../../src/tint/writer/spirv/builder_builtin_test.cc",
    "../../src/tint/writer/spirv/builder_builtin_texture_test.cc",
    "../../src/tint/writer/spirv/builder_call_test.cc",
    "../../src/tint/writer/spirv/builder_constructor_expression_test.cc",
    "../../src/tint/writer/spirv/builder_discard_test.cc",
    "../../src/tint/writer/spirv/builder_entry_point_test.cc",
    "../../src/tint/writer/spirv/builder_format_conversion_test.cc",
    "../../src/tint/writer/spirv/builder_function_attribute_test.cc",
    "../../src/tint/writer/spirv/builder_function_test.cc",
    "../../src/tint/writer/spirv/builder_function_variable_test.cc",
    "../../src/tint/writer/spirv/builder_global_variable_test.cc",
    "../../src/tint/writer/spirv/builder_ident_expression_test.cc",
    "../../src/tint/writer/spirv/builder_if_test.cc",
    "../../src/tint/writer/spirv/builder_literal_test.cc",
    "../../src/tint/writer/spirv/builder_loop_test.cc",
    "../../src/tint/writer/spirv/builder_return_test.cc",
    "../../src/tint/writer/spirv/builder_switch_test.cc",
    "../../src/tint/writer/spirv/builder_test.cc",
    "../../src/tint/writer/spirv/builder_type_test.cc",
    "../../src/tint/writer/spirv/builder_unary_op_expression_test.cc",
    "../../src/tint/writer/spirv/instruction_test.cc",
    "../../src/tint/writer/spirv/operand_test.cc",
    "../../src/tint/writer/spirv/scalar_constant_test.cc",
    "../../src/tint/writer/spirv/spv_dump.cc",
    "../../src/tint/writer/spirv/spv_dump.h",
    "../../src/tint/writer/spirv/test_helper.h",
  ]

  deps = [
    ":tint_unittests_ast_src",
    "${tint_root_dir}/src/tint:libtint_spv_writer_src",
    "${tint_spirv_tools_dir}/:spvtools",
  ]
}

tint_unittests_source_set("tint_unittests_wgsl_reader_src") {
  sources = [
    "../../src/tint/reader/wgsl/lexer_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_additive_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_and_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_argument_expression_list_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_assignment_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_body_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_break_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_bug_cases_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_call_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_case_body_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_const_expr_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_const_literal_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_continue_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_continuing_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_depth_texture_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_enable_directive_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_equality_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_error_msg_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_error_resync_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_exclusive_or_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_external_texture_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_for_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_function_attribute_list_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_function_attribute_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_function_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_function_header_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_global_constant_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_global_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_global_variable_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_if_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_inclusive_or_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_increment_decrement_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_logical_and_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_logical_or_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_loop_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_multiplicative_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_param_list_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_paren_rhs_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_pipeline_stage_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_primary_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_relational_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_reserved_keyword_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_sampled_texture_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_sampler_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_shift_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_singular_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_statement_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_statements_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_storage_class_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_storage_texture_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_struct_attribute_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_struct_body_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_struct_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_struct_member_attribute_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_struct_member_attribute_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_struct_member_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_switch_body_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_switch_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_test_helper.cc",
    "../../src/tint/reader/wgsl/parser_impl_test_helper.h",
    "../../src/tint/reader/wgsl/parser_impl_texel_format_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_texture_sampler_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_type_alias_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_type_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_unary_expression_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_variable_attribute_list_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_variable_attribute_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_variable_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_variable_ident_decl_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_variable_qualifier_test.cc",
    "../../src/tint/reader/wgsl/parser_impl_variable_stmt_test.cc",
    "../../src/tint/reader/wgsl/parser_test.cc",
    "../../src/tint/reader/wgsl/token_test.cc",
  ]

  deps = [ "${tint_root_dir}/src/tint:libtint_wgsl_reader_src" ]
}

tint_unittests_source_set("tint_unittests_wgsl_writer_src") {
  sources = [
    "../../src/tint/writer/wgsl/generator_impl_alias_type_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_array_accessor_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_assign_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_binary_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_bitcast_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_block_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_break_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_call_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_case_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_cast_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_constructor_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_continue_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_discard_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_enable_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_fallthrough_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_function_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_global_decl_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_identifier_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_if_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_literal_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_loop_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_member_accessor_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_return_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_switch_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_type_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_unary_op_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_variable_decl_statement_test.cc",
    "../../src/tint/writer/wgsl/generator_impl_variable_test.cc",
    "../../src/tint/writer/wgsl/test_helper.h",
  ]

  deps = [
    ":tint_unittests_ast_src",
    "${tint_root_dir}/src/tint:libtint_wgsl_writer_src",
  ]
}

tint_unittests_source_set("tint_unittests_msl_writer_src") {
  sources = [
    "../../src/tint/writer/msl/generator_impl_array_accessor_test.cc",
    "../../src/tint/writer/msl/generator_impl_assign_test.cc",
    "../../src/tint/writer/msl/generator_impl_binary_test.cc",
    "../../src/tint/writer/msl/generator_impl_bitcast_test.cc",
    "../../src/tint/writer/msl/generator_impl_block_test.cc",
    "../../src/tint/writer/msl/generator_impl_break_test.cc",
    "../../src/tint/writer/msl/generator_impl_builtin_test.cc",
    "../../src/tint/writer/msl/generator_impl_builtin_texture_test.cc",
    "../../src/tint/writer/msl/generator_impl_call_test.cc",
    "../../src/tint/writer/msl/generator_impl_case_test.cc",
    "../../src/tint/writer/msl/generator_impl_cast_test.cc",
    "../../src/tint/writer/msl/generator_impl_constructor_test.cc",
    "../../src/tint/writer/msl/generator_impl_continue_test.cc",
    "../../src/tint/writer/msl/generator_impl_discard_test.cc",
    "../../src/tint/writer/msl/generator_impl_function_test.cc",
    "../../src/tint/writer/msl/generator_impl_identifier_test.cc",
    "../../src/tint/writer/msl/generator_impl_if_test.cc",
    "../../src/tint/writer/msl/generator_impl_import_test.cc",
    "../../src/tint/writer/msl/generator_impl_loop_test.cc",
    "../../src/tint/writer/msl/generator_impl_member_accessor_test.cc",
    "../../src/tint/writer/msl/generator_impl_module_constant_test.cc",
    "../../src/tint/writer/msl/generator_impl_return_test.cc",
    "../../src/tint/writer/msl/generator_impl_sanitizer_test.cc",
    "../../src/tint/writer/msl/generator_impl_switch_test.cc",
    "../../src/tint/writer/msl/generator_impl_test.cc",
    "../../src/tint/writer/msl/generator_impl_type_test.cc",
    "../../src/tint/writer/msl/generator_impl_unary_op_test.cc",
    "../../src/tint/writer/msl/generator_impl_variable_decl_statement_test.cc",
    "../../src/tint/writer/msl/test_helper.h",
  ]

  deps = [
    ":tint_unittests_ast_src",
    "${tint_root_dir}/src/tint:libtint_msl_writer_src",
  ]
}

tint_unittests_source_set("tint_unittests_hlsl_writer_src") {
  sources = [
    "../../src/tint/writer/hlsl/generator_impl_array_accessor_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_assign_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_binary_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_bitcast_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_block_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_break_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_builtin_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_builtin_texture_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_call_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_case_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_cast_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_constructor_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_continue_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_discard_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_function_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_identifier_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_if_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_import_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_loop_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_member_accessor_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_module_constant_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_return_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_sanitizer_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_switch_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_type_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_unary_op_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_variable_decl_statement_test.cc",
    "../../src/tint/writer/hlsl/generator_impl_workgroup_var_test.cc",
    "../../src/tint/writer/hlsl/test_helper.h",
  ]

  deps = [
    ":tint_unittests_ast_src",
    "${tint_root_dir}/src/tint:libtint_hlsl_writer_src",
  ]
}

tint_unittests_source_set("tint_unittests_glsl_writer_src") {
  sources = [
    "../../src/tint/writer/glsl/generator_impl_array_accessor_test.cc",
    "../../src/tint/writer/glsl/generator_impl_assign_test.cc",
    "../../src/tint/writer/glsl/generator_impl_binary_test.cc",
    "../../src/tint/writer/glsl/generator_impl_bitcast_test.cc",
    "../../src/tint/writer/glsl/generator_impl_block_test.cc",
    "../../src/tint/writer/glsl/generator_impl_break_test.cc",
    "../../src/tint/writer/glsl/generator_impl_builtin_test.cc",
    "../../src/tint/writer/glsl/generator_impl_builtin_texture_test.cc",
    "../../src/tint/writer/glsl/generator_impl_call_test.cc",
    "../../src/tint/writer/glsl/generator_impl_case_test.cc",
    "../../src/tint/writer/glsl/generator_impl_cast_test.cc",
    "../../src/tint/writer/glsl/generator_impl_constructor_test.cc",
    "../../src/tint/writer/glsl/generator_impl_continue_test.cc",
    "../../src/tint/writer/glsl/generator_impl_discard_test.cc",
    "../../src/tint/writer/glsl/generator_impl_function_test.cc",
    "../../src/tint/writer/glsl/generator_impl_identifier_test.cc",
    "../../src/tint/writer/glsl/generator_impl_if_test.cc",
    "../../src/tint/writer/glsl/generator_impl_import_test.cc",
    "../../src/tint/writer/glsl/generator_impl_loop_test.cc",
    "../../src/tint/writer/glsl/generator_impl_member_accessor_test.cc",
    "../../src/tint/writer/glsl/generator_impl_module_constant_test.cc",
    "../../src/tint/writer/glsl/generator_impl_return_test.cc",
    "../../src/tint/writer/glsl/generator_impl_sanitizer_test.cc",
    "../../src/tint/writer/glsl/generator_impl_storage_buffer_test.cc",
    "../../src/tint/writer/glsl/generator_impl_switch_test.cc",
    "../../src/tint/writer/glsl/generator_impl_test.cc",
    "../../src/tint/writer/glsl/generator_impl_type_test.cc",
    "../../src/tint/writer/glsl/generator_impl_unary_op_test.cc",
    "../../src/tint/writer/glsl/generator_impl_uniform_buffer_test.cc",
    "../../src/tint/writer/glsl/generator_impl_variable_decl_statement_test.cc",
    "../../src/tint/writer/glsl/generator_impl_workgroup_var_test.cc",
    "../../src/tint/writer/glsl/test_helper.h",
  ]

  deps = [
    ":tint_unittests_ast_src",
    ":tint_unittests_transform_src",
    "${tint_root_dir}/src/tint:libtint_glsl_writer_src",
  ]
}

tint_unittests_source_set("tint_unittests_core_src") {
  sources = [
    "../../src/tint/castable_test.cc",
    "../../src/tint/clone_context_test.cc",
    "../../src/tint/debug_test.cc",
    "../../src/tint/demangler_test.cc",
    "../../src/tint/number_test.cc",
    "../../src/tint/program_builder_test.cc",
    "../../src/tint/program_test.cc",
    "../../src/tint/scope_stack_test.cc",
    "../../src/tint/source_test.cc",
    "../../src/tint/symbol_table_test.cc",
    "../../src/tint/symbol_test.cc",
    "../../src/tint/traits_test.cc",
    "../../src/tint/utils/block_allocator_test.cc",
  ]

  deps = [ ":tint_unittests_ast_src" ]
}

if (build_with_chromium) {
  tint_unittests_source_set("tint_unittests_fuzzer_src") {
    sources = [ "../../src/tint/fuzzers/random_generator_test.cc" ]

    deps = [
      ":tint_unittests_core_src",
      "${tint_root_dir}/src/tint/fuzzers:tint_fuzzer_common_src",
    ]
  }
}

source_set("tint_unittests_src") {
  testonly = true

  deps = [
    ":tint_unittests_ast_src",
    ":tint_unittests_core_src",
    ":tint_unittests_diagnostic_src",
    ":tint_unittests_inspector_src",
    ":tint_unittests_resolver_src",
    ":tint_unittests_sem_src",
    ":tint_unittests_text_src",
    ":tint_unittests_transform_src",
    ":tint_unittests_utils_src",
    ":tint_unittests_writer_src",
    "${tint_root_dir}/src/tint:libtint_wgsl_reader_src",
    "${tint_root_dir}/src/tint:libtint_wgsl_writer_src",
  ]

  if (tint_build_spv_reader) {
    deps += [ ":tint_unittests_spv_reader_src" ]
  }

  if (tint_build_spv_writer) {
    deps += [ ":tint_unittests_spv_writer_src" ]
  }

  if (tint_build_wgsl_reader) {
    deps += [ ":tint_unittests_wgsl_reader_src" ]
  }

  if (tint_build_wgsl_writer) {
    deps += [ ":tint_unittests_wgsl_writer_src" ]
  }

  if (tint_build_msl_writer) {
    deps += [ ":tint_unittests_msl_writer_src" ]
  }

  if (tint_build_hlsl_writer) {
    deps += [ ":tint_unittests_hlsl_writer_src" ]
  }

  if (tint_build_glsl_writer) {
    deps += [ ":tint_unittests_glsl_writer_src" ]
  }

  if (build_with_chromium) {
    deps += [ ":tint_unittests_fuzzer_src" ]
  }

  configs += [ ":tint_unittests_config" ]

  if (build_with_chromium) {
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }
}

test("tint_unittests") {
  deps = [
    ":gmock_and_gtest",
    ":tint_unittests_src",
    "${tint_spirv_tools_dir}/:spvtools",
    "${tint_spirv_tools_dir}/:spvtools_opt",
    "${tint_spirv_tools_dir}/:spvtools_val",
  ]

  deps += [ ":tint_unittests_main" ]

  configs += [ ":tint_unittests_config" ]

  if (build_with_chromium) {
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }

  testonly = true
}
