blob: d108979816e410caa1219b1f6620c8c378904aa7 [file] [log] [blame]
# Copyright 2019 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/package.gni")
import("//build/rust/rustc_test.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
rustc_test("driver") {
name = "pkg-resolver-test"
edition = "2018"
deps = [
"//garnet/lib/rust/fidl_fuchsia_amber_ext",
"//garnet/lib/rust/fidl_fuchsia_pkg_ext",
"//garnet/lib/rust/fuchsia_pkg_testing",
"//garnet/public/lib/fidl/rust/fidl",
"//garnet/public/rust/fdio",
"//garnet/public/rust/fuchsia-async",
"//garnet/public/rust/fuchsia-component",
"//garnet/public/rust/fuchsia-hyper",
"//garnet/public/rust/fuchsia-merkle",
"//garnet/public/rust/fuchsia-vfs/pseudo-fs",
"//garnet/public/rust/fuchsia-zircon",
"//sdk/fidl/fuchsia.amber:fuchsia.amber-rustc",
"//sdk/fidl/fuchsia.pkg:fuchsia.pkg-rustc",
"//sdk/fidl/fuchsia.pkg.rewrite:fuchsia.pkg.rewrite-rustc",
"//sdk/fidl/fuchsia.sys:fuchsia.sys-rustc",
"//src/sys/lib/fuchsia_url_rewrite",
"//third_party/rust_crates:failure",
"//third_party/rust_crates:futures-preview",
"//third_party/rust_crates:hyper",
"//third_party/rust_crates:matches",
"//third_party/rust_crates:openat",
"//third_party/rust_crates:parking_lot",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_derive",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:tempfile",
"//third_party/rust_crates:void",
"//zircon/system/fidl/fuchsia-io:fuchsia-io-rustc",
"//zircon/system/fidl/fuchsia-net:fuchsia-net-rustc",
"//zircon/system/fidl/fuchsia-posix-socket:fuchsia-posix-socket-rustc",
]
}
generate_manifest("empty-repo.manifest") {
visibility = [ ":*" ]
testonly = true
sources = []
args = []
foreach(
path,
[
"keys/root.json",
"keys/snapshot.json",
"keys/targets.json",
"keys/timestamp.json",
"repository/1.root.json",
"repository/1.snapshot.json",
"repository/1.targets.json",
"repository/81ee21fb6adeaf05df0a2d3fb0649d5387d51a09f443e91faa5fd2fda14cf930617ea9b0a5567178fc41466258e2ee0ed5f01a70e4c6f0152bc320a336868a94.targets.json",
"repository/d060702e3e2d3fd60317936279d72662f91edda8e44834d0a8514c6c2db3324693e0951129960b8e5e8b90b34c0f728d622b381a3780ad640251583d3ac9a2ce.snapshot.json",
"repository/da0704777030fb8fd545100b0246dfda48c56e780fafcda75579f6ee2178f3618084d39aad2f48d6a8b3a34e0ef422eee653c9063af5245391587e1a208b58f0.root.json",
"repository/root.json",
"repository/snapshot.json",
"repository/targets.json",
"repository/timestamp.json",
]) {
source = "template/${path}"
sources += [ source ]
args += [ "--entry=empty-repo/${path}=" + rebase_path(source) ]
}
}
empty_repo_manifest_outputs = get_target_outputs(":empty-repo.manifest")
empty_repo_manifest_file = empty_repo_manifest_outputs[0]
# Include blobfs in the build, which comes from Zircon
generate_manifest("blobfs.manifest") {
visibility = [ ":*" ]
args = []
foreach(pattern, [ "bin/blobfs" ]) {
args += [ "--binary=" + pattern ]
}
}
blobfs_manifest_outputs = get_target_outputs(":blobfs.manifest")
blobfs_manifest_file = blobfs_manifest_outputs[0]
test_package("pkg-resolver-tests") {
deps = [
":blobfs.manifest",
":driver",
":empty-repo.manifest",
"//garnet/bin/pkg_cache:bin",
"//garnet/bin/pkg_resolver:bin",
"//garnet/go/src/grand_unified_binary",
]
extra = [
blobfs_manifest_file,
empty_repo_manifest_file,
]
binaries = [
{
name = "amber"
source = "grand_unified_binary"
},
{
name = "pkg_cache"
source = "pkg_cache"
},
{
name = "pkg_resolver"
source = "pkg_resolver"
},
{
name = "pkgsvr"
source = "grand_unified_binary"
},
]
meta = [
{
path = rebase_path(
"//garnet/go/src/amber/meta/amber_with_isolated_storage.cmx")
dest = "amber.cmx"
},
{
path = rebase_path(
"//garnet/bin/pkg_cache/meta/pkg_cache_integration_test.cmx")
dest = "pkg_cache.cmx"
},
{
path = rebase_path(
"//garnet/bin/pkg_resolver/meta/pkg_resolver_integration_test.cmx")
dest = "pkg_resolver.cmx"
},
]
tests = [
{
name = "pkg_resolver_test"
dest = "pkg-resolver-test"
environments = basic_envs
},
]
}
group("tests") {
testonly = true
public_deps = [
":pkg-resolver-tests",
"//garnet/go/src/pm:pm",
]
}