blob: c3fcdb420157f19bc07045be9ffd3144e6d4c100 [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
15java_library_static {
16 name: "dexmaker",
17
18 // Include all the java files.
19 srcs: ["dexmaker/src/main/java/**/*.java"],
20
21 static_libs: [
22 "dexmaker-dx-target",
Colin Cross4c609952017-10-18 13:00:01 -070023 ],
24
Neil Fullerbc1141d2018-10-09 17:29:21 +010025 sdk_version: "core_current",
Colin Cross4c609952017-10-18 13:00:01 -070026}
27
28// Build Dexmaker's MockMaker, a plugin to Mockito
29java_library_static {
30 name: "dexmaker-mockmaker",
Neil Fullerbc1141d2018-10-09 17:29:21 +010031 sdk_version: "core_current",
Colin Cross4c609952017-10-18 13:00:01 -070032 srcs: ["dexmaker-mockito/src/main/java/**/*.java"],
33 java_resource_dirs: ["dexmaker-mockito/src/main/resources"],
34 libs: [
35 "dexmaker",
36 "mockito-api",
37 ],
38}
39
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080040// Build dispatcher for Dexmaker's inline MockMaker
41java_library_static {
42 name: "dexmaker-inline-mockmaker-dispatcher",
Paul Duffine566b662019-06-12 12:44:20 +010043 sdk_version: "core_current",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080044 srcs: ["dexmaker-mockito-inline-dispatcher/src/main/java/**/*.java"],
45}
46
Andreas Gampea884f902018-01-18 21:29:41 -080047// Defaults for agent code.
48cc_defaults {
49 name: "dexmaker_agent_defaults",
50
51 // Compile with the NDK, so that the agent can be used in apps.
52 sdk_version: "current",
53 stl: "libc++_static",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080054
55 host_supported: false,
56 device_supported: true,
57
58 rtti: true,
59
60 cflags: [
61 "-std=c++11",
62 "-Wall",
63 "-Werror",
64 "-Wno-unused-parameter",
65 "-Wno-shift-count-overflow",
66 "-Wno-error=non-virtual-dtor",
67 "-Wno-sign-compare",
68 "-Wno-switch",
69 "-Wno-missing-braces",
70 ],
71
72 static_libs: [
Andreas Gampea884f902018-01-18 21:29:41 -080073 "slicer_ndk",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080074 ],
75
76 shared_libs: [
77 "libz",
78 ],
79
Paul Duffin131d88f2019-06-28 16:15:42 +010080 header_libs: [
Orion Hodsonf37ec312020-04-09 21:56:25 +010081 "libopenjdkjvmti_headers",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080082 ],
83}
84
Andreas Gampea884f902018-01-18 21:29:41 -080085// Build agent for Dexmaker's inline MockMaker
86cc_library_shared {
87 name: "libdexmakerjvmtiagent",
88 defaults: [
89 "dexmaker_agent_defaults",
90 ],
91 srcs: ["dexmaker-mockito-inline/src/main/jni/**/*.cc"],
92}
93
Philip P. Moltmann70402ca2018-08-28 16:57:52 +000094// Build agent for Dexmaker's extended MockMaker
95cc_library_shared {
96 name: "libstaticjvmtiagent",
97 defaults: [
98 "dexmaker_agent_defaults",
99 ],
100 srcs: ["dexmaker-mockito-inline-extended/src/main/jni/**/*.cc"],
101}
102
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800103// Build agent for Dexmaker's inline tests
104cc_library_shared {
105 name: "libmultiplejvmtiagentsinterferenceagent",
Andreas Gampea884f902018-01-18 21:29:41 -0800106 defaults: [
107 "dexmaker_agent_defaults",
108 ],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800109 srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800110}
111
112// Build Dexmaker's inline MockMaker, a plugin to Mockito
113java_library_static {
114 name: "dexmaker-inline-mockmaker",
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700115 sdk_version: "current",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800116 srcs: ["dexmaker-mockito-inline/src/main/java/**/*.java"],
117 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
118 libs: [
119 "dexmaker",
120 "mockito-api",
121 ],
122 required: ["libdexmakerjvmtiagent"],
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000123}
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700124
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000125// Build Dexmaker's extended MockMaker, a plugin to Mockito
126java_library_static {
127 name: "dexmaker-extended-mockmaker",
128 sdk_version: "current",
129 srcs: ["dexmaker-mockito-inline-extended/src/main/java/**/*.java"],
130
131 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
132
133 libs: [
134 "dexmaker",
135 "mockito-api",
136 "dexmaker-inline-mockmaker",
137 ],
138 required: [
139 "libdexmakerjvmtiagent",
Orion Hodsonf37ec312020-04-09 21:56:25 +0100140 "libstaticjvmtiagent",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000141 ],
142}
143
144// Provides mockito functionality for on-device tests. Does not allow stubbing of final or static
145// methods.
146java_library_static {
147 name: "mockito-target",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000148 static_libs: [
149 "mockito-target-minus-junit4",
150 "junit",
151 ],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100152 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000153}
154
155// Same as mockito-target but does not bundle junit
156java_library_static {
157 name: "mockito-target-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000158 static_libs: [
159 "mockito",
160 "dexmaker",
161 "dexmaker-mockmaker",
162 "objenesis",
163 ],
164 libs: ["junit"],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100165 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000166
167 java_version: "1.7",
168}
169
170// Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not
171// allow stubbing of static methods.
172// Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent
173java_library_static {
174 name: "mockito-target-inline",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000175 static_libs: [
176 "mockito-target-inline-minus-junit4",
177 "junit",
178 ],
179 sdk_version: "current",
180}
181
182// Same as mockito-target-inline but does not bundle junit
183java_library_static {
184 name: "mockito-target-inline-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000185 static_libs: [
186 "mockito",
187 "dexmaker",
188 "dexmaker-inline-mockmaker",
189 "objenesis",
190 ],
191 libs: ["junit"],
192 sdk_version: "current",
193
194 java_version: "1.7",
195}
196
197// Provides mockito functionality for on-device tests. Allows stubbing of final and static methods.
198// Stubbing static methods is not an official mockito API.
199// Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and
200// libdexmakerjvmtiagent
201java_library_static {
202 name: "mockito-target-extended",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000203 static_libs: [
204 "mockito-target-extended-minus-junit4",
205 "junit",
206 ],
207 sdk_version: "current",
208}
209
210// Same as mockito-target-extended but does not bundle junit
211java_library_static {
212 name: "mockito-target-extended-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000213 static_libs: [
214 "mockito",
215 "dexmaker",
216 "dexmaker-inline-mockmaker",
217 "dexmaker-extended-mockmaker",
218 "objenesis",
219 ],
220 libs: ["junit"],
221 sdk_version: "current",
222
223 java_version: "1.7",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800224}
225
Colin Cross4c609952017-10-18 13:00:01 -0700226java_import {
227 name: "dexmaker-dx-target",
Philip P. Moltmannaa1c0e92018-12-05 08:46:19 -0800228 jars: ["lib/dalvik-dx-9.0.0_r3.jar"],
Colin Cross4c609952017-10-18 13:00:01 -0700229}
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000230
231// dexmaker tests
232java_library_static {
233 name: "dexmaker-tests-lib",
234 sdk_version: "current",
235 srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"],
236
237 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800238 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000239 "dexmaker",
240 "junit",
241 ],
242}
243
244// dexmaker-mockito tests
245java_library_static {
246 name: "dexmaker-mockmaker-tests",
247 sdk_version: "current",
248 srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"],
249
250 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800251 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000252 "dexmaker",
253 "mockito",
254 "junit",
255 "dexmaker-mockmaker",
256 ],
257}
258
259// dexmaker-mockito-inline tests
260java_library_static {
261 name: "dexmaker-inline-mockmaker-tests",
262 sdk_version: "current",
263 srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"],
264
265 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800266 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000267 "dexmaker",
268 "android-support-v4",
269 "mockito",
270 "junit",
271 "dexmaker-inline-mockmaker",
272 ],
273}
274
275// dexmaker-mockito-extended tests
276java_library_static {
277 name: "dexmaker-extended-mockmaker-tests",
278 sdk_version: "current",
279 srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"],
280
281 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800282 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000283 "dexmaker",
284 "android-support-v4",
285 "mockito",
286 "junit",
287 "dexmaker-extended-mockmaker",
288 ],
289}
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800290
291/*
292 * To run the tests:
293 * atest DexmakerTests
294 */
295
296android_test {
297 name: "DexmakerTests",
298 sdk_version: "current",
299 static_libs: [
300 "dexmaker-tests-lib",
301 "dexmaker",
Brett Chabote0caade2019-03-01 14:16:07 -0800302 "androidx.test.rules",
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800303 "junit",
304 ],
305}