xref: /aosp_15_r20/cts/hostsidetests/compilation/Android.bp (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
1*b7c941bbSAndroid Build Coastguard Worker// Copyright (C) 2016 The Android Open Source Project
2*b7c941bbSAndroid Build Coastguard Worker//
3*b7c941bbSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*b7c941bbSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*b7c941bbSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*b7c941bbSAndroid Build Coastguard Worker//
7*b7c941bbSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*b7c941bbSAndroid Build Coastguard Worker//
9*b7c941bbSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*b7c941bbSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*b7c941bbSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*b7c941bbSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*b7c941bbSAndroid Build Coastguard Worker// limitations under the License.
14*b7c941bbSAndroid Build Coastguard Worker
15*b7c941bbSAndroid Build Coastguard Workerpackage {
16*b7c941bbSAndroid Build Coastguard Worker    default_applicable_licenses: ["Android-Apache-2.0"],
17*b7c941bbSAndroid Build Coastguard Worker    default_team: "trendy_team_art_mainline",
18*b7c941bbSAndroid Build Coastguard Worker}
19*b7c941bbSAndroid Build Coastguard Worker
20*b7c941bbSAndroid Build Coastguard Workerjava_defaults {
21*b7c941bbSAndroid Build Coastguard Worker    name: "CompilationTestCases_defaults",
22*b7c941bbSAndroid Build Coastguard Worker    srcs: ["src/**/*.java"],
23*b7c941bbSAndroid Build Coastguard Worker    data: [
24*b7c941bbSAndroid Build Coastguard Worker        ":apksigner",
25*b7c941bbSAndroid Build Coastguard Worker        ":cts-compilation-testkey-files",
26*b7c941bbSAndroid Build Coastguard Worker    ],
27*b7c941bbSAndroid Build Coastguard Worker    device_common_data: [
28*b7c941bbSAndroid Build Coastguard Worker        ":StatusCheckerApp",
29*b7c941bbSAndroid Build Coastguard Worker    ],
30*b7c941bbSAndroid Build Coastguard Worker    java_resource_dirs: ["assets/"],
31*b7c941bbSAndroid Build Coastguard Worker    device_common_java_resources: [
32*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp",
33*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp_1_disable_embedded_profile_dm",
34*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp_1_dm",
35*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp_2_prof",
36*b7c941bbSAndroid Build Coastguard Worker        ":AppUsingOtherApp",
37*b7c941bbSAndroid Build Coastguard Worker        ":CompilationTestCases-package-dex-usage",
38*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp",
39*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp_profile",
40*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp_dm",
41*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp_with_bad_profile",
42*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp_with_good_profile",
43*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp_debuggable",
44*b7c941bbSAndroid Build Coastguard Worker        ":disable_embedded_profile_dm",
45*b7c941bbSAndroid Build Coastguard Worker        ":empty_config_dm",
46*b7c941bbSAndroid Build Coastguard Worker    ],
47*b7c941bbSAndroid Build Coastguard Worker    libs: [
48*b7c941bbSAndroid Build Coastguard Worker        "cts-tradefed",
49*b7c941bbSAndroid Build Coastguard Worker        "tradefed",
50*b7c941bbSAndroid Build Coastguard Worker        "compatibility-host-util",
51*b7c941bbSAndroid Build Coastguard Worker        "guava",
52*b7c941bbSAndroid Build Coastguard Worker        "truth",
53*b7c941bbSAndroid Build Coastguard Worker    ],
54*b7c941bbSAndroid Build Coastguard Worker    static_libs: [
55*b7c941bbSAndroid Build Coastguard Worker        "android.content.pm.flags-aconfig-java-host",
56*b7c941bbSAndroid Build Coastguard Worker        "art-aconfig-flags-java-lib-host",
57*b7c941bbSAndroid Build Coastguard Worker        "flag-junit-host",
58*b7c941bbSAndroid Build Coastguard Worker    ],
59*b7c941bbSAndroid Build Coastguard Worker}
60*b7c941bbSAndroid Build Coastguard Worker
61*b7c941bbSAndroid Build Coastguard Workerjava_test_host {
62*b7c941bbSAndroid Build Coastguard Worker    name: "CtsCompilationTestCases",
63*b7c941bbSAndroid Build Coastguard Worker    defaults: ["CompilationTestCases_defaults"],
64*b7c941bbSAndroid Build Coastguard Worker    // tag this module as a cts test artifact
65*b7c941bbSAndroid Build Coastguard Worker    test_suites: [
66*b7c941bbSAndroid Build Coastguard Worker        "cts",
67*b7c941bbSAndroid Build Coastguard Worker        "general-tests",
68*b7c941bbSAndroid Build Coastguard Worker    ],
69*b7c941bbSAndroid Build Coastguard Worker    test_config: "CtsCompilationTestCases.xml",
70*b7c941bbSAndroid Build Coastguard Worker}
71*b7c941bbSAndroid Build Coastguard Worker
72*b7c941bbSAndroid Build Coastguard Workerjava_test_host {
73*b7c941bbSAndroid Build Coastguard Worker    name: "CompilationTestCases",
74*b7c941bbSAndroid Build Coastguard Worker    defaults: ["CompilationTestCases_defaults"],
75*b7c941bbSAndroid Build Coastguard Worker    test_suites: [
76*b7c941bbSAndroid Build Coastguard Worker        "general-tests",
77*b7c941bbSAndroid Build Coastguard Worker    ],
78*b7c941bbSAndroid Build Coastguard Worker    test_config: "CompilationTestCases.xml",
79*b7c941bbSAndroid Build Coastguard Worker}
80*b7c941bbSAndroid Build Coastguard Worker
81*b7c941bbSAndroid Build Coastguard Worker// Generates a binary profile from a text profile for an APK.
82*b7c941bbSAndroid Build Coastguard Worker// The first input must be the text profile.
83*b7c941bbSAndroid Build Coastguard Worker// The second input must be the APK.
84*b7c941bbSAndroid Build Coastguard Workergenrule_defaults {
85*b7c941bbSAndroid Build Coastguard Worker    name: "profile_defaults",
86*b7c941bbSAndroid Build Coastguard Worker    tools: ["profman"],
87*b7c941bbSAndroid Build Coastguard Worker    cmd: "inputs=($(in)) && " +
88*b7c941bbSAndroid Build Coastguard Worker        "$(location profman) " +
89*b7c941bbSAndroid Build Coastguard Worker        "--create-profile-from=$${inputs[0]} " +
90*b7c941bbSAndroid Build Coastguard Worker        "--apk=$${inputs[1]} " +
91*b7c941bbSAndroid Build Coastguard Worker        "--dex-location=base.apk " +
92*b7c941bbSAndroid Build Coastguard Worker        "--reference-profile-file=$(out)",
93*b7c941bbSAndroid Build Coastguard Worker}
94*b7c941bbSAndroid Build Coastguard Worker
95*b7c941bbSAndroid Build Coastguard Workersh_binary {
96*b7c941bbSAndroid Build Coastguard Worker    name: "generate_dm",
97*b7c941bbSAndroid Build Coastguard Worker    host_supported: true,
98*b7c941bbSAndroid Build Coastguard Worker    src: "scripts/generate_dm.sh",
99*b7c941bbSAndroid Build Coastguard Worker}
100*b7c941bbSAndroid Build Coastguard Worker
101*b7c941bbSAndroid Build Coastguard Worker// Generates a DM file.
102*b7c941bbSAndroid Build Coastguard Worker// Each input must be a binary profile or a config file in binary protobuf
103*b7c941bbSAndroid Build Coastguard Worker// format.
104*b7c941bbSAndroid Build Coastguard Workergenrule_defaults {
105*b7c941bbSAndroid Build Coastguard Worker    name: "dm_defaults",
106*b7c941bbSAndroid Build Coastguard Worker    tools: [
107*b7c941bbSAndroid Build Coastguard Worker        "generate_dm",
108*b7c941bbSAndroid Build Coastguard Worker        "soong_zip",
109*b7c941bbSAndroid Build Coastguard Worker    ],
110*b7c941bbSAndroid Build Coastguard Worker    cmd: "$(location generate_dm) $(location soong_zip) $(out) $(in)",
111*b7c941bbSAndroid Build Coastguard Worker}
112*b7c941bbSAndroid Build Coastguard Worker
113*b7c941bbSAndroid Build Coastguard Workerjava_genrule {
114*b7c941bbSAndroid Build Coastguard Worker    name: "CtsCompilationApp_profile",
115*b7c941bbSAndroid Build Coastguard Worker    defaults: ["profile_defaults"],
116*b7c941bbSAndroid Build Coastguard Worker    srcs: [
117*b7c941bbSAndroid Build Coastguard Worker        "assets/primary.prof.txt",
118*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp",
119*b7c941bbSAndroid Build Coastguard Worker    ],
120*b7c941bbSAndroid Build Coastguard Worker    out: ["CtsCompilationApp.prof"],
121*b7c941bbSAndroid Build Coastguard Worker}
122*b7c941bbSAndroid Build Coastguard Worker
123*b7c941bbSAndroid Build Coastguard Workerjava_genrule {
124*b7c941bbSAndroid Build Coastguard Worker    name: "CtsCompilationApp_dm",
125*b7c941bbSAndroid Build Coastguard Worker    defaults: ["dm_defaults"],
126*b7c941bbSAndroid Build Coastguard Worker    srcs: [
127*b7c941bbSAndroid Build Coastguard Worker        ":CtsCompilationApp_profile",
128*b7c941bbSAndroid Build Coastguard Worker    ],
129*b7c941bbSAndroid Build Coastguard Worker    out: ["CtsCompilationApp.dm"],
130*b7c941bbSAndroid Build Coastguard Worker}
131*b7c941bbSAndroid Build Coastguard Worker
132*b7c941bbSAndroid Build Coastguard Workerjava_genrule {
133*b7c941bbSAndroid Build Coastguard Worker    name: "AppUsedByOtherApp_1_prof",
134*b7c941bbSAndroid Build Coastguard Worker    defaults: ["profile_defaults"],
135*b7c941bbSAndroid Build Coastguard Worker    srcs: [
136*b7c941bbSAndroid Build Coastguard Worker        "assets/app_used_by_other_app_1.prof.txt",
137*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp",
138*b7c941bbSAndroid Build Coastguard Worker    ],
139*b7c941bbSAndroid Build Coastguard Worker    out: ["AppUsedByOtherApp_1.prof"],
140*b7c941bbSAndroid Build Coastguard Worker}
141*b7c941bbSAndroid Build Coastguard Worker
142*b7c941bbSAndroid Build Coastguard Workerjava_genrule {
143*b7c941bbSAndroid Build Coastguard Worker    name: "AppUsedByOtherApp_1_dm",
144*b7c941bbSAndroid Build Coastguard Worker    defaults: ["dm_defaults"],
145*b7c941bbSAndroid Build Coastguard Worker    srcs: [
146*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp_1_prof",
147*b7c941bbSAndroid Build Coastguard Worker    ],
148*b7c941bbSAndroid Build Coastguard Worker    out: ["AppUsedByOtherApp_1.dm"],
149*b7c941bbSAndroid Build Coastguard Worker}
150*b7c941bbSAndroid Build Coastguard Worker
151*b7c941bbSAndroid Build Coastguard Workerjava_genrule {
152*b7c941bbSAndroid Build Coastguard Worker    name: "AppUsedByOtherApp_2_prof",
153*b7c941bbSAndroid Build Coastguard Worker    defaults: ["profile_defaults"],
154*b7c941bbSAndroid Build Coastguard Worker    srcs: [
155*b7c941bbSAndroid Build Coastguard Worker        "assets/app_used_by_other_app_2.prof.txt",
156*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp",
157*b7c941bbSAndroid Build Coastguard Worker    ],
158*b7c941bbSAndroid Build Coastguard Worker    out: ["AppUsedByOtherApp_2.prof"],
159*b7c941bbSAndroid Build Coastguard Worker}
160*b7c941bbSAndroid Build Coastguard Worker
161*b7c941bbSAndroid Build Coastguard Workergenrule {
162*b7c941bbSAndroid Build Coastguard Worker    name: "CompilationTestCases-package-dex-usage",
163*b7c941bbSAndroid Build Coastguard Worker    srcs: [
164*b7c941bbSAndroid Build Coastguard Worker        ":libartservice_protos",
165*b7c941bbSAndroid Build Coastguard Worker        "assets/package-dex-usage.textproto",
166*b7c941bbSAndroid Build Coastguard Worker    ],
167*b7c941bbSAndroid Build Coastguard Worker    tools: ["aprotoc"],
168*b7c941bbSAndroid Build Coastguard Worker    cmd: "$(location aprotoc) " +
169*b7c941bbSAndroid Build Coastguard Worker        "--encode=com.android.server.art.proto.DexUseProto " +
170*b7c941bbSAndroid Build Coastguard Worker        "$(locations :libartservice_protos) " +
171*b7c941bbSAndroid Build Coastguard Worker        "< $(location assets/package-dex-usage.textproto) > $(out)",
172*b7c941bbSAndroid Build Coastguard Worker    out: ["package-dex-usage.pb"],
173*b7c941bbSAndroid Build Coastguard Worker}
174*b7c941bbSAndroid Build Coastguard Worker
175*b7c941bbSAndroid Build Coastguard Workergenrule {
176*b7c941bbSAndroid Build Coastguard Worker    name: "CompilationTestCases-config-empty",
177*b7c941bbSAndroid Build Coastguard Worker    srcs: [
178*b7c941bbSAndroid Build Coastguard Worker        ":libartservice_protos",
179*b7c941bbSAndroid Build Coastguard Worker    ],
180*b7c941bbSAndroid Build Coastguard Worker    tools: ["aprotoc"],
181*b7c941bbSAndroid Build Coastguard Worker    cmd: "$(location aprotoc) " +
182*b7c941bbSAndroid Build Coastguard Worker        "--encode=com.android.server.art.proto.DexMetadataConfig " +
183*b7c941bbSAndroid Build Coastguard Worker        "$(locations :libartservice_protos) " +
184*b7c941bbSAndroid Build Coastguard Worker        "<<<'' > $(out)",
185*b7c941bbSAndroid Build Coastguard Worker    out: ["config-empty.pb"],
186*b7c941bbSAndroid Build Coastguard Worker}
187*b7c941bbSAndroid Build Coastguard Worker
188*b7c941bbSAndroid Build Coastguard Workergenrule {
189*b7c941bbSAndroid Build Coastguard Worker    name: "empty_config_dm",
190*b7c941bbSAndroid Build Coastguard Worker    defaults: ["dm_defaults"],
191*b7c941bbSAndroid Build Coastguard Worker    srcs: [
192*b7c941bbSAndroid Build Coastguard Worker        ":CompilationTestCases-config-empty",
193*b7c941bbSAndroid Build Coastguard Worker    ],
194*b7c941bbSAndroid Build Coastguard Worker    out: ["empty_config.dm"],
195*b7c941bbSAndroid Build Coastguard Worker}
196*b7c941bbSAndroid Build Coastguard Worker
197*b7c941bbSAndroid Build Coastguard Workergenrule {
198*b7c941bbSAndroid Build Coastguard Worker    name: "CompilationTestCases-config-disable_embedded_profile",
199*b7c941bbSAndroid Build Coastguard Worker    srcs: [
200*b7c941bbSAndroid Build Coastguard Worker        ":libartservice_protos",
201*b7c941bbSAndroid Build Coastguard Worker    ],
202*b7c941bbSAndroid Build Coastguard Worker    tools: ["aprotoc"],
203*b7c941bbSAndroid Build Coastguard Worker    cmd: "$(location aprotoc) " +
204*b7c941bbSAndroid Build Coastguard Worker        "--encode=com.android.server.art.proto.DexMetadataConfig " +
205*b7c941bbSAndroid Build Coastguard Worker        "$(locations :libartservice_protos) " +
206*b7c941bbSAndroid Build Coastguard Worker        "<<<'enable_embedded_profile: false' > $(out)",
207*b7c941bbSAndroid Build Coastguard Worker    out: ["config-disable_embedded_profile.pb"],
208*b7c941bbSAndroid Build Coastguard Worker}
209*b7c941bbSAndroid Build Coastguard Worker
210*b7c941bbSAndroid Build Coastguard Workergenrule {
211*b7c941bbSAndroid Build Coastguard Worker    name: "disable_embedded_profile_dm",
212*b7c941bbSAndroid Build Coastguard Worker    defaults: ["dm_defaults"],
213*b7c941bbSAndroid Build Coastguard Worker    srcs: [
214*b7c941bbSAndroid Build Coastguard Worker        ":CompilationTestCases-config-disable_embedded_profile",
215*b7c941bbSAndroid Build Coastguard Worker    ],
216*b7c941bbSAndroid Build Coastguard Worker    out: ["disable_embedded_profile.dm"],
217*b7c941bbSAndroid Build Coastguard Worker}
218*b7c941bbSAndroid Build Coastguard Worker
219*b7c941bbSAndroid Build Coastguard Workerjava_genrule {
220*b7c941bbSAndroid Build Coastguard Worker    name: "AppUsedByOtherApp_1_disable_embedded_profile_dm",
221*b7c941bbSAndroid Build Coastguard Worker    defaults: ["dm_defaults"],
222*b7c941bbSAndroid Build Coastguard Worker    srcs: [
223*b7c941bbSAndroid Build Coastguard Worker        ":AppUsedByOtherApp_1_prof",
224*b7c941bbSAndroid Build Coastguard Worker        ":CompilationTestCases-config-disable_embedded_profile",
225*b7c941bbSAndroid Build Coastguard Worker    ],
226*b7c941bbSAndroid Build Coastguard Worker    out: ["AppUsedByOtherApp_1_disable_embedded_profile.dm"],
227*b7c941bbSAndroid Build Coastguard Worker}
228