blob: 1746987f79e4f0aa8fa100b78ecb68d3c9866c4a [file] [log] [blame]
# Copyright 2022 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/components/fuchsia_unittest_package.gni")
import("//build/go/go_binary.gni")
import("//build/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/go/toolchain.gni")
import("//build/rust/rustc_test.gni")
import("//src/tests/fidl/conformance_suite/gidl-conformance-suite.gni")
import(
"//third_party/go/src/syscall/zx/fidl/fidl_test/conformance_test_files.gni")
import("//tools/fidl/gidl/gidl.gni")
## This file tests that GIDL backends produce valid code for an empty GIDL file.
## This ensures we can always disable tests without causing build issues such as
## unused imports, etc.
rust_empty_gidl_test_source = "$target_gen_dir/rust/empty_conformance_test.rs"
gidl("rust_empty_gidl") {
type = "conformance"
language = "rust"
inputs = [ "empty.gidl" ]
fidl = conformance_suite_fidl_target
output = rust_empty_gidl_test_source
}
rustc_test("rust_empty_gidl_test_bin") {
output_name = "rust_empty_gidl_tests"
edition = "2018"
source_root = rust_empty_gidl_test_source
deps = [
"//src/lib/fidl/rust/fidl",
"//src/lib/fidl/rust/gidl_util",
"//src/lib/zircon/rust:fuchsia-zircon-status",
"//src/lib/zircon/rust:fuchsia-zircon-types",
"//src/tests/fidl/conformance_suite:conformance_fidl_rust",
"//third_party/rust_crates:assert_matches",
]
non_rust_deps = [ ":rust_empty_gidl" ]
sources = [ rust_empty_gidl_test_source ]
}
fuchsia_unittest_package("rust_empty_gidl_tests") {
deps = [ ":rust_empty_gidl_test_bin" ]
}
go_generated_dir = "$target_gen_dir/go"
go_generated_source = "$go_generated_dir/empty_gidl_test.go"
gidl("go_empty_gidl") {
type = "conformance"
language = "go"
inputs = [ "empty.gidl" ]
fidl = conformance_suite_fidl_target
output = go_generated_source
}
copy("go_copy_test_utils") {
sources = []
foreach(filename, go_conformance_test_files) {
sources += [ "//third_party/go/src/syscall/zx/fidl/fidl_test/" + filename ]
}
outputs = [ "${go_generated_dir}/{{source_file_part}}" ]
}
go_library("go_empty_gidl_tests_library") {
testonly = true
name = "empty_gidl_tests"
source_dir = go_generated_dir
sources = rebase_path(
[ go_generated_source ] + get_target_outputs(":go_copy_test_utils"),
go_generated_dir)
non_go_deps = [
":go_copy_test_utils",
":go_empty_gidl",
]
deps = [ "${conformance_suite_fidl_target}_go(${go_toolchain})" ]
}
go_test("go_empty_gidl_test_bin") {
library = ":go_empty_gidl_tests_library"
non_go_deps = [ ":go_empty_gidl" ]
use_prebuilt_go = false
}
fuchsia_unittest_package("go_empty_gidl_tests") {
deps = [ ":go_empty_gidl_test_bin" ]
}
group("tests") {
testonly = true
deps = [
":go_empty_gidl_tests",
":rust_empty_gidl_tests",
]
}