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

// Build rules for ART run-test `2259-checker-code-sinking-infinite-try-catch`.

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-2259-checker-code-sinking-infinite-try-catch",
    defaults: ["art-run-test-defaults"],
    test_config_template: ":art-run-test-target-template",
    srcs: ["src/**/*.java"],
    data: [
        ":art-run-test-2259-checker-code-sinking-infinite-try-catch-expected-stdout",
        ":art-run-test-2259-checker-code-sinking-infinite-try-catch-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-2259-checker-code-sinking-infinite-try-catch-expected-stdout",
    out: ["art-run-test-2259-checker-code-sinking-infinite-try-catch-expected-stdout.txt"],
    srcs: ["expected-stdout.txt"],
    cmd: "cp -f $(in) $(out)",
}

// Test's expected standard error.
genrule {
    name: "art-run-test-2259-checker-code-sinking-infinite-try-catch-expected-stderr",
    out: ["art-run-test-2259-checker-code-sinking-infinite-try-catch-expected-stderr.txt"],
    srcs: ["expected-stderr.txt"],
    cmd: "cp -f $(in) $(out)",
}
