• 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: "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    include_dirs: [
81        "art/openjdkjvmti/include",
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    no_framework_libs: true,
149    static_libs: [
150        "mockito-target-minus-junit4",
151        "junit",
152    ],
153    sdk_version: "core_current",
154}
155
156// Same as mockito-target but does not bundle junit
157java_library_static {
158    name: "mockito-target-minus-junit4",
159    no_framework_libs: true,
160    static_libs: [
161        "mockito",
162        "dexmaker",
163        "dexmaker-mockmaker",
164        "objenesis",
165    ],
166    libs: ["junit"],
167    sdk_version: "core_current",
168
169    java_version: "1.7",
170}
171
172// Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not
173// allow stubbing of static methods.
174// Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent
175java_library_static {
176    name: "mockito-target-inline",
177    no_framework_libs: true,
178    static_libs: [
179        "mockito-target-inline-minus-junit4",
180        "junit",
181    ],
182    sdk_version: "current",
183}
184
185// Same as mockito-target-inline but does not bundle junit
186java_library_static {
187    name: "mockito-target-inline-minus-junit4",
188    no_framework_libs: true,
189    static_libs: [
190        "mockito",
191        "dexmaker",
192        "dexmaker-inline-mockmaker",
193        "objenesis",
194    ],
195    libs: ["junit"],
196    sdk_version: "current",
197
198    java_version: "1.7",
199}
200
201// Provides mockito functionality for on-device tests. Allows stubbing of final and static methods.
202// Stubbing static methods is not an official mockito API.
203// Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and
204// libdexmakerjvmtiagent
205java_library_static {
206    name: "mockito-target-extended",
207    no_framework_libs: true,
208    static_libs: [
209        "mockito-target-extended-minus-junit4",
210        "junit",
211    ],
212    sdk_version: "current",
213}
214
215// Same as mockito-target-extended but does not bundle junit
216java_library_static {
217    name: "mockito-target-extended-minus-junit4",
218    no_framework_libs: true,
219    static_libs: [
220        "mockito",
221        "dexmaker",
222        "dexmaker-inline-mockmaker",
223        "dexmaker-extended-mockmaker",
224        "objenesis",
225    ],
226    libs: ["junit"],
227    sdk_version: "current",
228
229    java_version: "1.7",
230}
231
232java_import {
233    name: "dexmaker-dx-target",
234    jars: ["lib/dalvik-dx-9.0.0_r3.jar"],
235}
236
237// dexmaker tests
238java_library_static {
239    name: "dexmaker-tests-lib",
240    sdk_version: "current",
241    srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"],
242
243    libs: [
244        "androidx.test.rules",
245        "dexmaker",
246        "junit",
247    ],
248}
249
250// dexmaker-mockito tests
251java_library_static {
252    name: "dexmaker-mockmaker-tests",
253    sdk_version: "current",
254    srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"],
255
256    libs: [
257        "androidx.test.rules",
258        "dexmaker",
259        "mockito",
260        "junit",
261        "dexmaker-mockmaker",
262    ],
263}
264
265// dexmaker-mockito-inline tests
266java_library_static {
267    name: "dexmaker-inline-mockmaker-tests",
268    sdk_version: "current",
269    srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"],
270
271    libs: [
272        "androidx.test.rules",
273        "dexmaker",
274        "android-support-v4",
275        "mockito",
276        "junit",
277        "dexmaker-inline-mockmaker",
278    ],
279}
280
281// dexmaker-mockito-extended tests
282java_library_static {
283    name: "dexmaker-extended-mockmaker-tests",
284    sdk_version: "current",
285    srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"],
286
287    libs: [
288        "androidx.test.rules",
289        "dexmaker",
290        "android-support-v4",
291        "mockito",
292        "junit",
293        "dexmaker-extended-mockmaker",
294    ],
295}
296
297/*
298 * To run the tests:
299 *   atest DexmakerTests
300 */
301
302android_test {
303    name: "DexmakerTests",
304    sdk_version: "current",
305    static_libs: [
306        "dexmaker-tests-lib",
307        "dexmaker",
308        "androidx.test.rules",
309        "junit",
310    ],
311}
312