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

// Build rules for ART run-test `2257-checker-constant-folding-before-codegen`.

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-2257-checker-constant-folding-before-codegen",
    defaults: ["art-run-test-defaults"],
    test_config_template: ":art-run-test-target-template",
    srcs: ["src/**/*.java"],
    data: [
        ":art-run-test-2257-checker-constant-folding-before-codegen-expected-stdout",
        ":art-run-test-2257-checker-constant-folding-before-codegen-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-2257-checker-constant-folding-before-codegen-expected-stdout",
    out: ["art-run-test-2257-checker-constant-folding-before-codegen-expected-stdout.txt"],
    srcs: ["expected-stdout.txt"],
    cmd: "cp -f $(in) $(out)",
}

// Test's expected standard error.
genrule {
    name: "art-run-test-2257-checker-constant-folding-before-codegen-expected-stderr",
    out: ["art-run-test-2257-checker-constant-folding-before-codegen-expected-stderr.txt"],
    srcs: ["expected-stderr.txt"],
    cmd: "cp -f $(in) $(out)",
}
