1//
2// Copyright (C) 2020 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17package {
18    default_team: "trendy_team_framework_android_packages",
19    default_applicable_licenses: ["Android-Apache-2.0"],
20}
21
22java_defaults {
23    name: "CtsSplitAppDefaults",
24    defaults: ["cts_support_defaults"],
25    srcs: ["src/**/*.java"],
26    asset_dirs: ["assets"],
27    sdk_version: "current",
28    min_sdk_version: "4",
29    aapt_include_all_resources: true,
30    static_libs: [
31        "androidx.test.rules",
32        "truth",
33        "hamcrest-library",
34        "compatibility-device-util-axt",
35    ],
36    libs: [
37        "android.test.runner.stubs",
38        "android.test.base.stubs",
39    ],
40    target_sdk_version: "current",
41}
42
43android_test_helper_app {
44    name: "CtsSplitApp",
45    defaults: ["CtsSplitAppDefaults"],
46    package_splits: [
47        "mdpi-v4",
48        "hdpi-v4",
49        "xhdpi-v4",
50        "xxhdpi-v4",
51        "v7",
52        "v23",
53        "fr",
54        "de",
55    ],
56    certificate: ":cts-testkey1",
57    aaptflags: [
58        "--version-code 100",
59        "--version-name OneHundred",
60        "--replace-version",
61    ],
62    // Feature splits are dependent on this base, so it must be exported.
63    export_package_resources: true,
64    test_suites: [
65        "cts",
66        "general-tests",
67        "mts-mainline-infra",
68    ],
69    lint: {
70        baseline_filename: "lint-baseline.xml",
71    },
72}
73
74// Define a variant with a different revision code
75android_test_helper_app {
76    name: "CtsSplitAppDiffRevision",
77    defaults: ["CtsSplitAppDefaults"],
78    package_splits: ["v7"],
79    certificate: ":cts-testkey1",
80    aaptflags: [
81        "--version-code 100",
82        "--revision-code 12",
83        "--version-name OneHundredRevisionTwelve",
84        "--replace-version",
85    ],
86    test_suites: [
87        "cts",
88        "general-tests",
89    ],
90    lint: {
91        baseline_filename: "lint-baseline.xml",
92    },
93}
94
95// Define a variant with a different version code
96android_test_helper_app {
97    name: "CtsSplitAppDiffVersion",
98    defaults: ["CtsSplitAppDefaults"],
99    package_splits: ["v7"],
100    certificate: ":cts-testkey1",
101    aaptflags: [
102        "--version-code 101",
103        "--version-name OneHundredOne",
104        "--replace-version",
105    ],
106    test_suites: [
107        "cts",
108        "general-tests",
109    ],
110    lint: {
111        baseline_filename: "lint-baseline.xml",
112    },
113}
114
115// Define a variant with a different signature
116android_test_helper_app {
117    name: "CtsSplitAppDiffCert",
118    defaults: ["CtsSplitAppDefaults"],
119    package_splits: ["v7"],
120    certificate: ":cts-testkey2",
121    aaptflags: [
122        "--version-code 100",
123        "--version-name OneHundred",
124        "--replace-version",
125    ],
126    test_suites: [
127        "cts",
128        "general-tests",
129    ],
130    lint: {
131        baseline_filename: "lint-baseline.xml",
132    },
133}
134
135// Define a variant requiring a split for install
136android_test_helper_app {
137    name: "CtsNeedSplitApp",
138    defaults: ["CtsSplitAppDefaults"],
139    manifest: "needsplit/AndroidManifest.xml",
140    package_splits: ["xxhdpi-v4"],
141    certificate: ":cts-testkey1",
142    aaptflags: [
143        "--version-code 100",
144        "--version-name OneHundredRevisionTwelve",
145        "--replace-version",
146    ],
147    test_suites: [
148        "cts",
149        "general-tests",
150    ],
151    lint: {
152        baseline_filename: "lint-baseline.xml",
153    },
154}
155
156// Define a variant with different codes and resources for the inherit updated test of the base apk
157android_test_helper_app {
158    name: "CtsSplitAppRevisionA",
159    defaults: ["CtsSplitAppDefaults"],
160    srcs: [
161        "src/**/*.java",
162        "revision_a/src/**/*.java",
163    ],
164    resource_dirs: [
165        "res",
166        "revision_a/res",
167    ],
168    asset_dirs: ["revision_a/assets"],
169    manifest: "revision_a/AndroidManifest.xml",
170    package_splits: ["v7"],
171    certificate: ":cts-testkey1",
172    aaptflags: [
173        "--version-code 100",
174        "--revision-code 10",
175        "--version-name OneHundredRevisionTen",
176        "--replace-version",
177    ],
178    test_suites: [
179        "cts",
180        "general-tests",
181    ],
182    lint: {
183        baseline_filename: "lint-baseline.xml",
184    },
185}
186
187// Define a variant which includes a provider and service declared in other split apk. And they only
188// could be tested in the instant app.
189android_test_helper_app {
190    name: "CtsSplitInstantApp",
191    defaults: ["CtsSplitAppDefaults"],
192    manifest: "instantapp/AndroidManifest.xml",
193    certificate: ":cts-testkey1",
194    aaptflags: [
195        "--version-code 100",
196        "--version-name OneHundred",
197        "--replace-version",
198    ],
199    test_suites: [
200        "cts",
201        "general-tests",
202    ],
203    lint: {
204        baseline_filename: "lint-baseline.xml",
205    },
206}
207