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