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

// Build rules for ART run-test `2262-default-conflict-methods`.

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"],
}

// Library with src/ sources for the test.
java_library {
    name: "art-run-test-2262-default-conflict-methods-src",
    defaults: ["art-run-test-defaults"],
    srcs: ["src/**/*.java"],
}

// Test's Dex code.
java_test {
    name: "art-run-test-2262-default-conflict-methods",
    defaults: ["art-run-test-defaults"],
    test_config_template: ":art-run-test-target-no-test-suite-tag-template",
    srcs: ["src2/**/*.java"],
    static_libs: [
        "art-run-test-2262-default-conflict-methods-src",
    ],
    data: [
        ":art-run-test-2262-default-conflict-methods-expected-stdout",
        ":art-run-test-2262-default-conflict-methods-expected-stderr",
    ],
}

// Test's expected standard output.
genrule {
    name: "art-run-test-2262-default-conflict-methods-expected-stdout",
    out: ["art-run-test-2262-default-conflict-methods-expected-stdout.txt"],
    srcs: ["expected-stdout.txt"],
    cmd: "cp -f $(in) $(out)",
}

// Test's expected standard error.
genrule {
    name: "art-run-test-2262-default-conflict-methods-expected-stderr",
    out: ["art-run-test-2262-default-conflict-methods-expected-stderr.txt"],
    srcs: ["expected-stderr.txt"],
    cmd: "cp -f $(in) $(out)",
}
