blob: 6648cf625982d373c5af54d940fdc12306e0bc2e [file] [log] [blame]
Colin Cross4c609952017-10-18 13:00:01 -07001// Copyright (C) 2011 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
Bob Badouredae1422021-02-12 20:49:13 -080015package {
16 default_applicable_licenses: ["external_dexmaker_license"],
17}
18
19// Added automatically by a large-scale-change that took the approach of
20// 'apply every license found to every target'. While this makes sure we respect
21// every license restriction, it may not be entirely correct.
22//
23// e.g. GPL in an MIT project might only apply to the contrib/ directory.
24//
25// Please consider splitting the single license below into multiple licenses,
26// taking care not to lose any license_kind information, and overriding the
27// default license using the 'licenses: [...]' property on targets as needed.
28//
29// For unused files, consider creating a 'fileGroup' with "//visibility:private"
30// to attach the license to, and including a comment whether the files may be
31// used in the current project.
32//
33// large-scale-change included anything that looked like it might be a license
34// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
35//
36// Please consider removing redundant or irrelevant files from 'license_text:'.
37// See: http://go/android-license-faq
38license {
39 name: "external_dexmaker_license",
40 visibility: [":__subpackages__"],
41 license_kinds: [
42 "SPDX-license-identifier-Apache-2.0",
43 "SPDX-license-identifier-MIT",
44 ],
45 license_text: [
46 "COPYING",
47 "LICENSE",
48 "NOTICE",
49 ],
50}
51
Colin Cross4c609952017-10-18 13:00:01 -070052java_library_static {
53 name: "dexmaker",
54
55 // Include all the java files.
56 srcs: ["dexmaker/src/main/java/**/*.java"],
57
58 static_libs: [
59 "dexmaker-dx-target",
Colin Cross4c609952017-10-18 13:00:01 -070060 ],
61
Neil Fullerbc1141d2018-10-09 17:29:21 +010062 sdk_version: "core_current",
Colin Cross4c609952017-10-18 13:00:01 -070063}
64
65// Build Dexmaker's MockMaker, a plugin to Mockito
66java_library_static {
67 name: "dexmaker-mockmaker",
Neil Fullerbc1141d2018-10-09 17:29:21 +010068 sdk_version: "core_current",
Colin Cross4c609952017-10-18 13:00:01 -070069 srcs: ["dexmaker-mockito/src/main/java/**/*.java"],
70 java_resource_dirs: ["dexmaker-mockito/src/main/resources"],
71 libs: [
72 "dexmaker",
73 "mockito-api",
74 ],
75}
76
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080077// Build dispatcher for Dexmaker's inline MockMaker
78java_library_static {
79 name: "dexmaker-inline-mockmaker-dispatcher",
Paul Duffine566b662019-06-12 12:44:20 +010080 sdk_version: "core_current",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080081 srcs: ["dexmaker-mockito-inline-dispatcher/src/main/java/**/*.java"],
82}
83
Andreas Gampea884f902018-01-18 21:29:41 -080084// Defaults for agent code.
85cc_defaults {
86 name: "dexmaker_agent_defaults",
87
88 // Compile with the NDK, so that the agent can be used in apps.
89 sdk_version: "current",
90 stl: "libc++_static",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080091
92 host_supported: false,
93 device_supported: true,
94
95 rtti: true,
96
97 cflags: [
98 "-std=c++11",
99 "-Wall",
100 "-Werror",
101 "-Wno-unused-parameter",
102 "-Wno-shift-count-overflow",
103 "-Wno-error=non-virtual-dtor",
104 "-Wno-sign-compare",
105 "-Wno-switch",
106 "-Wno-missing-braces",
107 ],
108
109 static_libs: [
Andreas Gampea884f902018-01-18 21:29:41 -0800110 "slicer_ndk",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800111 ],
112
113 shared_libs: [
114 "libz",
115 ],
116
Paul Duffin131d88f2019-06-28 16:15:42 +0100117 header_libs: [
Orion Hodsoncf2f14c2020-04-14 13:40:23 +0100118 "jni_headers",
Orion Hodsonf37ec312020-04-09 21:56:25 +0100119 "libopenjdkjvmti_headers",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800120 ],
121}
122
Andreas Gampea884f902018-01-18 21:29:41 -0800123// Build agent for Dexmaker's inline MockMaker
124cc_library_shared {
125 name: "libdexmakerjvmtiagent",
126 defaults: [
127 "dexmaker_agent_defaults",
128 ],
129 srcs: ["dexmaker-mockito-inline/src/main/jni/**/*.cc"],
Remi NGUYEN VAN1ab5bf32021-07-09 12:07:24 +0900130 min_sdk_version: "29",
Andreas Gampea884f902018-01-18 21:29:41 -0800131}
132
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000133// Build agent for Dexmaker's extended MockMaker
134cc_library_shared {
135 name: "libstaticjvmtiagent",
136 defaults: [
137 "dexmaker_agent_defaults",
138 ],
139 srcs: ["dexmaker-mockito-inline-extended/src/main/jni/**/*.cc"],
Remi NGUYEN VAN1ab5bf32021-07-09 12:07:24 +0900140 min_sdk_version: "29",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000141}
142
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800143// Build agent for Dexmaker's inline tests
144cc_library_shared {
145 name: "libmultiplejvmtiagentsinterferenceagent",
Andreas Gampea884f902018-01-18 21:29:41 -0800146 defaults: [
147 "dexmaker_agent_defaults",
148 ],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800149 srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800150}
151
152// Build Dexmaker's inline MockMaker, a plugin to Mockito
153java_library_static {
154 name: "dexmaker-inline-mockmaker",
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700155 sdk_version: "current",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800156 srcs: ["dexmaker-mockito-inline/src/main/java/**/*.java"],
157 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
158 libs: [
159 "dexmaker",
160 "mockito-api",
161 ],
162 required: ["libdexmakerjvmtiagent"],
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000163}
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700164
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000165// Build Dexmaker's extended MockMaker, a plugin to Mockito
166java_library_static {
167 name: "dexmaker-extended-mockmaker",
168 sdk_version: "current",
169 srcs: ["dexmaker-mockito-inline-extended/src/main/java/**/*.java"],
170
171 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
172
173 libs: [
174 "dexmaker",
175 "mockito-api",
176 "dexmaker-inline-mockmaker",
177 ],
178 required: [
179 "libdexmakerjvmtiagent",
Orion Hodsonf37ec312020-04-09 21:56:25 +0100180 "libstaticjvmtiagent",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000181 ],
182}
183
184// Provides mockito functionality for on-device tests. Does not allow stubbing of final or static
185// methods.
186java_library_static {
187 name: "mockito-target",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000188 static_libs: [
189 "mockito-target-minus-junit4",
190 "junit",
191 ],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100192 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000193}
194
195// Same as mockito-target but does not bundle junit
196java_library_static {
197 name: "mockito-target-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000198 static_libs: [
199 "mockito",
200 "dexmaker",
201 "dexmaker-mockmaker",
202 "objenesis",
203 ],
204 libs: ["junit"],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100205 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000206
207 java_version: "1.7",
208}
209
210// Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not
211// allow stubbing of static methods.
212// Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent
213java_library_static {
214 name: "mockito-target-inline",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000215 static_libs: [
216 "mockito-target-inline-minus-junit4",
217 "junit",
218 ],
219 sdk_version: "current",
220}
221
222// Same as mockito-target-inline but does not bundle junit
223java_library_static {
224 name: "mockito-target-inline-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000225 static_libs: [
226 "mockito",
227 "dexmaker",
228 "dexmaker-inline-mockmaker",
229 "objenesis",
230 ],
231 libs: ["junit"],
232 sdk_version: "current",
233
234 java_version: "1.7",
235}
236
237// Provides mockito functionality for on-device tests. Allows stubbing of final and static methods.
238// Stubbing static methods is not an official mockito API.
239// Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and
240// libdexmakerjvmtiagent
241java_library_static {
242 name: "mockito-target-extended",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000243 static_libs: [
244 "mockito-target-extended-minus-junit4",
245 "junit",
246 ],
247 sdk_version: "current",
248}
249
250// Same as mockito-target-extended but does not bundle junit
251java_library_static {
252 name: "mockito-target-extended-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000253 static_libs: [
254 "mockito",
255 "dexmaker",
256 "dexmaker-inline-mockmaker",
257 "dexmaker-extended-mockmaker",
258 "objenesis",
259 ],
260 libs: ["junit"],
261 sdk_version: "current",
262
263 java_version: "1.7",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800264}
265
Colin Cross4c609952017-10-18 13:00:01 -0700266java_import {
267 name: "dexmaker-dx-target",
Philip P. Moltmannaa1c0e92018-12-05 08:46:19 -0800268 jars: ["lib/dalvik-dx-9.0.0_r3.jar"],
Colin Cross4c609952017-10-18 13:00:01 -0700269}
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000270
271// dexmaker tests
272java_library_static {
273 name: "dexmaker-tests-lib",
274 sdk_version: "current",
275 srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"],
276
277 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800278 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000279 "dexmaker",
280 "junit",
281 ],
282}
283
284// dexmaker-mockito tests
285java_library_static {
286 name: "dexmaker-mockmaker-tests",
287 sdk_version: "current",
288 srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"],
289
290 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800291 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000292 "dexmaker",
293 "mockito",
294 "junit",
295 "dexmaker-mockmaker",
296 ],
297}
298
299// dexmaker-mockito-inline tests
300java_library_static {
301 name: "dexmaker-inline-mockmaker-tests",
302 sdk_version: "current",
303 srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"],
304
305 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800306 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000307 "dexmaker",
308 "android-support-v4",
309 "mockito",
310 "junit",
311 "dexmaker-inline-mockmaker",
312 ],
313}
314
315// dexmaker-mockito-extended tests
316java_library_static {
317 name: "dexmaker-extended-mockmaker-tests",
318 sdk_version: "current",
319 srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"],
320
321 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800322 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000323 "dexmaker",
324 "android-support-v4",
325 "mockito",
326 "junit",
327 "dexmaker-extended-mockmaker",
328 ],
329}
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800330
331/*
332 * To run the tests:
333 * atest DexmakerTests
334 */
335
336android_test {
337 name: "DexmakerTests",
338 sdk_version: "current",
339 static_libs: [
340 "dexmaker-tests-lib",
341 "dexmaker",
Brett Chabote0caade2019-03-01 14:16:07 -0800342 "androidx.test.rules",
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800343 "junit",
344 ],
345}