1//########################################################################
2// Build FrameworksServicesTests package
3//########################################################################
4
5package {
6    // See: http://go/android-license-faq
7    // A large-scale-change added 'default_applicable_licenses' to import
8    // all of the 'license_kinds' from "frameworks_base_license"
9    // to get the below license kinds:
10    //   SPDX-license-identifier-Apache-2.0
11    default_applicable_licenses: ["frameworks_base_license"],
12}
13
14android_test {
15    name: "FrameworksServicesTests",
16
17    // Include all test java files.
18    srcs: [
19        "src/**/*.java",
20        "src/**/*.kt",
21
22        "test-apps/JobTestApp/src/**/*.java",
23
24        "test-apps/SuspendTestApp/src/**/*.java",
25    ],
26    static_libs: [
27        "frameworks-base-testutils",
28        "services.accessibility",
29        "services.appwidget",
30        "services.autofill",
31        "services.contentcapture",
32        "services.backup",
33        "services.companion",
34        "services.core",
35        "services.credentials",
36        "services.devicepolicy",
37        "services.flags",
38        "services.net",
39        "services.people",
40        "services.usage",
41        "guava",
42        "guava-android-testlib",
43        "androidx.test.core",
44        "androidx.test.ext.truth",
45        "androidx.test.runner",
46        "androidx.test.rules",
47        "androidx.test.ext.junit",
48        "cts-wm-util",
49        "platform-compat-test-rules",
50        "mockito-target-minus-junit4",
51        "platform-test-annotations",
52        "ShortcutManagerTestUtils",
53        "truth-prebuilt",
54        "testables",
55        "ub-uiautomator",
56        "platformprotosnano",
57        "framework-protos",
58        "hamcrest-library",
59        "servicestests-utils",
60        "service-jobscheduler",
61        // TODO: remove once Android migrates to JUnit 4.12,
62        // which provides assertThrows
63        "testng",
64        "truth-prebuilt",
65        "junit",
66        "junit-params",
67        "ActivityContext",
68        "coretests-aidl",
69        "securebox",
70    ],
71
72    libs: [
73        "android.hardware.power-V1-java",
74        "android.hardware.tv.cec-V1.0-java",
75        "android.hardware.vibrator-V2-java",
76        "android.hidl.manager-V1.0-java",
77        "android.test.mock",
78        "android.test.base",
79        "android.test.runner",
80    ],
81
82    platform_apis: true,
83
84    test_suites: [
85        "device-tests",
86        "automotive-tests",
87    ],
88
89    certificate: "platform",
90
91    // These are not normally accessible from apps so they must be explicitly included.
92    jni_libs: [
93        "libbase",
94        "libbinder",
95        "libc++",
96        "libcutils",
97        "liblog",
98        "liblzma",
99        "libnativehelper",
100        "libpsi",
101        "libui",
102        "libunwindstack",
103        "libutils",
104        "netd_aidl_interface-V5-cpp",
105    ],
106
107    dxflags: ["--multi-dex"],
108
109    optimize: {
110        enabled: false,
111    },
112
113    data: [
114        ":BstatsTestApp",
115        ":JobTestApp",
116        ":SimpleServiceTestApp1",
117        ":SimpleServiceTestApp2",
118        ":SimpleServiceTestApp3",
119        ":SuspendTestApp",
120        ":MediaButtonReceiverHolderTestHelperApp",
121        "data/broken_shortcut.xml",
122    ],
123
124    java_resources: [
125        ":com.android.apex.cts.shim.v1_prebuilt",
126        ":com.android.apex.cts.shim.v2_different_certificate_prebuilt",
127        ":com.android.apex.cts.shim.v2_unsigned_apk_container_prebuilt",
128    ],
129    resource_zips: [":FrameworksServicesTests_apks_as_resources"],
130}
131
132java_library {
133    name: "servicestests-core-utils",
134    srcs: [
135        "src/com/android/server/am/DeviceConfigSession.java",
136        "src/com/android/server/display/TestUtils.java",
137        "src/com/android/server/pm/PackageSettingBuilder.java",
138        "src/com/android/server/pm/parsing/TestPackageParser2.kt",
139    ],
140    static_libs: [
141        "services.core",
142        "compatibility-device-util-axt",
143    ],
144}
145
146java_library {
147    name: "servicestests-dpm-utils",
148    srcs: [
149        "src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java",
150        "src/com/android/server/devicepolicy/DevicePolicyManagerTestable.java",
151        "src/com/android/server/devicepolicy/DpmMockContext.java",
152        "src/com/android/server/devicepolicy/DpmTestBase.java",
153        "src/com/android/server/devicepolicy/DpmTestUtils.java",
154        "src/com/android/server/devicepolicy/DummyDeviceAdmins.java",
155        "src/com/android/server/devicepolicy/MockSystemServices.java",
156        "src/com/android/server/devicepolicy/MockUtils.java",
157    ],
158    libs: [
159        "android.test.mock",
160        "android.test.base",
161        "mockito-target-minus-junit4",
162    ],
163    static_libs: [
164        "frameworks-base-testutils",
165        "androidx.test.core",
166        "androidx.test.ext.truth",
167        "androidx.test.rules",
168        "services.core",
169        "services.devicepolicy",
170    ],
171}
172
173java_library {
174    name: "servicestests-utils",
175    srcs: [
176        "utils/**/*.java",
177        "utils/**/*.kt",
178        "utils-mockito/**/*.kt",
179    ],
180    static_libs: [
181        "junit",
182        "mockito-target-minus-junit4",
183    ],
184    libs: [
185        "android.test.runner",
186    ],
187}
188
189java_library {
190    name: "servicestests-utils-mockito-extended",
191    srcs: [
192        "utils/**/*.java",
193        "utils/**/*.kt",
194        "utils-mockito/**/*.kt",
195    ],
196    static_libs: [
197        "junit",
198        "mockito-target-extended-minus-junit4",
199    ],
200    libs: [
201        "android.test.runner",
202    ],
203}
204
205filegroup {
206    name: "servicestests-SuspendTestApp-files",
207    srcs: [
208        "src/com/android/server/pm/SuspendPackagesTest.java",
209    ],
210}
211
212// Rules to copy all the test apks to the intermediate raw resource directory
213java_genrule {
214    name: "FrameworksServicesTests_apks_as_resources",
215    srcs: [
216        ":FrameworksServicesTests_install_split_base",
217        ":FrameworksServicesTests_install_split_feature_a",
218    ],
219    out: ["FrameworkServicesTests_apks_as_resources.res.zip"],
220    tools: ["soong_zip"],
221
222    cmd: "mkdir -p $(genDir)/res/raw && " +
223        "for i in $(in); do " +
224        "  x=$${i##*FrameworksCoreTests_}; cp $$i $(genDir)/res/raw/$${x%.apk};" +
225        "  x=$${i##*FrameworksServicesTests_}; cp $$i $(genDir)/res/raw/$${x%.apk};" +
226        "done && " +
227        "$(location soong_zip) -o $(out) -C $(genDir)/res -D $(genDir)/res",
228}
229