package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_base_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["frameworks_base_license"], } // A library that simulates framework-all.jar java_library { name: "hoststubgen-test-tiny-framework", installable: true, host_supported: true, srcs: ["tiny-framework/src/**/*.java"], static_libs: [ "hoststubgen-annotations", ], visibility: ["//frameworks/base/ravenwood/tools/hoststubgen:__subpackages__"], } // Create stub/impl jars from "hoststubgen-test-tiny-framework", using the following 3 rules. java_genrule_host { name: "hoststubgen-test-tiny-framework-host-base", defaults: ["hoststubgen-command-defaults"], cmd: hoststubgen_common_options + "--in-jar $(location :hoststubgen-test-tiny-framework) " + "--policy-override-file $(location policy-override-tiny-framework.txt) " + "--package-redirect com.unsupported:com.supported ", srcs: [ ":hoststubgen-test-tiny-framework", "policy-override-tiny-framework.txt", ], visibility: ["//visibility:private"], } java_genrule_host { name: "hoststubgen-test-tiny-framework-host", cmd: "cp $(in) $(out)", srcs: [ ":hoststubgen-test-tiny-framework-host-base{host.jar}", ], out: [ "host.jar", ], visibility: ["//visibility:private"], } // Same as "hoststubgen-test-tiny-framework-host", but with more options, to test more hoststubgen // features. java_genrule_host { name: "hoststubgen-test-tiny-framework-host-ext-base", defaults: ["hoststubgen-command-defaults"], cmd: hoststubgen_common_options + "--in-jar $(location :hoststubgen-test-tiny-framework) " + "--policy-override-file $(location policy-override-tiny-framework.txt) " + "--package-redirect com.unsupported:com.supported " + // More options. "--default-method-call-hook com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall " + "--default-class-load-hook com.android.hoststubgen.hosthelper.HostTestUtils.logClassLoaded ", srcs: [ ":hoststubgen-test-tiny-framework", "policy-override-tiny-framework.txt", ], visibility: ["//visibility:private"], } java_genrule_host { name: "hoststubgen-test-tiny-framework-host-ext", cmd: "cp $(in) $(out)", srcs: [ ":hoststubgen-test-tiny-framework-host-ext-base{host.jar}", ], out: [ "host.jar", ], visibility: ["//visibility:private"], } // Compile the test jar, using 2 rules. // 1. Build the test against the original framework. java_library_host { name: "hoststubgen-test-tiny-test-lib", srcs: ["tiny-test/src/**/*.java"], libs: [ "hoststubgen-test-tiny-framework", ], static_libs: [ "junit", "truth", // http://cs/h/googleplex-android/platform/superproject/main/+/main:platform_testing/libraries/annotations/src/android/platform/test/annotations/ "platform-test-annotations", ], visibility: ["//visibility:private"], } // 2. Link "hoststubgen-test-tiny-test-lib" with necessary runtime dependencies, so it can be // executed stand-alone. java_test_host { name: "hoststubgen-test-tiny-test", test_config: "AndroidTest-host.xml", static_libs: [ "hoststubgen-test-tiny-test-lib", "hoststubgen-helper-runtime", "hoststubgen-test-tiny-framework-host", ], test_suites: ["general-tests"], } // Dump the original, stub and impl jars as text files. // We use them in test-and-update-golden.sh. java_genrule_host { name: "hoststubgen-test-tiny-framework-orig-dump", defaults: ["hoststubgen-jar-dump-defaults"], srcs: [ ":hoststubgen-test-tiny-framework", ], out: [ "01-hoststubgen-test-tiny-framework-orig-dump.txt", ], visibility: ["//visibility:private"], } java_genrule_host { name: "hoststubgen-test-tiny-framework-host-dump", defaults: ["hoststubgen-jar-dump-defaults"], srcs: [ ":hoststubgen-test-tiny-framework-host", ], out: [ "03-hoststubgen-test-tiny-framework-host-dump.txt", ], visibility: ["//visibility:private"], } java_genrule_host { name: "hoststubgen-test-tiny-framework-host-ext-dump", defaults: ["hoststubgen-jar-dump-defaults"], srcs: [ ":hoststubgen-test-tiny-framework-host-ext", ], out: [ "13-hoststubgen-test-tiny-framework-host-ext-dump.txt", ], visibility: ["//visibility:private"], } // Run it with `atest`. Compare the dump of the jar files to the golden output. python_test_host { name: "tiny-framework-dump-test", srcs: [ "tiny-framework-dump-test.py", ], data: [ "golden-output/*.txt", "golden-output.RELEASE_TARGET_JAVA_21/*.txt", ], java_data: [ "hoststubgen-test-tiny-framework-orig-dump", "hoststubgen-test-tiny-framework-host-dump", "hoststubgen-test-tiny-framework-host-ext-dump", ], test_suites: ["general-tests"], }