| # 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/far/rust: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}/duplicate-index-entries-of-unknown-type.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}}" ] |
| } |