blob: 96930426fab79dae75c4561d0bfa440f095e7910 [file] [log] [blame]
# 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/compiled_action.gni")
import("//build/fidl/toolchain.gni")
import("//build/go/go_binary.gni")
import("//build/go/go_library.gni")
import("//build/host.gni")
import("//build/testing/golden_test.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
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"
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") {
deps = [ ":fidlgen_syzkaller" ]
outputs = [ "fidlgen_syzkaller" ]
}
group("tests") {
testonly = true
deps = [ ":fidlgen_syzkaller_golden_tests($host_toolchain)" ]
}