[build] Assert is_host in golden_test.gni
This CL makes the golden_test template `assert(is_host)`. This would
have saved confusion recently, when a new golden test setup was not
working because the `($host_toolchain)` was missing.
Doing this required reorganizing call sites so that the golden_test
invocation is inside an `if (is_host)` block. Following the
recommendation of build folks, I've structured host-tool BUILD.gn files
to place most things in one big if-statement, with groups at the bottom
that redirect to $host_toolchain.
Change-Id: Id1e747d322ed5bcfa64060463ca8d91db9e1938a
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/513324
Commit-Queue: Mitchell Kember <mkember@google.com>
Reviewed-by: Ian McKellar <ianloic@google.com>
diff --git a/build/testing/golden_test.gni b/build/testing/golden_test.gni
index daf56ab..be61e4c 100644
--- a/build/testing/golden_test.gni
+++ b/build/testing/golden_test.gni
@@ -65,6 +65,8 @@
# visibility
#
template("golden_test") {
+ assert(is_host, "The golden_test template can only be used on host")
+
assert(defined(invoker.goldens_dir))
assert(defined(invoker.entries))
assert(defined(invoker.deps))
diff --git a/tools/fidl/fidlc/BUILD.gn b/tools/fidl/fidlc/BUILD.gn
index a01cdc83..6187cc6 100644
--- a/tools/fidl/fidlc/BUILD.gn
+++ b/tools/fidl/fidlc/BUILD.gn
@@ -121,22 +121,24 @@
}
}
-golden_test("fidlc_golden_tests") {
- goldens_dir = "goldens"
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- deps += [ "${info.target}($fidl_toolchain)" ]
- entries += [
- {
- golden = "${info.name}.json.golden"
- generated = "${info.fidl_gen_dir}/${info.target_name}.fidl.json"
- },
- {
- golden = "${info.name}.tables.c.golden"
- generated = "${info.fidl_gen_dir}/${info.target_name}.fidl.tables.c"
- },
- ]
+if (is_host) {
+ golden_test("fidlc_golden_tests") {
+ goldens_dir = "goldens"
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ deps += [ "${info.target}($fidl_toolchain)" ]
+ entries += [
+ {
+ golden = "${info.name}.json.golden"
+ generated = "${info.fidl_gen_dir}/${info.target_name}.fidl.json"
+ },
+ {
+ golden = "${info.name}.tables.c.golden"
+ generated = "${info.fidl_gen_dir}/${info.target_name}.fidl.tables.c"
+ },
+ ]
+ }
}
}
diff --git a/tools/fidl/fidldoc/BUILD.gn b/tools/fidl/fidldoc/BUILD.gn
index 1cbc161..093736c 100644
--- a/tools/fidl/fidldoc/BUILD.gn
+++ b/tools/fidl/fidldoc/BUILD.gn
@@ -49,9 +49,7 @@
":rust_crates",
"//src/lib/libdoc",
]
-
sources = common_sources
-
inputs = common_inputs
}
@@ -67,9 +65,7 @@
":rust_crates",
"//src/lib/libdoc",
]
-
sources = common_sources
-
inputs = common_inputs + [
"src/templates/markdown/testdata/README.md",
"src/templates/markdown/testdata/_toc.yaml",
@@ -93,6 +89,63 @@
"//third_party/rust_crates:tempfile",
]
}
+
+ fidl_testdata_info_filtered = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidldoc" ] - [ "fidldoc" ] == info.denylist) {
+ fidl_testdata_info_filtered += [ info ]
+ }
+ }
+
+ compiled_action("generate_goldens") {
+ testonly = true
+ tool = ":fidldoc_bin"
+ tool_output_name = "fidldoc"
+ deps = [ ":fidldoc_copy_config" ]
+ sources = []
+ inputs = [ "${host_tools_dir}/fidldoc.config.json" ]
+ args = [
+ "--silent",
+ "--config",
+ rebase_path("${host_tools_dir}/fidldoc.config.json", root_build_dir),
+ "--out",
+ rebase_path("${target_gen_dir}/goldens", root_build_dir),
+ ]
+ outputs = [
+ "$target_gen_dir/goldens/_toc.yaml",
+ "$target_gen_dir/goldens/README.md",
+ ]
+ foreach(info, fidl_testdata_info_filtered) {
+ deps += [ "${info.target}($fidl_toolchain)" ]
+ json_ir = "${info.fidl_gen_dir}/${info.target_name}.fidl.json"
+ sources += [ json_ir ]
+ args += [ rebase_path(json_ir, root_build_dir) ]
+ outputs += [ "$target_gen_dir/goldens/${info.library}/README.md" ]
+ }
+ }
+
+ golden_test("fidldoc_golden_tests") {
+ goldens_dir = "goldens"
+ deps = [ ":generate_goldens" ]
+ entries = [
+ {
+ golden = "_toc.yaml.golden"
+ generated = "$target_gen_dir/goldens/_toc.yaml"
+ },
+ {
+ golden = "README.md.golden"
+ generated = "$target_gen_dir/goldens/README.md"
+ },
+ ]
+ foreach(info, fidl_testdata_info_filtered) {
+ entries += [
+ {
+ golden = "${info.name}.md.golden"
+ generated = "$target_gen_dir/goldens/${info.library}/README.md"
+ },
+ ]
+ }
+ }
}
install_host_tools("fidldoc") {
@@ -100,75 +153,11 @@
":fidldoc_bin($host_toolchain)",
":fidldoc_copy_config($host_toolchain)",
]
-
outputs = [ "fidldoc" ]
}
-fidl_testdata_info_filtered = []
-foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidldoc" ] - [ "fidldoc" ] == info.denylist) {
- fidl_testdata_info_filtered += [ info ]
- }
-}
-
-copy("config_for_tests") {
- sources = [ "src/fidldoc.config.json" ]
- outputs = [ "$target_gen_dir/fidldoc.config.json" ]
-}
-
-compiled_action("generate_goldens") {
- testonly = true
- tool = ":fidldoc_bin"
- tool_output_name = "fidldoc"
- deps = [ ":config_for_tests" ]
- sources = []
- args = [
- "--silent",
- "--config",
- rebase_path(target_gen_dir, root_build_dir) + "/fidldoc.config.json",
- "--out",
- rebase_path(target_gen_dir, root_build_dir) + "/goldens",
- ]
- outputs = [
- "$target_gen_dir/goldens/_toc.yaml",
- "$target_gen_dir/goldens/README.md",
- ]
- foreach(info, fidl_testdata_info_filtered) {
- deps += [ "${info.target}($fidl_toolchain)" ]
- json_ir = "${info.fidl_gen_dir}/${info.target_name}.fidl.json"
- sources += [ json_ir ]
- args += [ rebase_path(json_ir, root_build_dir) ]
- outputs += [ "$target_gen_dir/goldens/${info.library}/README.md" ]
- }
- hermetic_deps = false
-}
-
-golden_test("fidldoc_golden_tests") {
- goldens_dir = "goldens"
- deps = [ ":generate_goldens" ]
- entries = [
- {
- golden = "_toc.yaml.golden"
- generated = "$target_gen_dir/goldens/_toc.yaml"
- },
- {
- golden = "README.md.golden"
- generated = "$target_gen_dir/goldens/README.md"
- },
- ]
- foreach(info, fidl_testdata_info_filtered) {
- entries += [
- {
- golden = "${info.name}.md.golden"
- generated = "$target_gen_dir/goldens/${info.library}/README.md"
- },
- ]
- }
-}
-
group("tests") {
testonly = true
-
deps = [
":fidldoc_bin_test($host_toolchain)",
":fidldoc_golden_tests($host_toolchain)",
diff --git a/tools/fidl/fidlgen_cpp/BUILD.gn b/tools/fidl/fidlgen_cpp/BUILD.gn
index 9ec3049..699164e 100644
--- a/tools/fidl/fidlgen_cpp/BUILD.gn
+++ b/tools/fidl/fidlgen_cpp/BUILD.gn
@@ -9,25 +9,55 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_cpp/..."
- deps = [
- "//tools/fidl/lib/fidlgen",
- "//tools/fidl/lib/fidlgen_cpp",
- ]
- sources = [
- "codegen/codegen.go",
- "codegen/file_header.tmpl.go",
- "codegen/file_source.tmpl.go",
- "codegen/fragment_const.tmpl.go",
- "codegen/fragment_type_alias.tmpl.go",
- "main.go",
- ]
-}
+if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_cpp/..."
+ deps = [
+ "//tools/fidl/lib/fidlgen",
+ "//tools/fidl/lib/fidlgen_cpp",
+ ]
+ sources = [
+ "codegen/codegen.go",
+ "codegen/file_header.tmpl.go",
+ "codegen/file_source.tmpl.go",
+ "codegen/fragment_const.tmpl.go",
+ "codegen/fragment_type_alias.tmpl.go",
+ "main.go",
+ ]
+ }
-go_binary("fidlgen_cpp") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_cpp"
- deps = [ ":gopkg" ]
+ go_binary("fidlgen_cpp") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_cpp"
+ deps = [ ":gopkg" ]
+ }
+
+ clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
+ reformat_command = "'${clang_format}' --style=google"
+
+ golden_test("fidlgen_cpp_golden_tests") {
+ goldens_dir = "goldens"
+ reformat_goldens_command = reformat_command
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_cpp" ] - [ "fidlgen_cpp" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_cpp_generate($fidl_toolchain)" ]
+ gen_dir = "${info.fidl_gen_dir}/${info.target_name}/cpp"
+ include_path = string_replace(info.library, ".", "/") + "/cpp"
+ entries += [
+ {
+ golden = "${info.name}.h.golden"
+ generated = "$gen_dir/$include_path/fidl_v2.h"
+ },
+ {
+ golden = "${info.name}.cc.golden"
+ generated = "$gen_dir/$include_path/fidl_v2.cc"
+ },
+ ]
+ }
+ }
+ }
}
install_host_tools("host") {
@@ -35,34 +65,6 @@
outputs = [ "fidlgen_cpp" ]
}
-clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
-reformat_command = "'${clang_format}' --style=google"
-
-golden_test("fidlgen_cpp_golden_tests") {
- goldens_dir = "goldens"
- reformat_goldens_command = reformat_command
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_cpp" ] - [ "fidlgen_cpp" ] ==
- info.denylist) {
- deps += [ "${info.target}_cpp_generate($fidl_toolchain)" ]
- gen_dir = "${info.fidl_gen_dir}/${info.target_name}/cpp"
- include_path = string_replace(info.library, ".", "/") + "/cpp"
- entries += [
- {
- golden = "${info.name}.h.golden"
- generated = "$gen_dir/$include_path/fidl_v2.h"
- },
- {
- golden = "${info.name}.cc.golden"
- generated = "$gen_dir/$include_path/fidl_v2.cc"
- },
- ]
- }
- }
-}
-
group("goldens") {
testonly = true
diff --git a/tools/fidl/fidlgen_dart/BUILD.gn b/tools/fidl/fidlgen_dart/BUILD.gn
index d95e7c3..3f3f656 100644
--- a/tools/fidl/fidlgen_dart/BUILD.gn
+++ b/tools/fidl/fidlgen_dart/BUILD.gn
@@ -10,34 +10,65 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("fidlgen_dart_lib") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_dart/..."
+if (is_host) {
+ go_library("fidlgen_dart_lib") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_dart/..."
- deps = [ "//tools/fidl/lib/fidlgen" ]
- sources = [
- "codegen/bits.tmpl.go",
- "codegen/const.tmpl.go",
- "codegen/enum.tmpl.go",
- "codegen/generator.go",
- "codegen/interface.tmpl.go",
- "codegen/ir.go",
- "codegen/library.tmpl.go",
- "codegen/struct.tmpl.go",
- "codegen/table.tmpl.go",
- "codegen/union.tmpl.go",
- "main.go",
- ]
-}
+ deps = [ "//tools/fidl/lib/fidlgen" ]
+ sources = [
+ "codegen/bits.tmpl.go",
+ "codegen/const.tmpl.go",
+ "codegen/enum.tmpl.go",
+ "codegen/generator.go",
+ "codegen/interface.tmpl.go",
+ "codegen/ir.go",
+ "codegen/library.tmpl.go",
+ "codegen/struct.tmpl.go",
+ "codegen/table.tmpl.go",
+ "codegen/union.tmpl.go",
+ "main.go",
+ ]
+ }
-go_binary("fidlgen_dart") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_dart/"
- deps = [ ":fidlgen_dart_lib" ]
-}
+ go_binary("fidlgen_dart") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_dart/"
+ deps = [ ":fidlgen_dart_lib" ]
+ }
-sdk_host_tool("fidlgen_dart_sdk") {
- category = "partner"
- output_name = "fidlgen_dart"
- deps = [ ":fidlgen_dart" ]
+ sdk_host_tool("fidlgen_dart_sdk") {
+ category = "partner"
+ output_name = "fidlgen_dart"
+ deps = [ ":fidlgen_dart" ]
+ }
+
+ dartfmt_command = rebase_path("${dart_sdk}/bin/dartfmt")
+
+ golden_test("fidlgen_dart_golden_tests") {
+ goldens_dir = "goldens"
+ reformat_goldens_command = dartfmt_command
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_dart" ] - [ "fidlgen_dart" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_dart_generate($dart_toolchain)" ]
+ dart_gen_dir =
+ get_label_info("${info.target}($dart_toolchain)", "target_gen_dir")
+ entries += [
+ {
+ golden = "${info.name}_async.dart.golden"
+ generated =
+ "${dart_gen_dir}/${info.library}_package/lib/fidl_async.dart"
+ },
+ {
+ golden = "${info.name}_test.dart.golden"
+ generated =
+ "${dart_gen_dir}/${info.library}_package/lib/fidl_test.dart"
+ },
+ ]
+ }
+ }
+ }
}
install_host_tools("host") {
@@ -45,35 +76,6 @@
outputs = [ "fidlgen_dart" ]
}
-dartfmt_command = rebase_path("${dart_sdk}/bin/dartfmt")
-
-golden_test("fidlgen_dart_golden_tests") {
- goldens_dir = "goldens"
- reformat_goldens_command = dartfmt_command
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_dart" ] - [ "fidlgen_dart" ] ==
- info.denylist) {
- deps += [ "${info.target}_dart_generate($dart_toolchain)" ]
- dart_gen_dir =
- get_label_info("${info.target}($dart_toolchain)", "target_gen_dir")
- entries += [
- {
- golden = "${info.name}_async.dart.golden"
- generated =
- "${dart_gen_dir}/${info.library}_package/lib/fidl_async.dart"
- },
- {
- golden = "${info.name}_test.dart.golden"
- generated =
- "${dart_gen_dir}/${info.library}_package/lib/fidl_test.dart"
- },
- ]
- }
- }
-}
-
group("goldens") {
testonly = true
diff --git a/tools/fidl/fidlgen_go/BUILD.gn b/tools/fidl/fidlgen_go/BUILD.gn
index 1e3bcbd..da03abd 100644
--- a/tools/fidl/fidlgen_go/BUILD.gn
+++ b/tools/fidl/fidlgen_go/BUILD.gn
@@ -10,40 +10,35 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_go/..."
- deps = [
- "//tools/fidl/lib/fidlgen",
- "//tools/fidl/lib/fidlgentest",
- ]
- sources = [
- "codegen/bits.tmpl.go",
- "codegen/codegen.go",
- "codegen/enum.tmpl.go",
- "codegen/ir.go",
- "codegen/ir_test.go",
- "codegen/library.tmpl.go",
- "codegen/protocol.tmpl.go",
- "codegen/struct.tmpl.go",
- "codegen/table.tmpl.go",
- "codegen/union.tmpl.go",
- "main.go",
- ]
-}
-
-go_binary("fidlgen_go") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_go"
-
- sdk_category = "partner"
- deps = [ ":gopkg" ]
-}
-
-install_host_tools("host") {
- deps = [ ":fidlgen_go" ]
- outputs = [ "fidlgen_go" ]
-}
-
if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_go/..."
+ deps = [
+ "//tools/fidl/lib/fidlgen",
+ "//tools/fidl/lib/fidlgentest",
+ ]
+ sources = [
+ "codegen/bits.tmpl.go",
+ "codegen/codegen.go",
+ "codegen/enum.tmpl.go",
+ "codegen/ir.go",
+ "codegen/ir_test.go",
+ "codegen/library.tmpl.go",
+ "codegen/protocol.tmpl.go",
+ "codegen/struct.tmpl.go",
+ "codegen/table.tmpl.go",
+ "codegen/union.tmpl.go",
+ "main.go",
+ ]
+ }
+
+ go_binary("fidlgen_go") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_go"
+
+ sdk_category = "partner"
+ deps = [ ":gopkg" ]
+ }
+
fidlc_target = "//tools/fidl/fidlc($host_toolchain)"
go_test("fidlgen_go_lib_tests") {
@@ -63,30 +58,36 @@
sources = [ get_label_info(fidlc_target, "root_out_dir") + "/fidlc" ]
deps = [ fidlc_target ]
}
-}
-gofmt_command =
- rebase_path("//prebuilt/third_party/go/$host_platform/bin/gofmt",
- root_build_dir)
+ gofmt_command =
+ rebase_path("//prebuilt/third_party/go/$host_platform/bin/gofmt",
+ root_build_dir)
-golden_test("fidlgen_go_golden_tests") {
- goldens_dir = "goldens"
- reformat_goldens_command = gofmt_command
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_go" ] - [ "fidlgen_go" ] == info.denylist) {
- deps += [ "${info.target}_go_generate($go_toolchain)" ]
- entries += [
- {
- golden = "${info.name}.go.golden"
- generated = "${info.fidl_gen_dir}/${info.target_name}/${info.library}.fidl/impl.go"
- },
- ]
+ golden_test("fidlgen_go_golden_tests") {
+ goldens_dir = "goldens"
+ reformat_goldens_command = gofmt_command
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_go" ] - [ "fidlgen_go" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_go_generate($go_toolchain)" ]
+ entries += [
+ {
+ golden = "${info.name}.go.golden"
+ generated = "${info.fidl_gen_dir}/${info.target_name}/${info.library}.fidl/impl.go"
+ },
+ ]
+ }
}
}
}
+install_host_tools("host") {
+ deps = [ ":fidlgen_go" ]
+ outputs = [ "fidlgen_go" ]
+}
+
group("goldens") {
testonly = true
diff --git a/tools/fidl/fidlgen_hlcpp/BUILD.gn b/tools/fidl/fidlgen_hlcpp/BUILD.gn
index d39a9b0..7a69e93 100644
--- a/tools/fidl/fidlgen_hlcpp/BUILD.gn
+++ b/tools/fidl/fidlgen_hlcpp/BUILD.gn
@@ -10,35 +10,103 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_hlcpp/..."
- deps = [
- "//tools/fidl/lib/fidlgen",
- "//tools/fidl/lib/fidlgen_cpp",
- ]
- sources = [
- "codegen/codegen.go",
- "codegen/header.tmpl.go",
- "codegen/implementation.tmpl.go",
- "codegen/natural_types_bits.tmpl.go",
- "codegen/natural_types_const.tmpl.go",
- "codegen/natural_types_enum.tmpl.go",
- "codegen/natural_types_protocol.tmpl.go",
- "codegen/natural_types_struct.tmpl.go",
- "codegen/natural_types_table.tmpl.go",
- "codegen/natural_types_union.tmpl.go",
- "codegen/proxies_and_stubs_protocol.tmpl.go",
- "codegen/proxies_and_stubs_service.tmpl.go",
- "codegen/test_base.tmpl.go",
- "main.go",
- ]
-}
+if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_hlcpp/..."
+ deps = [
+ "//tools/fidl/lib/fidlgen",
+ "//tools/fidl/lib/fidlgen_cpp",
+ ]
+ sources = [
+ "codegen/codegen.go",
+ "codegen/header.tmpl.go",
+ "codegen/implementation.tmpl.go",
+ "codegen/natural_types_bits.tmpl.go",
+ "codegen/natural_types_const.tmpl.go",
+ "codegen/natural_types_enum.tmpl.go",
+ "codegen/natural_types_protocol.tmpl.go",
+ "codegen/natural_types_struct.tmpl.go",
+ "codegen/natural_types_table.tmpl.go",
+ "codegen/natural_types_union.tmpl.go",
+ "codegen/proxies_and_stubs_protocol.tmpl.go",
+ "codegen/proxies_and_stubs_service.tmpl.go",
+ "codegen/test_base.tmpl.go",
+ "main.go",
+ ]
+ }
-go_binary("fidlgen_hlcpp") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_hlcpp"
+ go_binary("fidlgen_hlcpp") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_hlcpp"
- sdk_category = "partner"
- deps = [ ":gopkg" ]
+ sdk_category = "partner"
+ deps = [ ":gopkg" ]
+ }
+
+ # TODO(fxbug.dev/45483): Remove once all SDK customers are using HLCPP backend
+ # directly.
+ go_binary("fidlgen") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_hlcpp"
+
+ sdk_category = "partner"
+ deps = [ ":gopkg" ]
+ }
+
+ clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
+ reformat_command = "'${clang_format}' --style=google"
+
+ golden_test("fidlgen_hlcpp_golden_tests") {
+ goldens_dir = "goldens/bindings"
+ reformat_goldens_command = reformat_command
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_hlcpp" ] - [ "fidlgen_hlcpp" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_hlcpp_generate($fidl_toolchain)" ]
+ gen_dir = "${info.fidl_gen_dir}/${info.target_name}/hlcpp"
+ include_path = string_replace(info.library, ".", "/") + "/cpp"
+ entries += [
+ {
+ golden = "${info.name}.h.golden"
+ generated = "$gen_dir/$include_path/fidl.h"
+ },
+ {
+ golden = "${info.name}.cc.golden"
+ generated = "$gen_dir/$include_path/fidl.cc"
+ },
+ {
+ golden = "${info.name}_test_base.h.golden"
+ generated = "$gen_dir/$include_path/fidl_test_base.h"
+ },
+ ]
+ }
+ }
+ }
+
+ golden_test("fidlgen_hlcpp_natural_types_golden_tests") {
+ goldens_dir = "goldens/natural_types"
+ reformat_goldens_command = reformat_command
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_hlcpp" ] - [ "fidlgen_hlcpp" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_cpp_natural_types_generate($fidl_toolchain)" ]
+ gen_dir = "${info.fidl_gen_dir}/${info.target_name}/cpp_natural_types"
+ include_path = string_replace(info.library, ".", "/") + "/cpp"
+ entries += [
+ {
+ golden = "${info.name}.h.golden"
+ generated = "$gen_dir/$include_path/natural_types.h"
+ },
+ {
+ golden = "${info.name}.cc.golden"
+ generated = "$gen_dir/$include_path/natural_types.cc"
+ },
+ ]
+ }
+ }
+ }
}
install_host_tools("host") {
@@ -46,72 +114,6 @@
outputs = [ "fidlgen_hlcpp" ]
}
-# TODO(fxbug.dev/45483): Remove once all SDK customers are using HLCPP backend
-# directly.
-go_binary("fidlgen") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_hlcpp"
-
- sdk_category = "partner"
- deps = [ ":gopkg" ]
-}
-
-clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
-reformat_command = "'${clang_format}' --style=google"
-
-golden_test("fidlgen_hlcpp_golden_tests") {
- goldens_dir = "goldens/bindings"
- reformat_goldens_command = reformat_command
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_hlcpp" ] - [ "fidlgen_hlcpp" ] ==
- info.denylist) {
- deps += [ "${info.target}_hlcpp_generate($fidl_toolchain)" ]
- gen_dir = "${info.fidl_gen_dir}/${info.target_name}/hlcpp"
- include_path = string_replace(info.library, ".", "/") + "/cpp"
- entries += [
- {
- golden = "${info.name}.h.golden"
- generated = "$gen_dir/$include_path/fidl.h"
- },
- {
- golden = "${info.name}.cc.golden"
- generated = "$gen_dir/$include_path/fidl.cc"
- },
- {
- golden = "${info.name}_test_base.h.golden"
- generated = "$gen_dir/$include_path/fidl_test_base.h"
- },
- ]
- }
- }
-}
-
-golden_test("fidlgen_hlcpp_natural_types_golden_tests") {
- goldens_dir = "goldens/natural_types"
- reformat_goldens_command = reformat_command
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_hlcpp" ] - [ "fidlgen_hlcpp" ] ==
- info.denylist) {
- deps += [ "${info.target}_cpp_natural_types_generate($fidl_toolchain)" ]
- gen_dir = "${info.fidl_gen_dir}/${info.target_name}/cpp_natural_types"
- include_path = string_replace(info.library, ".", "/") + "/cpp"
- entries += [
- {
- golden = "${info.name}.h.golden"
- generated = "$gen_dir/$include_path/natural_types.h"
- },
- {
- golden = "${info.name}.cc.golden"
- generated = "$gen_dir/$include_path/natural_types.cc"
- },
- ]
- }
- }
-}
-
group("goldens") {
testonly = true
diff --git a/tools/fidl/fidlgen_libfuzzer/BUILD.gn b/tools/fidl/fidlgen_libfuzzer/BUILD.gn
index 7df7070..990713a 100644
--- a/tools/fidl/fidlgen_libfuzzer/BUILD.gn
+++ b/tools/fidl/fidlgen_libfuzzer/BUILD.gn
@@ -9,34 +9,72 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_libfuzzer/..."
- deps = [
- "//tools/fidl/lib/fidlgen",
- "//tools/fidl/lib/fidlgen_cpp",
- ]
- sources = [
- "codegen/bits.tmpl.go",
- "codegen/codegen.go",
- "codegen/decoder_encoder.tmpl.go",
- "codegen/decoder_encoder_header.tmpl.go",
- "codegen/decoder_encoder_source.tmpl.go",
- "codegen/enum.tmpl.go",
- "codegen/header.tmpl.go",
- "codegen/protocol_decoder_encoders.tmpl.go",
- "codegen/source.tmpl.go",
- "codegen/struct.tmpl.go",
- "codegen/table.tmpl.go",
- "codegen/union.tmpl.go",
- "main.go",
- ]
-}
+if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_libfuzzer/..."
+ deps = [
+ "//tools/fidl/lib/fidlgen",
+ "//tools/fidl/lib/fidlgen_cpp",
+ ]
+ sources = [
+ "codegen/bits.tmpl.go",
+ "codegen/codegen.go",
+ "codegen/decoder_encoder.tmpl.go",
+ "codegen/decoder_encoder_header.tmpl.go",
+ "codegen/decoder_encoder_source.tmpl.go",
+ "codegen/enum.tmpl.go",
+ "codegen/header.tmpl.go",
+ "codegen/protocol_decoder_encoders.tmpl.go",
+ "codegen/source.tmpl.go",
+ "codegen/struct.tmpl.go",
+ "codegen/table.tmpl.go",
+ "codegen/union.tmpl.go",
+ "main.go",
+ ]
+ }
-go_binary("fidlgen_libfuzzer") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_libfuzzer"
+ go_binary("fidlgen_libfuzzer") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_libfuzzer"
- sdk_category = "partner"
- deps = [ ":gopkg" ]
+ sdk_category = "partner"
+ deps = [ ":gopkg" ]
+ }
+
+ clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
+ reformat_command = "'${clang_format}' --style=google"
+
+ golden_test("fidlgen_libfuzzer_golden_tests") {
+ goldens_dir = "goldens"
+ reformat_goldens_command = reformat_command
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_libfuzzer" ] - [ "fidlgen_libfuzzer" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_libfuzzer_generate($fidl_toolchain)" ]
+ gen_dir = "${info.fidl_gen_dir}/${info.target_name}/libfuzzer"
+ include_path = string_replace(info.library, ".", "/") + "/cpp"
+ entries += [
+ {
+ golden = "${info.name}.h.golden"
+ generated = "$gen_dir/$include_path/libfuzzer.h"
+ },
+ {
+ golden = "${info.name}.cc.golden"
+ generated = "$gen_dir/$include_path/libfuzzer.cc"
+ },
+ {
+ golden = "${info.name}_decode_encode.h.golden"
+ generated = "$gen_dir/$include_path/libfuzzer_decode_encode.h"
+ },
+ {
+ golden = "${info.name}_decode_encode.cc.golden"
+ generated = "$gen_dir/$include_path/libfuzzer_decode_encode.cc"
+ },
+ ]
+ }
+ }
+ }
}
install_host_tools("host") {
@@ -44,42 +82,6 @@
outputs = [ "fidlgen_libfuzzer" ]
}
-clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
-reformat_command = "'${clang_format}' --style=google"
-
-golden_test("fidlgen_libfuzzer_golden_tests") {
- goldens_dir = "goldens"
- reformat_goldens_command = reformat_command
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_libfuzzer" ] - [ "fidlgen_libfuzzer" ] ==
- info.denylist) {
- deps += [ "${info.target}_libfuzzer_generate($fidl_toolchain)" ]
- gen_dir = "${info.fidl_gen_dir}/${info.target_name}/libfuzzer"
- include_path = string_replace(info.library, ".", "/") + "/cpp"
- entries += [
- {
- golden = "${info.name}.h.golden"
- generated = "$gen_dir/$include_path/libfuzzer.h"
- },
- {
- golden = "${info.name}.cc.golden"
- generated = "$gen_dir/$include_path/libfuzzer.cc"
- },
- {
- golden = "${info.name}_decode_encode.h.golden"
- generated = "$gen_dir/$include_path/libfuzzer_decode_encode.h"
- },
- {
- golden = "${info.name}_decode_encode.cc.golden"
- generated = "$gen_dir/$include_path/libfuzzer_decode_encode.cc"
- },
- ]
- }
- }
-}
-
group("goldens") {
testonly = true
diff --git a/tools/fidl/fidlgen_llcpp/BUILD.gn b/tools/fidl/fidlgen_llcpp/BUILD.gn
index bd62c2f..e4becc3 100644
--- a/tools/fidl/fidlgen_llcpp/BUILD.gn
+++ b/tools/fidl/fidlgen_llcpp/BUILD.gn
@@ -9,49 +9,83 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_llcpp/..."
- deps = [
- "//tools/fidl/lib/fidlgen",
- "//tools/fidl/lib/fidlgen_cpp",
- ]
- sources = [
- "codegen/codegen.go",
- "codegen/file_header.tmpl.go",
- "codegen/file_source.tmpl.go",
- "codegen/fragment_bits.tmpl.go",
- "codegen/fragment_client.tmpl.go",
- "codegen/fragment_client_async_methods.tmpl.go",
- "codegen/fragment_client_sync_methods.tmpl.go",
- "codegen/fragment_const.tmpl.go",
- "codegen/fragment_enum.tmpl.go",
- "codegen/fragment_event_sender.tmpl.go",
- "codegen/fragment_method_request.tmpl.go",
- "codegen/fragment_method_response.tmpl.go",
- "codegen/fragment_method_response_context.tmpl.go",
- "codegen/fragment_method_result.tmpl.go",
- "codegen/fragment_method_unownedresult.tmpl.go",
- "codegen/fragment_protocol.tmpl.go",
- "codegen/fragment_protocol_details.tmpl.go",
- "codegen/fragment_protocol_dispatcher.tmpl.go",
- "codegen/fragment_protocol_event_handler.tmpl.go",
- "codegen/fragment_protocol_interface.tmpl.go",
- "codegen/fragment_reply_caller_allocate.tmpl.go",
- "codegen/fragment_reply_managed.tmpl.go",
- "codegen/fragment_service.tmpl.go",
- "codegen/fragment_struct.tmpl.go",
- "codegen/fragment_sync_event_handler.tmpl.go",
- "codegen/fragment_sync_request_caller_allocate.tmpl.go",
- "codegen/fragment_table.tmpl.go",
- "codegen/fragment_union.tmpl.go",
- "codegen/test_base.tmpl.go",
- "main.go",
- ]
-}
+if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_llcpp/..."
+ deps = [
+ "//tools/fidl/lib/fidlgen",
+ "//tools/fidl/lib/fidlgen_cpp",
+ ]
+ sources = [
+ "codegen/codegen.go",
+ "codegen/file_header.tmpl.go",
+ "codegen/file_source.tmpl.go",
+ "codegen/fragment_bits.tmpl.go",
+ "codegen/fragment_client.tmpl.go",
+ "codegen/fragment_client_async_methods.tmpl.go",
+ "codegen/fragment_client_sync_methods.tmpl.go",
+ "codegen/fragment_const.tmpl.go",
+ "codegen/fragment_enum.tmpl.go",
+ "codegen/fragment_event_sender.tmpl.go",
+ "codegen/fragment_method_request.tmpl.go",
+ "codegen/fragment_method_response.tmpl.go",
+ "codegen/fragment_method_response_context.tmpl.go",
+ "codegen/fragment_method_result.tmpl.go",
+ "codegen/fragment_method_unownedresult.tmpl.go",
+ "codegen/fragment_protocol.tmpl.go",
+ "codegen/fragment_protocol_details.tmpl.go",
+ "codegen/fragment_protocol_dispatcher.tmpl.go",
+ "codegen/fragment_protocol_event_handler.tmpl.go",
+ "codegen/fragment_protocol_interface.tmpl.go",
+ "codegen/fragment_reply_caller_allocate.tmpl.go",
+ "codegen/fragment_reply_managed.tmpl.go",
+ "codegen/fragment_service.tmpl.go",
+ "codegen/fragment_struct.tmpl.go",
+ "codegen/fragment_sync_event_handler.tmpl.go",
+ "codegen/fragment_sync_request_caller_allocate.tmpl.go",
+ "codegen/fragment_table.tmpl.go",
+ "codegen/fragment_union.tmpl.go",
+ "codegen/test_base.tmpl.go",
+ "main.go",
+ ]
+ }
-go_binary("fidlgen_llcpp") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_llcpp"
- deps = [ ":gopkg" ]
+ go_binary("fidlgen_llcpp") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_llcpp"
+ deps = [ ":gopkg" ]
+ }
+
+ clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
+ reformat_command = "'${clang_format}' --style=google"
+
+ golden_test("fidlgen_llcpp_golden_tests") {
+ goldens_dir = "goldens"
+ reformat_goldens_command = reformat_command
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_llcpp" ] - [ "fidlgen_llcpp" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_llcpp_generate($fidl_toolchain)" ]
+ gen_dir = "${info.fidl_gen_dir}/${info.target_name}/llcpp"
+ include_path = string_replace(info.library, ".", "/") + "/llcpp"
+ entries += [
+ {
+ golden = "${info.name}.h.golden"
+ generated = "$gen_dir/$include_path/fidl.h"
+ },
+ {
+ golden = "${info.name}.cc.golden"
+ generated = "$gen_dir/$include_path/fidl.cc"
+ },
+ {
+ golden = "${info.name}_test_base.h.golden"
+ generated = "$gen_dir/$include_path/fidl_test_base.h"
+ },
+ ]
+ }
+ }
+ }
}
install_host_tools("host") {
@@ -59,38 +93,6 @@
outputs = [ "fidlgen_llcpp" ]
}
-clang_format = rebase_path("${clang_prefix}/clang-format", "", root_build_dir)
-reformat_command = "'${clang_format}' --style=google"
-
-golden_test("fidlgen_llcpp_golden_tests") {
- goldens_dir = "goldens"
- reformat_goldens_command = reformat_command
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_llcpp" ] - [ "fidlgen_llcpp" ] ==
- info.denylist) {
- deps += [ "${info.target}_llcpp_generate($fidl_toolchain)" ]
- gen_dir = "${info.fidl_gen_dir}/${info.target_name}/llcpp"
- include_path = string_replace(info.library, ".", "/") + "/llcpp"
- entries += [
- {
- golden = "${info.name}.h.golden"
- generated = "$gen_dir/$include_path/fidl.h"
- },
- {
- golden = "${info.name}.cc.golden"
- generated = "$gen_dir/$include_path/fidl.cc"
- },
- {
- golden = "${info.name}_test_base.h.golden"
- generated = "$gen_dir/$include_path/fidl_test_base.h"
- },
- ]
- }
- }
-}
-
group("goldens") {
testonly = true
diff --git a/tools/fidl/fidlgen_rust/BUILD.gn b/tools/fidl/fidlgen_rust/BUILD.gn
index 5330ca2..6c7d6cd 100644
--- a/tools/fidl/fidlgen_rust/BUILD.gn
+++ b/tools/fidl/fidlgen_rust/BUILD.gn
@@ -11,43 +11,38 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_rust/..."
- deps = [
- "//tools/fidl/lib/fidlgen",
- "//tools/fidl/lib/fidlgentest",
- ]
- sources = [
- "codegen/bits.tmpl.go",
- "codegen/codegen.go",
- "codegen/const.tmpl.go",
- "codegen/enum.tmpl.go",
- "codegen/handle_metadata_wrappers.tmpl.go",
- "codegen/ir.go",
- "codegen/ir_test.go",
- "codegen/protocol.tmpl.go",
- "codegen/result.tmpl.go",
- "codegen/service.tmpl.go",
- "codegen/sourcefile.tmpl.go",
- "codegen/struct.tmpl.go",
- "codegen/table.tmpl.go",
- "codegen/union.tmpl.go",
- "main.go",
- ]
-}
-
-go_binary("fidlgen_rust") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_rust"
- sdk_category = "partner"
- deps = [ ":gopkg" ]
-}
-
-install_host_tools("host") {
- deps = [ ":fidlgen_rust" ]
- outputs = [ "fidlgen_rust" ]
-}
-
if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_rust/..."
+ deps = [
+ "//tools/fidl/lib/fidlgen",
+ "//tools/fidl/lib/fidlgentest",
+ ]
+ sources = [
+ "codegen/bits.tmpl.go",
+ "codegen/codegen.go",
+ "codegen/const.tmpl.go",
+ "codegen/enum.tmpl.go",
+ "codegen/handle_metadata_wrappers.tmpl.go",
+ "codegen/ir.go",
+ "codegen/ir_test.go",
+ "codegen/protocol.tmpl.go",
+ "codegen/result.tmpl.go",
+ "codegen/service.tmpl.go",
+ "codegen/sourcefile.tmpl.go",
+ "codegen/struct.tmpl.go",
+ "codegen/table.tmpl.go",
+ "codegen/union.tmpl.go",
+ "main.go",
+ ]
+ }
+
+ go_binary("fidlgen_rust") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_rust"
+ sdk_category = "partner"
+ deps = [ ":gopkg" ]
+ }
+
fidlc_target = "//tools/fidl/fidlc($host_toolchain)"
go_test("fidlgen_rust_lib_tests") {
@@ -70,31 +65,36 @@
sources = [ get_label_info(fidlc_target, "root_out_dir") + "/fidlc" ]
deps = [ fidlc_target ]
}
-}
-rustfmt = rebase_path("$fidl_rust_tools_dir/bin/rustfmt", root_build_dir)
-rustfmt_config = rebase_path("//rustfmt.toml", root_build_dir)
+ rustfmt = rebase_path("$fidl_rust_tools_dir/bin/rustfmt", root_build_dir)
+ rustfmt_config = rebase_path("//rustfmt.toml", root_build_dir)
-golden_test("fidlgen_rust_golden_tests") {
- goldens_dir = "goldens"
- reformat_goldens_command = "'${rustfmt}' --config-path '${rustfmt_config}'"
- deps = []
- entries = []
- foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_rust" ] - [ "fidlgen_rust" ] ==
- info.denylist) {
- deps += [ "${info.target}_rust_generate($rust_toolchain)" ]
- library_underscore = string_replace(info.library, ".", "_")
- entries += [
- {
- golden = "${info.name}.rs.golden"
- generated = "${info.fidl_gen_dir}/${info.target_name}/fidl_${library_underscore}.rs"
- },
- ]
+ golden_test("fidlgen_rust_golden_tests") {
+ goldens_dir = "goldens"
+ reformat_goldens_command = "'${rustfmt}' --config-path '${rustfmt_config}'"
+ deps = []
+ entries = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_rust" ] - [ "fidlgen_rust" ] ==
+ info.denylist) {
+ deps += [ "${info.target}_rust_generate($rust_toolchain)" ]
+ library_underscore = string_replace(info.library, ".", "_")
+ entries += [
+ {
+ golden = "${info.name}.rs.golden"
+ generated = "${info.fidl_gen_dir}/${info.target_name}/fidl_${library_underscore}.rs"
+ },
+ ]
+ }
}
}
}
+install_host_tools("host") {
+ deps = [ ":fidlgen_rust" ]
+ outputs = [ "fidlgen_rust" ]
+}
+
group("goldens") {
testonly = true
diff --git a/tools/fidl/fidlgen_syzkaller/BUILD.gn b/tools/fidl/fidlgen_syzkaller/BUILD.gn
index 892a6a1..9693042 100644
--- a/tools/fidl/fidlgen_syzkaller/BUILD.gn
+++ b/tools/fidl/fidlgen_syzkaller/BUILD.gn
@@ -10,25 +10,68 @@
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_syzkaller/..."
- deps = [ "//tools/fidl/lib/fidlgen" ]
- sources = [
- "codegen/codegen.go",
- "codegen/description.tmpl.go",
- "codegen/ir.go",
- "codegen/protocol.tmpl.go",
- "codegen/struct.tmpl.go",
- "codegen/union.tmpl.go",
- "main.go",
- ]
-}
+if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_syzkaller/..."
+ deps = [ "//tools/fidl/lib/fidlgen" ]
+ sources = [
+ "codegen/codegen.go",
+ "codegen/description.tmpl.go",
+ "codegen/ir.go",
+ "codegen/protocol.tmpl.go",
+ "codegen/struct.tmpl.go",
+ "codegen/union.tmpl.go",
+ "main.go",
+ ]
+ }
-go_binary("fidlgen_syzkaller") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_syzkaller"
+ go_binary("fidlgen_syzkaller") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_syzkaller"
- sdk_category = "partner"
- deps = [ ":gopkg" ]
+ sdk_category = "partner"
+ deps = [ ":gopkg" ]
+ }
+
+ fidl_testdata_info_filtered = []
+ foreach(info, fidl_testdata_info) {
+ if (info.denylist + [ "fidlgen_syzkaller" ] - [ "fidlgen_syzkaller" ] ==
+ info.denylist) {
+ fidl_testdata_info_filtered += [ info ]
+ }
+ }
+
+ compiled_action_foreach("generate_goldens") {
+ testonly = true
+ tool = ":fidlgen_syzkaller"
+ deps = []
+ sources = []
+ foreach(info, fidl_testdata_info_filtered) {
+ deps += [ "${info.target}($fidl_toolchain)" ]
+ sources += [ "${info.fidl_gen_dir}/${info.target_name}.fidl.json" ]
+ }
+ args = [
+ "-json",
+ "{{source}}",
+ "-output-syz",
+ rebase_path(target_gen_dir, root_build_dir) +
+ "/golden_{{source_name_part}}.syz.txt",
+ ]
+ outputs = [ "$target_gen_dir/golden_{{source_name_part}}.syz.txt" ]
+ }
+
+ golden_test("fidlgen_syzkaller_golden_tests") {
+ goldens_dir = "goldens"
+ deps = [ ":generate_goldens" ]
+ entries = []
+ foreach(info, fidl_testdata_info_filtered) {
+ entries += [
+ {
+ golden = "${info.name}.syz.txt.golden"
+ generated = "$target_gen_dir/golden_${info.target_name}.fidl.syz.txt"
+ },
+ ]
+ }
+ }
}
install_host_tools("host") {
@@ -36,47 +79,6 @@
outputs = [ "fidlgen_syzkaller" ]
}
-fidl_testdata_info_filtered = []
-foreach(info, fidl_testdata_info) {
- if (info.denylist + [ "fidlgen_syzkaller" ] - [ "fidlgen_syzkaller" ] ==
- info.denylist) {
- fidl_testdata_info_filtered += [ info ]
- }
-}
-
-compiled_action_foreach("generate_goldens") {
- testonly = true
- tool = ":fidlgen_syzkaller"
- deps = []
- sources = []
- foreach(info, fidl_testdata_info_filtered) {
- deps += [ "${info.target}($fidl_toolchain)" ]
- sources += [ "${info.fidl_gen_dir}/${info.target_name}.fidl.json" ]
- }
- args = [
- "-json",
- "{{source}}",
- "-output-syz",
- rebase_path(target_gen_dir, root_build_dir) +
- "/golden_{{source_name_part}}.syz.txt",
- ]
- outputs = [ "$target_gen_dir/golden_{{source_name_part}}.syz.txt" ]
-}
-
-golden_test("fidlgen_syzkaller_golden_tests") {
- goldens_dir = "goldens"
- deps = [ ":generate_goldens" ]
- entries = []
- foreach(info, fidl_testdata_info_filtered) {
- entries += [
- {
- golden = "${info.name}.syz.txt.golden"
- generated = "$target_gen_dir/golden_${info.target_name}.fidl.syz.txt"
- },
- ]
- }
-}
-
group("tests") {
testonly = true
deps = [ ":fidlgen_syzkaller_golden_tests($host_toolchain)" ]
diff --git a/tools/fidl/gidl/BUILD.gn b/tools/fidl/gidl/BUILD.gn
index 47d0120..d39da20 100644
--- a/tools/fidl/gidl/BUILD.gn
+++ b/tools/fidl/gidl/BUILD.gn
@@ -12,92 +12,68 @@
import("//src/tests/fidl/conformance_suite/gidl-conformance-suite.gni")
import("//tools/fidl/gidl/gidl.gni")
-go_library("gopkg") {
- name = "go.fuchsia.dev/fuchsia/tools/fidl/gidl/..."
- deps = [ "//tools/fidl/lib/fidlgen" ]
- sources = [
- "c/conformance.go",
- "config/defaults.go",
- "dart/benchmarks.go",
- "dart/common.go",
- "dart/conformance.go",
- "fuzzer_corpus/conformance.go",
- "golang/benchmarks.go",
- "golang/common.go",
- "golang/conformance.go",
- "golang/golang_test.go",
- "hlcpp/benchmarks.go",
- "hlcpp/builder.go",
- "hlcpp/conformance.go",
- "hlcpp/equality_builder.go",
- "ir/error.go",
- "ir/test_case.go",
- "ir/util.go",
- "ir/value.go",
- "llcpp/benchmarks.go",
- "llcpp/conformance.go",
- "llcpp/lib/allocator_builder.go",
- "llcpp/lib/common.go",
- "llcpp/lib/equality_builder.go",
- "llcpp/lib/unowned_builder.go",
- "main.go",
- "mixer/mixer.go",
- "mixer/mixer_test.go",
- "parser/generators.go",
- "parser/parser.go",
- "parser/parser_test.go",
- "reference/benchmarks.go",
- "rust/benchmarks.go",
- "rust/common.go",
- "rust/conformance.go",
- "walker/benchmarks.go",
- ]
-}
-
-go_binary("gidl") {
- gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/gidl"
- deps = [ ":gopkg" ]
-}
-
-install_host_tools("host") {
- deps = [ ":gidl" ]
- outputs = [ "gidl" ]
-}
-
-fidl("gidl_mixer_test_fidl") {
- name = "test.mixer"
- testonly = true
- sources = [ "//tools/fidl/gidl/mixer/testdata/mixer.test.fidl" ]
- public_deps = [ "//zircon/vdso/zx" ]
- experimental_flags = [ "enable_handle_rights" ]
-}
-
-group("tests") {
- testonly = true
-
- deps = [
- ":gidl_golang_test($host_toolchain)",
- ":gidl_golden_tests($host_toolchain)",
- ":gidl_mixer_test($host_toolchain)",
- ":gidl_parser_test($host_toolchain)",
- ]
-}
-
-go_test("gidl_parser_test") {
- gopackages = [ "go.fuchsia.dev/fuchsia/tools/fidl/gidl/parser" ]
- deps = [
- ":gopkg",
- "//third_party/golibs:github.com/google/go-cmp",
- ]
-}
-
-go_test("gidl_golang_test") {
- gopackages = [ "go.fuchsia.dev/fuchsia/tools/fidl/gidl/golang" ]
-
- deps = [ ":gopkg" ]
-}
-
if (is_host) {
+ go_library("gopkg") {
+ name = "go.fuchsia.dev/fuchsia/tools/fidl/gidl/..."
+ deps = [ "//tools/fidl/lib/fidlgen" ]
+ sources = [
+ "c/conformance.go",
+ "config/defaults.go",
+ "dart/benchmarks.go",
+ "dart/common.go",
+ "dart/conformance.go",
+ "fuzzer_corpus/conformance.go",
+ "golang/benchmarks.go",
+ "golang/common.go",
+ "golang/conformance.go",
+ "golang/golang_test.go",
+ "hlcpp/benchmarks.go",
+ "hlcpp/builder.go",
+ "hlcpp/conformance.go",
+ "hlcpp/equality_builder.go",
+ "ir/error.go",
+ "ir/test_case.go",
+ "ir/util.go",
+ "ir/value.go",
+ "llcpp/benchmarks.go",
+ "llcpp/conformance.go",
+ "llcpp/lib/allocator_builder.go",
+ "llcpp/lib/common.go",
+ "llcpp/lib/equality_builder.go",
+ "llcpp/lib/unowned_builder.go",
+ "main.go",
+ "mixer/mixer.go",
+ "mixer/mixer_test.go",
+ "parser/generators.go",
+ "parser/parser.go",
+ "parser/parser_test.go",
+ "reference/benchmarks.go",
+ "rust/benchmarks.go",
+ "rust/common.go",
+ "rust/conformance.go",
+ "walker/benchmarks.go",
+ ]
+ }
+
+ go_binary("gidl") {
+ gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/gidl"
+ deps = [ ":gopkg" ]
+ }
+
+ go_test("gidl_parser_test") {
+ gopackages = [ "go.fuchsia.dev/fuchsia/tools/fidl/gidl/parser" ]
+ deps = [
+ ":gopkg",
+ "//third_party/golibs:github.com/google/go-cmp",
+ ]
+ }
+
+ go_test("gidl_golang_test") {
+ gopackages = [ "go.fuchsia.dev/fuchsia/tools/fidl/gidl/golang" ]
+
+ deps = [ ":gopkg" ]
+ }
+
host_test_data("gidl_mixer_test_json") {
deps = [ ":gidl_mixer_test_fidl($fidl_toolchain)" ]
sources = [ "$root_build_dir/fidling/gen/tools/fidl/gidl/gidl_mixer_test_fidl.fidl.json" ]
@@ -113,63 +89,85 @@
deps = [ ":gopkg" ]
non_go_deps = [ ":gidl_mixer_test_json" ]
}
-}
-llcpp_gidl_output_prefix = "conformance_suite__"
-foreach(gidl_file, conformance_suite_golden_gidl_files) {
- gidl_name = get_path_info(gidl_file, "name")
- target = "${llcpp_gidl_output_prefix}${gidl_name}"
- gidl_llcpp_conformance(target) {
- testonly = true
- inputs = [ gidl_file ]
+ llcpp_gidl_output_prefix = "conformance_suite__"
+ foreach(gidl_file, conformance_suite_golden_gidl_files) {
+ gidl_name = get_path_info(gidl_file, "name")
+ target = "${llcpp_gidl_output_prefix}${gidl_name}"
+ gidl_llcpp_conformance(target) {
+ inputs = [ gidl_file ]
+ fidl = conformance_suite_fidl_target
+ deps = [ "//third_party/googletest:gtest" ]
+ if (is_fuchsia) {
+ deps += [ "//sdk/cts/tests/pkg/fidl/cpp:handle_util" ]
+ }
+ }
+ }
+
+ gidl_hlcpp_conformance("gidl_hlcpp_goldens") {
+ inputs = conformance_suite_golden_gidl_files
fidl = conformance_suite_fidl_target
- deps = [ "//third_party/googletest:gtest" ]
- if (is_fuchsia) {
- deps += [ "//sdk/cts/tests/pkg/fidl/cpp:handle_util" ]
+ }
+
+ go_golden_generated_source = "$target_gen_dir/gidl_conformance_goldens.go"
+ gidl("gidl_go_goldens") {
+ type = "conformance"
+ language = "go"
+ inputs = conformance_suite_golden_gidl_files
+ fidl = conformance_suite_fidl_target
+ output = go_golden_generated_source
+ }
+
+ golden_test("gidl_golden_tests") {
+ goldens_dir = "goldens"
+ deps = [
+ ":gidl_go_goldens",
+ ":gidl_hlcpp_goldens_gidl",
+ ]
+ entries = [
+ {
+ golden = "go_golden.go.golden"
+ generated = go_golden_generated_source
+ },
+ {
+ golden = "hlcpp_golden.cc.golden"
+ generated = "${target_gen_dir}/gidl_generated_gidl_hlcpp_goldens.cc"
+ },
+ ]
+ foreach(gidl_file, conformance_suite_golden_gidl_files) {
+ gidl_name = get_path_info(gidl_file, "name")
+ target = "${llcpp_gidl_output_prefix}${gidl_name}"
+ deps += [ ":${target}" ]
+ entries += [
+ {
+ golden = "llcpp_${gidl_name}.cc.golden"
+ generated = "${target_gen_dir}/gidl_generated_${target}.cc"
+ },
+ ]
}
}
}
-gidl_hlcpp_conformance("gidl_hlcpp_goldens") {
+fidl("gidl_mixer_test_fidl") {
+ name = "test.mixer"
testonly = true
- inputs = conformance_suite_golden_gidl_files
- fidl = conformance_suite_fidl_target
+ sources = [ "//tools/fidl/gidl/mixer/testdata/mixer.test.fidl" ]
+ public_deps = [ "//zircon/vdso/zx" ]
+ experimental_flags = [ "enable_handle_rights" ]
}
-go_golden_generated_source = "$target_gen_dir/gidl_conformance_goldens.go"
-gidl("gidl_go_goldens") {
- type = "conformance"
- language = "go"
- inputs = conformance_suite_golden_gidl_files
- fidl = conformance_suite_fidl_target
- output = go_golden_generated_source
+install_host_tools("host") {
+ deps = [ ":gidl" ]
+ outputs = [ "gidl" ]
}
-golden_test("gidl_golden_tests") {
- goldens_dir = "goldens"
+group("tests") {
+ testonly = true
+
deps = [
- ":gidl_go_goldens",
- ":gidl_hlcpp_goldens_gidl",
+ ":gidl_golang_test($host_toolchain)",
+ ":gidl_golden_tests($host_toolchain)",
+ ":gidl_mixer_test($host_toolchain)",
+ ":gidl_parser_test($host_toolchain)",
]
- entries = [
- {
- golden = "go_golden.go.golden"
- generated = go_golden_generated_source
- },
- {
- golden = "hlcpp_golden.cc.golden"
- generated = "${target_gen_dir}/gidl_generated_gidl_hlcpp_goldens.cc"
- },
- ]
- foreach(gidl_file, conformance_suite_golden_gidl_files) {
- gidl_name = get_path_info(gidl_file, "name")
- target = "${llcpp_gidl_output_prefix}${gidl_name}"
- deps += [ ":${target}" ]
- entries += [
- {
- golden = "llcpp_${gidl_name}.cc.golden"
- generated = "${target_gen_dir}/gidl_generated_${target}.cc"
- },
- ]
- }
}