// Generated by `regen-test-files`. Do not edit manually.

// Build rules for ART run-test `2260-checker-inline-unimplemented-intrinsics`.

package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "art_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["art_license"],
}

// Test's Dex code.
java_test {
    name: "art-run-test-2260-checker-inline-unimplemented-intrinsics",
    defaults: ["art-run-test-defaults"],
    test_config_template: ":art-run-test-target-template",
    srcs: ["src/**/*.java"],
    data: [
        ":art-run-test-2260-checker-inline-unimplemented-intrinsics-expected-stdout",
        ":art-run-test-2260-checker-inline-unimplemented-intrinsics-expected-stderr",
    ],
    // Include the Java source files in the test's artifacts, to make Checker assertions
    // available to the TradeFed test runner.
    include_srcs: true,
}

// Test's expected standard output.
genrule {
    name: "art-run-test-2260-checker-inline-unimplemented-intrinsics-expected-stdout",
    out: ["art-run-test-2260-checker-inline-unimplemented-intrinsics-expected-stdout.txt"],
    srcs: ["expected-stdout.txt"],
    cmd: "cp -f $(in) $(out)",
}

// Test's expected standard error.
genrule {
    name: "art-run-test-2260-checker-inline-unimplemented-intrinsics-expected-stderr",
    out: ["art-run-test-2260-checker-inline-unimplemented-intrinsics-expected-stderr.txt"],
    srcs: ["expected-stderr.txt"],
    cmd: "cp -f $(in) $(out)",
}
