// Copyright (C) 2018 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package { default_applicable_licenses: ["Android-Apache-2.0"], default_team: "trendy_team_art_mainline", } java_library { name: "cts-vmtests-dot", libs: ["junit"], srcs: ["src/dot/**/*.java"], installable: false, include_srcs: true, host_supported: true, errorprone: { javacflags: [ "-Xep:IdentityBinaryExpression:WARN", "-Xep:BadShiftAmount:WARN", ], }, } java_binary_host { name: "vmtests-buildutil", static_libs: [ "cts-vmtests-dot", "junit", ], srcs: [ "build/src/util/build/BuildCTSHostSources.java", "build/src/util/build/BuildCTSMainsSources.java", "build/src/util/build/BuildUtilBase.java", "build/src/util/build/FileUtil.java", "build/src/util/build/JUnitTestCollector.java", ], wrapper: "etc/vmtests-buildutil.sh", } java_genrule_host { name: "vmtests_generated_host_test_sources", tools: [ "vmtests-buildutil", "soong_zip", ], cmd: "$(location vmtests-buildutil) util.build.BuildCTSHostSources $(genDir) " + " && $(location soong_zip) -jar -o $(out) -C $(genDir) -D $(genDir)/dot", out: ["vmtests.host.generated.srcjar"], } java_library_host { name: "host-cts-vmtests", libs: [ "junit", "tradefed", ], srcs: [":vmtests_generated_host_test_sources"], installable: false, } java_genrule_host { name: "vmtests-dfh-dex-generated", tools: [ "cfassembler", "soong_zip", ], tool_files: ["etc/vmtests-cfassembler.sh"], srcs: ["src/dot/**/*.dfh"], cmd: "$(location etc/vmtests-cfassembler.sh) $(location cfassembler) $(location soong_zip) $(genDir) $(out) $(in)", out: ["vmtests_dfh_dex_generated.jar"], } java_genrule { name: "vmtests_generated_mains_test_sources", tools: [ "vmtests-buildutil", "soong_zip", ], cmd: "mkdir $(genDir)/src" + " && $(location vmtests-buildutil) util.build.BuildCTSMainsSources $(genDir)/src " + " && $(location soong_zip) -jar -o $(out) -C $(genDir)/src -D $(genDir)/src", out: ["vmtests.mains.generated.srcjar"], } java_library { name: "vmtests-mains", installable: true, libs: ["cts-vmtests-dot"], srcs: [":vmtests_generated_mains_test_sources"], } // TODO: Add vmtests-mains' dex jar to vmtests-generated-resources when // it can be addressed. java_library_host { name: "vmtests-generated-resources", static_libs: [ "host-cts-vmtests", "vmtests-dfh-dex-generated", ], installable: false, } java_library_host { name: "cts-tf-dalvik-buildutil", srcs: [ "build/src/**/*.java", "src/**/*.java", ], libs: [ "junit", "jsr305", "d8", "android-smali", ], errorprone: { javacflags: [ "-Xep:IdentityBinaryExpression:WARN", "-Xep:BadShiftAmount:WARN", ], }, } java_genrule_host { name: "vm-tests-tf-lib", tools: [ "soong_zip", "d8", ], srcs: [ "src/**/*", ":cts-tf-dalvik-buildutil", ":vmtests-generated-resources", ":vmtests-mains", ":cts-vmtests-dot", ":junit", ":d8", ":android-smali", ], cmd: "echo Generating BuildDalvikSuite tests" + " && mkdir -p $(genDir)/classes" + " && unzip -bq $(location :cts-tf-dalvik-buildutil) -d $(genDir)/classes" + " && mkdir -p $(genDir)/tests" + " && java" + " -cp $(location :cts-tf-dalvik-buildutil):$(location :junit):$(location :d8):$(location :android-smali):$(location :cts-vmtests-dot)" + " util.build.BuildDalvikSuite" + " cts/tools/vm-tests-tf/src" + " $(genDir)/tests" + " $(genDir)/classes" + " && echo Generating dexcore tests" + " && $(location soong_zip) -jar -o $(genDir)/tests/dot/junit/dexcore.jar-class.jar" + " -C $(genDir)/classes" + " -f $(genDir)/classes/dot/junit/DxUtil.class" + " -f $(genDir)/classes/dot/junit/DxAbstractMain.class" + " -f $(genDir)/classes/dot/junit/AssertionFailedException.class" + " && mkdir -p $(genDir)/dexcore" + " && $(location d8) -JXms16M -JXmx2048M" + " --output $(genDir)/dexcore" + " $(genDir)/tests/dot/junit/dexcore.jar-class.jar" + " && $(location soong_zip) -jar -o $(genDir)/tests/dot/junit/dexcore.jar" + " -C $(genDir)/dexcore" + " -D $(genDir)/dexcore" + " && echo Combining tests" + " && mkdir -p $(genDir)/out" + " && unzip -bq $(location :vmtests-generated-resources) -d $(genDir)/generated-resources" + " && cp $(location :vmtests-mains) $(genDir)/mains.jar" + " && $(location soong_zip) -o $(out)" + " -C $(genDir)/generated-resources" + " -D $(genDir)/generated-resources" + " -C $(genDir)" + " -D $(genDir)/tests" + " -j -P tests -f $(genDir)/mains.jar", out: ["vm-tests-tf-lib.jar"], } java_test_host { name: "vm-tests-tf", static_libs: [ "compatibility-host-vm-targetprep", "vm-tests-tf-lib", ], test_config: "AndroidTest.xml", test_suites: [ "cts", "general-tests", ], }