blob: d96e5c4aaf24fdac8d7c5c17ccf9fe9e0e492e51 [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/rust/rustc_binary.gni")
import("//build/testing/environments.gni")
import("//src/sys/build/components.gni")
if (current_toolchain == host_toolchain) {
rustc_binary("generator") {
name = "generator"
edition = "2018"
deps = [
"//src/sys/pkg/lib/fuchsia-archive",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:argh",
]
sources = [ "src/main.rs" ]
}
}
compiled_action("generate-invalid-fars") {
tool = ":generator"
args = [
"--output-dir",
rebase_path(target_out_dir, root_build_dir),
]
outputs = [
"${target_out_dir}/invalid-magic-bytes.far",
"${target_out_dir}/index-entries-length-not-a-multiple-of-24-bytes.far",
"${target_out_dir}/directory-names-index-entry-before-directory-index-entry.far",
"${target_out_dir}/two-directory-index-entries.far",
"${target_out_dir}/two-directory-names-index-entries.far",
"${target_out_dir}/no-directory-index-entry.far",
"${target_out_dir}/no-directory-names-index-entry.far",
"${target_out_dir}/directory-chunk-length-not-a-multiple-of-32-bytes.far",
"${target_out_dir}/directory-chunk-not-tightly-packed.far",
"${target_out_dir}/path-data-offset-too-large.far",
"${target_out_dir}/path-data-length-too-large.far",
"${target_out_dir}/directory-entries-not-sorted.far",
"${target_out_dir}/directory-entries-with-same-name.far",
"${target_out_dir}/directory-names-chunk-length-not-a-multiple-of-8-bytes.far",
"${target_out_dir}/directory-names-chunk-not-tightly-packed.far",
"${target_out_dir}/directory-names-chunk-before-directory-chunk.far",
"${target_out_dir}/directory-names-chunk-overlaps-directory-chunk.far",
"${target_out_dir}/zero-length-name.far",
"${target_out_dir}/name-with-null-character.far",
"${target_out_dir}/name-with-leading-slash.far",
"${target_out_dir}/name-with-trailing-slash.far",
"${target_out_dir}/name-with-empty-segment.far",
"${target_out_dir}/name-with-dot-segment.far",
"${target_out_dir}/name-with-dot-dot-segment.far",
"${target_out_dir}/content-chunk-starts-early.far",
"${target_out_dir}/content-chunk-starts-late.far",
"${target_out_dir}/second-content-chunk-starts-early.far",
"${target_out_dir}/second-content-chunk-starts-late.far",
"${target_out_dir}/content-chunk-not-zero-padded.far",
"${target_out_dir}/content-chunk-overlap.far",
"${target_out_dir}/content-chunk-not-tightly-packed.far",
"${target_out_dir}/content-chunk-offset-past-end-of-file.far",
]
}
resource("resource") {
testonly = true
deps = [ ":generate-invalid-fars" ]
sources = get_target_outputs(":generate-invalid-fars")
outputs = [ "data/invalid-fars/{{source_file_part}}" ]
}