blob: e60a2b94366754479ea97488e71faaa453fe83df [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/components.gni")
import("//build/rust/rustc_binary.gni")
import("//build/testing/environments.gni")
if (current_toolchain == host_toolchain) {
rustc_binary("generator") {
name = "generator"
edition = "2021"
deps = [
"//src/sys/pkg/lib/far/rust:fuchsia-archive",
"//third_party/rust_crates:argh",
]
sources = [ "src/main.rs" ]
configs += [ "//build/config/rust/lints:clippy_warn_all" ]
}
}
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}/duplicate-index-entries-of-unknown-type.far",
"${target_out_dir}/no-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}}" ]
}