• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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",
23    ],
24
25    sdk_version: "core_current",
26}
27
28// Build Dexmaker's MockMaker, a plugin to Mockito
29java_library_static {
30    name: "dexmaker-mockmaker",
31    sdk_version: "core_current",
32    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
40// Build dispatcher for Dexmaker's inline MockMaker
41java_library_static {
42    name: "dexmaker-inline-mockmaker-dispatcher",
43    sdk_version: "core_current",
44    srcs: ["dexmaker-mockito-inline-dispatcher/src/main/java/**/*.java"],
45}
46
47// 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",
54
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: [
73        "slicer_ndk",
74    ],
75
76    shared_libs: [
77        "libz",
78    ],
79
80    header_libs: [
81	    "libopenjdkjvmti_headers",
82    ],
83}
84
85// 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
94// 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
103// Build agent for Dexmaker's inline tests
104cc_library_shared {
105    name: "libmultiplejvmtiagentsinterferenceagent",
106    defaults: [
107        "dexmaker_agent_defaults",
108    ],
109    srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"],
110}
111
112// Build Dexmaker's inline MockMaker, a plugin to Mockito
113java_library_static {
114    name: "dexmaker-inline-mockmaker",
115    sdk_version: "current",
116    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"],
123}
124
125// 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",
140        "libstaticjvmtiagent"
141    ],
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",
148    static_libs: [
149        "mockito-target-minus-junit4",
150        "junit",
151    ],
152    sdk_version: "core_current",
153}
154
155// Same as mockito-target but does not bundle junit
156java_library_static {
157    name: "mockito-target-minus-junit4",
158    static_libs: [
159        "mockito",
160        "dexmaker",
161        "dexmaker-mockmaker",
162        "objenesis",
163    ],
164    libs: ["junit"],
165    sdk_version: "core_current",
166
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",
175    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",
185    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",
203    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",
213    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",
224}
225
226java_import {
227    name: "dexmaker-dx-target",
228    jars: ["lib/dalvik-dx-9.0.0_r3.jar"],
229}
230
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: [
238        "androidx.test.rules",
239        "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: [
251        "androidx.test.rules",
252        "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: [
266        "androidx.test.rules",
267        "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: [
282        "androidx.test.rules",
283        "dexmaker",
284        "android-support-v4",
285        "mockito",
286        "junit",
287        "dexmaker-extended-mockmaker",
288    ],
289}
290
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",
302        "androidx.test.rules",
303        "junit",
304    ],
305}
306