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