xref: /aosp_15_r20/cts/tools/vm-tests-tf/Android.bp (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
1// Copyright (C) 2018 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: ["Android-Apache-2.0"],
17    default_team: "trendy_team_art_mainline",
18}
19
20java_library {
21    name: "cts-vmtests-dot",
22    libs: ["junit"],
23    srcs: ["src/dot/**/*.java"],
24    installable: false,
25    include_srcs: true,
26    host_supported: true,
27    errorprone: {
28        javacflags: [
29            "-Xep:IdentityBinaryExpression:WARN",
30            "-Xep:BadShiftAmount:WARN",
31            "-Xep:UnusedMethod:WARN",
32            "-Xep:UnusedVariable:WARN",
33        ],
34    },
35}
36
37java_binary_host {
38    name: "vmtests-buildutil",
39    static_libs: [
40        "cts-vmtests-dot",
41        "junit",
42    ],
43    srcs: [
44        "build/src/util/build/BuildCTSHostSources.java",
45        "build/src/util/build/BuildCTSMainsSources.java",
46        "build/src/util/build/BuildUtilBase.java",
47        "build/src/util/build/FileUtil.java",
48        "build/src/util/build/JUnitTestCollector.java",
49    ],
50    wrapper: "etc/vmtests-buildutil.sh",
51}
52
53java_genrule_host {
54    name: "vmtests_generated_host_test_sources",
55    tools: [
56        "vmtests-buildutil",
57        "soong_zip",
58    ],
59    cmd: "$(location vmtests-buildutil) util.build.BuildCTSHostSources $(genDir) " +
60        " && $(location soong_zip) -jar -o $(out) -C $(genDir) -D $(genDir)/dot",
61    out: ["vmtests.host.generated.srcjar"],
62}
63
64java_library_host {
65    name: "host-cts-vmtests",
66    libs: [
67        "junit",
68        "tradefed",
69    ],
70    srcs: [":vmtests_generated_host_test_sources"],
71    installable: false,
72}
73
74java_genrule_host {
75    name: "vmtests-dfh-dex-generated",
76    tools: [
77        "cfassembler",
78        "soong_zip",
79    ],
80    tool_files: ["etc/vmtests-cfassembler.sh"],
81    srcs: ["src/dot/**/*.dfh"],
82    cmd: "$(location etc/vmtests-cfassembler.sh) $(location cfassembler) $(location soong_zip) $(genDir) $(out) $(in)",
83    out: ["vmtests_dfh_dex_generated.jar"],
84}
85
86java_genrule {
87    name: "vmtests_generated_mains_test_sources",
88    tools: [
89        "vmtests-buildutil",
90        "soong_zip",
91    ],
92    cmd: "mkdir $(genDir)/src" +
93        " && $(location vmtests-buildutil) util.build.BuildCTSMainsSources $(genDir)/src " +
94        " && $(location soong_zip) -jar -o $(out) -C $(genDir)/src -D $(genDir)/src",
95    out: ["vmtests.mains.generated.srcjar"],
96}
97
98java_library {
99    name: "vmtests-mains",
100    installable: true,
101    libs: ["cts-vmtests-dot"],
102    srcs: [":vmtests_generated_mains_test_sources"],
103}
104
105// TODO: Add vmtests-mains' dex jar to vmtests-generated-resources when
106//       it can be addressed.
107
108java_library_host {
109    name: "vmtests-generated-resources",
110    static_libs: [
111        "host-cts-vmtests",
112        "vmtests-dfh-dex-generated",
113    ],
114    installable: false,
115}
116
117java_library_host {
118    name: "cts-tf-dalvik-buildutil",
119    srcs: [
120        "build/src/**/*.java",
121        "src/**/*.java",
122    ],
123    libs: [
124        "junit",
125        "jsr305",
126        "d8",
127        "android-smali",
128    ],
129    errorprone: {
130        javacflags: [
131            "-Xep:IdentityBinaryExpression:WARN",
132            "-Xep:BadShiftAmount:WARN",
133        ],
134    },
135}
136
137java_genrule_host {
138    name: "vm-tests-tf-lib",
139    tools: [
140        "soong_zip",
141        "d8",
142    ],
143    srcs: [
144        "src/**/*",
145        ":cts-tf-dalvik-buildutil",
146        ":vmtests-generated-resources",
147        ":cts-vmtests-dot",
148        ":junit",
149        ":d8",
150        ":android-smali",
151    ],
152    device_common_srcs: [
153        ":vmtests-mains",
154    ],
155    cmd: "echo Generating BuildDalvikSuite tests" +
156        " && mkdir -p $(genDir)/classes" +
157        " && unzip -bq $(location :cts-tf-dalvik-buildutil) -d $(genDir)/classes" +
158        " && mkdir -p $(genDir)/tests" +
159        " && java" +
160        "     -cp $(location :cts-tf-dalvik-buildutil):$(location :junit):$(location :d8):$(location :android-smali):$(location :cts-vmtests-dot)" +
161        "     util.build.BuildDalvikSuite" +
162        "     cts/tools/vm-tests-tf/src" +
163        "     $(genDir)/tests" +
164        "     $(genDir)/classes" +
165        " && echo Generating dexcore tests" +
166        " && $(location soong_zip) -jar -o $(genDir)/tests/dot/junit/dexcore.jar-class.jar" +
167        "     -C $(genDir)/classes" +
168        "         -f $(genDir)/classes/dot/junit/DxUtil.class" +
169        "         -f $(genDir)/classes/dot/junit/DxAbstractMain.class" +
170        "         -f $(genDir)/classes/dot/junit/AssertionFailedException.class" +
171        " && mkdir -p $(genDir)/dexcore" +
172        " && $(location d8) -JXms16M -JXmx2048M" +
173        "     --output $(genDir)/dexcore" +
174        "     $(genDir)/tests/dot/junit/dexcore.jar-class.jar" +
175        " && $(location soong_zip) -jar -o $(genDir)/tests/dot/junit/dexcore.jar" +
176        "     -C $(genDir)/dexcore" +
177        "         -D $(genDir)/dexcore" +
178        " && echo Combining tests" +
179        " && mkdir -p $(genDir)/out" +
180        " && unzip -bq $(location :vmtests-generated-resources) -d $(genDir)/generated-resources" +
181        " && cp $(location :vmtests-mains) $(genDir)/mains.jar" +
182        " && $(location soong_zip) -o $(out)" +
183        "     -C $(genDir)/generated-resources" +
184        "         -D $(genDir)/generated-resources" +
185        "     -C $(genDir)" +
186        "         -D $(genDir)/tests" +
187        "     -j -P tests -f $(genDir)/mains.jar",
188    out: ["vm-tests-tf-lib.jar"],
189}
190
191java_test_host {
192    name: "vm-tests-tf",
193    static_libs: [
194        "compatibility-host-vm-targetprep",
195        "vm-tests-tf-lib",
196    ],
197    test_config: "AndroidTest.xml",
198    test_suites: [
199        "cts",
200        "general-tests",
201    ],
202}
203