blob: 995e60ca048bc67307f47c628745b1518baf113b [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 Hodsoncf2f14c2020-04-14 13:40:23 +010081 "jni_headers",
Orion Hodsonf37ec312020-04-09 21:56:25 +010082 "libopenjdkjvmti_headers",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -080083 ],
84}
85
Andreas Gampea884f902018-01-18 21:29:41 -080086// Build agent for Dexmaker's inline MockMaker
87cc_library_shared {
88 name: "libdexmakerjvmtiagent",
89 defaults: [
90 "dexmaker_agent_defaults",
91 ],
92 srcs: ["dexmaker-mockito-inline/src/main/jni/**/*.cc"],
93}
94
Philip P. Moltmann70402ca2018-08-28 16:57:52 +000095// Build agent for Dexmaker's extended MockMaker
96cc_library_shared {
97 name: "libstaticjvmtiagent",
98 defaults: [
99 "dexmaker_agent_defaults",
100 ],
101 srcs: ["dexmaker-mockito-inline-extended/src/main/jni/**/*.cc"],
102}
103
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800104// Build agent for Dexmaker's inline tests
105cc_library_shared {
106 name: "libmultiplejvmtiagentsinterferenceagent",
Andreas Gampea884f902018-01-18 21:29:41 -0800107 defaults: [
108 "dexmaker_agent_defaults",
109 ],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800110 srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"],
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800111}
112
113// Build Dexmaker's inline MockMaker, a plugin to Mockito
114java_library_static {
115 name: "dexmaker-inline-mockmaker",
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700116 sdk_version: "current",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800117 srcs: ["dexmaker-mockito-inline/src/main/java/**/*.java"],
118 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
119 libs: [
120 "dexmaker",
121 "mockito-api",
122 ],
123 required: ["libdexmakerjvmtiagent"],
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000124}
Philip P. Moltmannd4a20562018-03-13 13:11:07 -0700125
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000126// Build Dexmaker's extended MockMaker, a plugin to Mockito
127java_library_static {
128 name: "dexmaker-extended-mockmaker",
129 sdk_version: "current",
130 srcs: ["dexmaker-mockito-inline-extended/src/main/java/**/*.java"],
131
132 java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"],
133
134 libs: [
135 "dexmaker",
136 "mockito-api",
137 "dexmaker-inline-mockmaker",
138 ],
139 required: [
140 "libdexmakerjvmtiagent",
Orion Hodsonf37ec312020-04-09 21:56:25 +0100141 "libstaticjvmtiagent",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000142 ],
143}
144
145// Provides mockito functionality for on-device tests. Does not allow stubbing of final or static
146// methods.
147java_library_static {
148 name: "mockito-target",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000149 static_libs: [
150 "mockito-target-minus-junit4",
151 "junit",
152 ],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100153 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000154}
155
156// Same as mockito-target but does not bundle junit
157java_library_static {
158 name: "mockito-target-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000159 static_libs: [
160 "mockito",
161 "dexmaker",
162 "dexmaker-mockmaker",
163 "objenesis",
164 ],
165 libs: ["junit"],
Neil Fullerbc1141d2018-10-09 17:29:21 +0100166 sdk_version: "core_current",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000167
168 java_version: "1.7",
169}
170
171// Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not
172// allow stubbing of static methods.
173// Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent
174java_library_static {
175 name: "mockito-target-inline",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000176 static_libs: [
177 "mockito-target-inline-minus-junit4",
178 "junit",
179 ],
180 sdk_version: "current",
181}
182
183// Same as mockito-target-inline but does not bundle junit
184java_library_static {
185 name: "mockito-target-inline-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000186 static_libs: [
187 "mockito",
188 "dexmaker",
189 "dexmaker-inline-mockmaker",
190 "objenesis",
191 ],
192 libs: ["junit"],
193 sdk_version: "current",
194
195 java_version: "1.7",
196}
197
198// Provides mockito functionality for on-device tests. Allows stubbing of final and static methods.
199// Stubbing static methods is not an official mockito API.
200// Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and
201// libdexmakerjvmtiagent
202java_library_static {
203 name: "mockito-target-extended",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000204 static_libs: [
205 "mockito-target-extended-minus-junit4",
206 "junit",
207 ],
208 sdk_version: "current",
209}
210
211// Same as mockito-target-extended but does not bundle junit
212java_library_static {
213 name: "mockito-target-extended-minus-junit4",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000214 static_libs: [
215 "mockito",
216 "dexmaker",
217 "dexmaker-inline-mockmaker",
218 "dexmaker-extended-mockmaker",
219 "objenesis",
220 ],
221 libs: ["junit"],
222 sdk_version: "current",
223
224 java_version: "1.7",
Philip P. Moltmann43b4c622017-11-20 09:38:54 -0800225}
226
Colin Cross4c609952017-10-18 13:00:01 -0700227java_import {
228 name: "dexmaker-dx-target",
Philip P. Moltmannaa1c0e92018-12-05 08:46:19 -0800229 jars: ["lib/dalvik-dx-9.0.0_r3.jar"],
Colin Cross4c609952017-10-18 13:00:01 -0700230}
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000231
232// dexmaker tests
233java_library_static {
234 name: "dexmaker-tests-lib",
235 sdk_version: "current",
236 srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"],
237
238 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800239 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000240 "dexmaker",
241 "junit",
242 ],
243}
244
245// dexmaker-mockito tests
246java_library_static {
247 name: "dexmaker-mockmaker-tests",
248 sdk_version: "current",
249 srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"],
250
251 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800252 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000253 "dexmaker",
254 "mockito",
255 "junit",
256 "dexmaker-mockmaker",
257 ],
258}
259
260// dexmaker-mockito-inline tests
261java_library_static {
262 name: "dexmaker-inline-mockmaker-tests",
263 sdk_version: "current",
264 srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"],
265
266 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800267 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000268 "dexmaker",
269 "android-support-v4",
270 "mockito",
271 "junit",
272 "dexmaker-inline-mockmaker",
273 ],
274}
275
276// dexmaker-mockito-extended tests
277java_library_static {
278 name: "dexmaker-extended-mockmaker-tests",
279 sdk_version: "current",
280 srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"],
281
282 libs: [
Brett Chabote0caade2019-03-01 14:16:07 -0800283 "androidx.test.rules",
Philip P. Moltmann70402ca2018-08-28 16:57:52 +0000284 "dexmaker",
285 "android-support-v4",
286 "mockito",
287 "junit",
288 "dexmaker-extended-mockmaker",
289 ],
290}
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800291
292/*
293 * To run the tests:
294 * atest DexmakerTests
295 */
296
297android_test {
298 name: "DexmakerTests",
299 sdk_version: "current",
300 static_libs: [
301 "dexmaker-tests-lib",
302 "dexmaker",
Brett Chabote0caade2019-03-01 14:16:07 -0800303 "androidx.test.rules",
Sasha Smundakc71c1f32019-01-29 12:54:20 -0800304 "junit",
305 ],
306}