| # Copyright 2020 The Fuchsia 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("//build/fidl/toolchain.gni") |
| |
| # List of information about FIDL test libraries. Each item has: |
| # |
| # name |
| # Unique name to use in golden filenames. |
| # |
| # target |
| # Label of a FIDL target. Its target_name must be unique among all items, |
| # and identical to the FIDL library name. |
| # |
| # denylist |
| # List of tools that should not generate golden files. |
| # Allowed items: fidldoc, fidlgen_dart, fidlgen_go, fidlgen_hlcpp, |
| # fidlgen_libfuzzer, fidlgen_llcpp, fidlgen_rust, fidlgen_syzkaller. |
| # To exclude a library from fidlc goldens, simply comment the whole item. |
| # |
| # build_denylist |
| # List of tools that should not compile golden bindings. |
| # Allowed items: fidlgen_dart, fidlgen_go, fidlgen_hlcpp, fidlgen_libfuzzer, |
| # fidlgen_llcpp, fidlgen_rust. |
| # Tools from `denylist` are implicitly included. |
| # |
| # host_build_denylist |
| # List of tools that should not compile golden bindings for host. |
| # Allowed items: fidlgen_hlcpp, fidlgen_llcpp, fidlgen_rust. |
| # Tools from `build_denylist` are implicitly included. |
| # |
| # device_build_denylist |
| # List of tools that should not compile golden bindings for device. |
| # Allowed items: fidlgen_hlcpp, fidlgen_llcpp, fidlgen_rust. |
| # Tools from `build_denylist` are implicitly included. |
| # |
| # target_name (computed) |
| # Name portion of the target. |
| # |
| # library (computed) |
| # Name of the FIDL library (same as `target_name`). |
| # |
| # fidl_target (computed) |
| # Label of the library in the FIDL toolchain. |
| # |
| # fidl_gen_dir (computed) |
| # The target's `target_gen_dir` in `fidl_toolchain`. |
| # |
| # fidl_ir_file (computed) |
| # Path to the generated IR file relatively to the root build directory. |
| # |
| # Please keep sorted by name. |
| fidl_testdata_info = [ |
| { |
| name = "arrays" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.arrays" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "bindings_denylist" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.bindingsdenylist" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "bits" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.bits" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "byte_and_bytes" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.byteandbytes" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "consts" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.consts" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| build_denylist = [ |
| # TODO(fxbug.dev/62520): Insert enum/bits <-> primitive conversions. |
| "fidlgen_hlcpp", |
| "fidlgen_libfuzzer", |
| "fidlgen_llcpp", |
| "fidlgen_rust", |
| |
| # TODO(fxbug.dev/62763): Fix undefined_identifier errors. |
| "fidlgen_dart", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "constants" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.constants" |
| denylist = [ |
| # TODO(fxbug.dev/45006): Implement const expressions in fidlgen. |
| "fidlgen_dart", |
| "fidlgen_go", |
| "fidlgen_hlcpp", |
| "fidlgen_libfuzzer", |
| "fidlgen_llcpp", |
| "fidlgen_rust", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "bits_constants" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.bitsconstants" |
| }, |
| { |
| name = "doc_comments" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.doccomments" |
| build_denylist = [ |
| # TODO(fxbug.dev/62523): Make protocol named "Interface" compile. |
| "fidlgen_llcpp", |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "empty_struct" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.emptystruct" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "encapsulated_structs" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.encapsulatedstructs" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "enum" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.enum" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "error" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.error" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "escaping" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.escaping" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "foreign_type_in_response_used_through_compose" |
| target = "//tools/fidl/fidlc/testdata/foreign_type_in_response_used_through_compose:fidl.test.foreigntypeinresponseusedthroughcompose" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "handles" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.handles" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| build_denylist = [ |
| # TODO(fxbug.dev/62533): Fix many issues. |
| "fidlgen_hlcpp", |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/62526): Fix pcidevice.h include issue. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| |
| # TODO(fxbug.dev/62524): Fix Ord/Hash trait issue with fidl::Resource. |
| "fidlgen_rust", |
| ] |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "handles_in_types" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.handlesintypes" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "inheritance" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.inheritance" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "inheritance_with_recursive_decl" |
| target = |
| "//tools/fidl/fidlc/testdata:fidl.test.inheritancewithrecursivedecl" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "nullable" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.nullable" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "padding" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.padding" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "placement_of_attributes" |
| target = "//tools/fidl/fidlc/testdata/placement_of_attributes:fidl.test.placementofattributes" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "protocol_request" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.protocolrequest" |
| build_denylist = [ |
| # TODO(fxbug.dev/62532): Fix many issues. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "protocols" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.protocols" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "request_flexible_envelope" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.requestflexibleenvelope" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "service" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.service" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "struct" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.struct" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "struct_default_value_enum_library_reference" |
| target = "//tools/fidl/fidlc/testdata/struct_default_value_enum_library_reference:fidl.test.structdefaultvalueenumlibraryreference" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/45007): Syzkaller does not support enum member references |
| # in struct defaults. |
| "fidlgen_syzkaller", |
| ] |
| build_denylist = [ |
| # TODO(fxbug.dev/62761): Fix error about default value not being constant. |
| "fidlgen_dart", |
| ] |
| }, |
| { |
| name = "table" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.table" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "transitive_dependencies" |
| target = "//tools/fidl/fidlc/testdata/transitive_dependencies:fidl.test.transitivedependencies" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "transitive_dependencies_compose" |
| target = "//tools/fidl/fidlc/testdata/transitive_dependencies_compose:fidl.test.transitivedependenciescompose" |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode libfuzzer dependency on HLCPP and LLCPP. |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "type_aliases" |
| target = "//tools/fidl/fidlc/testdata/type_aliases:fidl.test.typealiases" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| { |
| name = "union" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.union" |
| build_denylist = [ |
| # TODO(fxbug.dev/55889): Escape "union" keyword. |
| "fidlgen_llcpp", |
| "fidlgen_libfuzzer", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "union_sandwich" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.unionsandwich" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| host_build_denylist = [ |
| # TODO(fxbug.dev/62573): Add ifdefs so that protocols compile on host. |
| "fidlgen_llcpp", |
| |
| # TODO(fxbug.dev/72247): Encode Unified CPP dependency on HLCPP and LLCPP. |
| "fidlgen_cpp", |
| ] |
| }, |
| { |
| name = "vectors" |
| target = "//tools/fidl/fidlc/testdata:fidl.test.vectors" |
| denylist = [ |
| # TODO(fxbug.dev/65465): Make fidlgen_libfuzzer work without protocols. |
| "fidlgen_libfuzzer", |
| ] |
| }, |
| ] |
| |
| # Add computed properties. |
| _fidl_testdata_info = fidl_testdata_info |
| fidl_testdata_info = [] |
| foreach(info, _fidl_testdata_info) { |
| info.target_name = get_label_info(info.target, "name") |
| info.library = info.target_name |
| info.fidl_target = "${info.target}($fidl_toolchain)" |
| info.fidl_gen_dir = get_label_info(info.fidl_target, "target_gen_dir") |
| info.fidl_ir_file = "${info.fidl_gen_dir}/${info.target_name}.fidl.json" |
| |
| if (!defined(info.denylist)) { |
| info.denylist = [] |
| } |
| if (!defined(info.build_denylist)) { |
| info.build_denylist = [] |
| } |
| if (!defined(info.host_build_denylist)) { |
| info.host_build_denylist = [] |
| } |
| if (!defined(info.device_build_denylist)) { |
| info.device_build_denylist = [] |
| } |
| info.build_denylist += info.denylist |
| info.host_build_denylist += info.build_denylist |
| info.device_build_denylist += info.build_denylist |
| |
| fidl_testdata_info += [ info ] |
| } |