1*2ffc472cSXin Li// Copyright (C) 2011 The Android Open Source Project 2*2ffc472cSXin Li// 3*2ffc472cSXin Li// Licensed under the Apache License, Version 2.0 (the "License"); 4*2ffc472cSXin Li// you may not use this file except in compliance with the License. 5*2ffc472cSXin Li// You may obtain a copy of the License at 6*2ffc472cSXin Li// 7*2ffc472cSXin Li// http://www.apache.org/licenses/LICENSE-2.0 8*2ffc472cSXin Li// 9*2ffc472cSXin Li// Unless required by applicable law or agreed to in writing, software 10*2ffc472cSXin Li// distributed under the License is distributed on an "AS IS" BASIS, 11*2ffc472cSXin Li// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*2ffc472cSXin Li// See the License for the specific language governing permissions and 13*2ffc472cSXin Li// limitations under the License. 14*2ffc472cSXin Li 15*2ffc472cSXin Lipackage { 16*2ffc472cSXin Li default_applicable_licenses: ["external_dexmaker_license"], 17*2ffc472cSXin Li} 18*2ffc472cSXin Li 19*2ffc472cSXin Li// Added automatically by a large-scale-change that took the approach of 20*2ffc472cSXin Li// 'apply every license found to every target'. While this makes sure we respect 21*2ffc472cSXin Li// every license restriction, it may not be entirely correct. 22*2ffc472cSXin Li// 23*2ffc472cSXin Li// e.g. GPL in an MIT project might only apply to the contrib/ directory. 24*2ffc472cSXin Li// 25*2ffc472cSXin Li// Please consider splitting the single license below into multiple licenses, 26*2ffc472cSXin Li// taking care not to lose any license_kind information, and overriding the 27*2ffc472cSXin Li// default license using the 'licenses: [...]' property on targets as needed. 28*2ffc472cSXin Li// 29*2ffc472cSXin Li// For unused files, consider creating a 'fileGroup' with "//visibility:private" 30*2ffc472cSXin Li// to attach the license to, and including a comment whether the files may be 31*2ffc472cSXin Li// used in the current project. 32*2ffc472cSXin Li// 33*2ffc472cSXin Li// large-scale-change included anything that looked like it might be a license 34*2ffc472cSXin Li// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 35*2ffc472cSXin Li// 36*2ffc472cSXin Li// Please consider removing redundant or irrelevant files from 'license_text:'. 37*2ffc472cSXin Li// See: http://go/android-license-faq 38*2ffc472cSXin Lilicense { 39*2ffc472cSXin Li name: "external_dexmaker_license", 40*2ffc472cSXin Li visibility: [":__subpackages__"], 41*2ffc472cSXin Li license_kinds: [ 42*2ffc472cSXin Li "SPDX-license-identifier-Apache-2.0", 43*2ffc472cSXin Li "SPDX-license-identifier-MIT", 44*2ffc472cSXin Li ], 45*2ffc472cSXin Li license_text: [ 46*2ffc472cSXin Li "COPYING", 47*2ffc472cSXin Li "LICENSE", 48*2ffc472cSXin Li "NOTICE", 49*2ffc472cSXin Li ], 50*2ffc472cSXin Li} 51*2ffc472cSXin Li 52*2ffc472cSXin Lijava_library_static { 53*2ffc472cSXin Li name: "dexmaker", 54*2ffc472cSXin Li 55*2ffc472cSXin Li // Include all the java files. 56*2ffc472cSXin Li srcs: ["dexmaker/src/main/java/**/*.java"], 57*2ffc472cSXin Li 58*2ffc472cSXin Li static_libs: [ 59*2ffc472cSXin Li "dexmaker-dx-target", 60*2ffc472cSXin Li ], 61*2ffc472cSXin Li 62*2ffc472cSXin Li sdk_version: "core_current", 63*2ffc472cSXin Li 64*2ffc472cSXin Li errorprone: { 65*2ffc472cSXin Li javacflags: [ 66*2ffc472cSXin Li "-Xep:EmptyTopLevelDeclaration:WARN", 67*2ffc472cSXin Li "-Xep:ReturnValueIgnored:WARN", 68*2ffc472cSXin Li ], 69*2ffc472cSXin Li }, 70*2ffc472cSXin Li} 71*2ffc472cSXin Li 72*2ffc472cSXin Li// Build Dexmaker's MockMaker, a plugin to Mockito 73*2ffc472cSXin Lijava_library_static { 74*2ffc472cSXin Li name: "dexmaker-mockmaker", 75*2ffc472cSXin Li sdk_version: "core_current", 76*2ffc472cSXin Li srcs: ["dexmaker-mockito/src/main/java/**/*.java"], 77*2ffc472cSXin Li java_resource_dirs: ["dexmaker-mockito/src/main/resources"], 78*2ffc472cSXin Li libs: [ 79*2ffc472cSXin Li "dexmaker", 80*2ffc472cSXin Li "mockito-api", 81*2ffc472cSXin Li ], 82*2ffc472cSXin Li} 83*2ffc472cSXin Li 84*2ffc472cSXin Li// Build dispatcher for Dexmaker's inline MockMaker 85*2ffc472cSXin Lijava_library_static { 86*2ffc472cSXin Li name: "dexmaker-inline-mockmaker-dispatcher", 87*2ffc472cSXin Li sdk_version: "core_current", 88*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline-dispatcher/src/main/java/**/*.java"], 89*2ffc472cSXin Li} 90*2ffc472cSXin Li 91*2ffc472cSXin Li// Defaults for agent code. 92*2ffc472cSXin Licc_defaults { 93*2ffc472cSXin Li name: "dexmaker_agent_defaults", 94*2ffc472cSXin Li 95*2ffc472cSXin Li // Compile with the NDK, so that the agent can be used in apps. 96*2ffc472cSXin Li sdk_version: "current", 97*2ffc472cSXin Li stl: "libc++_static", 98*2ffc472cSXin Li 99*2ffc472cSXin Li host_supported: false, 100*2ffc472cSXin Li device_supported: true, 101*2ffc472cSXin Li 102*2ffc472cSXin Li rtti: true, 103*2ffc472cSXin Li 104*2ffc472cSXin Li cflags: [ 105*2ffc472cSXin Li "-std=c++11", 106*2ffc472cSXin Li "-Wall", 107*2ffc472cSXin Li "-Werror", 108*2ffc472cSXin Li "-Wno-unused-parameter", 109*2ffc472cSXin Li "-Wno-shift-count-overflow", 110*2ffc472cSXin Li "-Wno-error=non-virtual-dtor", 111*2ffc472cSXin Li "-Wno-sign-compare", 112*2ffc472cSXin Li "-Wno-switch", 113*2ffc472cSXin Li "-Wno-missing-braces", 114*2ffc472cSXin Li ], 115*2ffc472cSXin Li 116*2ffc472cSXin Li static_libs: [ 117*2ffc472cSXin Li "slicer_ndk", 118*2ffc472cSXin Li ], 119*2ffc472cSXin Li 120*2ffc472cSXin Li shared_libs: [ 121*2ffc472cSXin Li "libz", 122*2ffc472cSXin Li ], 123*2ffc472cSXin Li 124*2ffc472cSXin Li header_libs: [ 125*2ffc472cSXin Li "jni_headers", 126*2ffc472cSXin Li "libopenjdkjvmti_headers", 127*2ffc472cSXin Li ], 128*2ffc472cSXin Li} 129*2ffc472cSXin Li 130*2ffc472cSXin Li// Build agent for Dexmaker's inline MockMaker 131*2ffc472cSXin Licc_library_shared { 132*2ffc472cSXin Li name: "libdexmakerjvmtiagent", 133*2ffc472cSXin Li defaults: [ 134*2ffc472cSXin Li "dexmaker_agent_defaults", 135*2ffc472cSXin Li ], 136*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline/src/main/jni/**/*.cc"], 137*2ffc472cSXin Li min_sdk_version: "29", 138*2ffc472cSXin Li} 139*2ffc472cSXin Li 140*2ffc472cSXin Li// Build agent for Dexmaker's extended MockMaker 141*2ffc472cSXin Licc_library_shared { 142*2ffc472cSXin Li name: "libstaticjvmtiagent", 143*2ffc472cSXin Li defaults: [ 144*2ffc472cSXin Li "dexmaker_agent_defaults", 145*2ffc472cSXin Li ], 146*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline-extended/src/main/jni/**/*.cc"], 147*2ffc472cSXin Li min_sdk_version: "29", 148*2ffc472cSXin Li} 149*2ffc472cSXin Li 150*2ffc472cSXin Li// Build agent for Dexmaker's inline tests 151*2ffc472cSXin Licc_library_shared { 152*2ffc472cSXin Li name: "libmultiplejvmtiagentsinterferenceagent", 153*2ffc472cSXin Li defaults: [ 154*2ffc472cSXin Li "dexmaker_agent_defaults", 155*2ffc472cSXin Li ], 156*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline-tests/src/main/jni/**/*.cc"], 157*2ffc472cSXin Li} 158*2ffc472cSXin Li 159*2ffc472cSXin Li// Build Dexmaker's inline MockMaker, a plugin to Mockito 160*2ffc472cSXin Lijava_library_static { 161*2ffc472cSXin Li name: "dexmaker-inline-mockmaker", 162*2ffc472cSXin Li sdk_version: "current", 163*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline/src/main/java/**/*.java"], 164*2ffc472cSXin Li java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"], 165*2ffc472cSXin Li libs: [ 166*2ffc472cSXin Li "dexmaker", 167*2ffc472cSXin Li "mockito-api", 168*2ffc472cSXin Li ], 169*2ffc472cSXin Li required: ["libdexmakerjvmtiagent"], 170*2ffc472cSXin Li} 171*2ffc472cSXin Li 172*2ffc472cSXin Li// Build Dexmaker's extended MockMaker, a plugin to Mockito 173*2ffc472cSXin Lijava_library_static { 174*2ffc472cSXin Li name: "dexmaker-extended-mockmaker", 175*2ffc472cSXin Li sdk_version: "current", 176*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline-extended/src/main/java/**/*.java"], 177*2ffc472cSXin Li 178*2ffc472cSXin Li java_resource_dirs: ["dexmaker-mockito-inline/src/main/resources"], 179*2ffc472cSXin Li 180*2ffc472cSXin Li libs: [ 181*2ffc472cSXin Li "dexmaker", 182*2ffc472cSXin Li "mockito-api", 183*2ffc472cSXin Li "dexmaker-inline-mockmaker", 184*2ffc472cSXin Li ], 185*2ffc472cSXin Li required: [ 186*2ffc472cSXin Li "libdexmakerjvmtiagent", 187*2ffc472cSXin Li "libstaticjvmtiagent", 188*2ffc472cSXin Li ], 189*2ffc472cSXin Li 190*2ffc472cSXin Li errorprone: { 191*2ffc472cSXin Li javacflags: [ 192*2ffc472cSXin Li "-Xep:ReturnValueIgnored:WARN", 193*2ffc472cSXin Li "-Xep:InfiniteRecursion:WARN", 194*2ffc472cSXin Li ], 195*2ffc472cSXin Li }, 196*2ffc472cSXin Li} 197*2ffc472cSXin Li 198*2ffc472cSXin Li// Provides mockito functionality for on-device tests. Does not allow stubbing of final or static 199*2ffc472cSXin Li// methods. 200*2ffc472cSXin Lijava_library_static { 201*2ffc472cSXin Li name: "mockito-target", 202*2ffc472cSXin Li static_libs: [ 203*2ffc472cSXin Li "mockito-target-minus-junit4", 204*2ffc472cSXin Li "junit", 205*2ffc472cSXin Li ], 206*2ffc472cSXin Li sdk_version: "core_current", 207*2ffc472cSXin Li} 208*2ffc472cSXin Li 209*2ffc472cSXin Li// Same as mockito-target but does not bundle junit 210*2ffc472cSXin Lijava_library_static { 211*2ffc472cSXin Li name: "mockito-target-minus-junit4", 212*2ffc472cSXin Li static_libs: [ 213*2ffc472cSXin Li "mockito", 214*2ffc472cSXin Li "dexmaker", 215*2ffc472cSXin Li "dexmaker-mockmaker", 216*2ffc472cSXin Li "objenesis", 217*2ffc472cSXin Li ], 218*2ffc472cSXin Li libs: ["junit"], 219*2ffc472cSXin Li sdk_version: "core_current", 220*2ffc472cSXin Li 221*2ffc472cSXin Li java_version: "1.7", 222*2ffc472cSXin Li} 223*2ffc472cSXin Li 224*2ffc472cSXin Li// Provides mockito functionality for on-device tests. Allows stubbing of final methods. Does not 225*2ffc472cSXin Li// allow stubbing of static methods. 226*2ffc472cSXin Li// Project depending on this also need to depend on the static JNI library libdexmakerjvmtiagent 227*2ffc472cSXin Lijava_library_static { 228*2ffc472cSXin Li name: "mockito-target-inline", 229*2ffc472cSXin Li static_libs: [ 230*2ffc472cSXin Li "mockito-target-inline-minus-junit4", 231*2ffc472cSXin Li "junit", 232*2ffc472cSXin Li ], 233*2ffc472cSXin Li sdk_version: "current", 234*2ffc472cSXin Li} 235*2ffc472cSXin Li 236*2ffc472cSXin Li// Same as mockito-target-inline but does not bundle junit 237*2ffc472cSXin Lijava_library_static { 238*2ffc472cSXin Li name: "mockito-target-inline-minus-junit4", 239*2ffc472cSXin Li static_libs: [ 240*2ffc472cSXin Li "mockito", 241*2ffc472cSXin Li "dexmaker", 242*2ffc472cSXin Li "dexmaker-inline-mockmaker", 243*2ffc472cSXin Li "objenesis", 244*2ffc472cSXin Li ], 245*2ffc472cSXin Li libs: ["junit"], 246*2ffc472cSXin Li sdk_version: "current", 247*2ffc472cSXin Li 248*2ffc472cSXin Li java_version: "1.7", 249*2ffc472cSXin Li} 250*2ffc472cSXin Li 251*2ffc472cSXin Li// Provides mockito functionality for on-device tests. Allows stubbing of final and static methods. 252*2ffc472cSXin Li// Stubbing static methods is not an official mockito API. 253*2ffc472cSXin Li// Project depending on this also need to depend on the static JNI libraries libstaticjvmtiagent and 254*2ffc472cSXin Li// libdexmakerjvmtiagent 255*2ffc472cSXin Lijava_library_static { 256*2ffc472cSXin Li name: "mockito-target-extended", 257*2ffc472cSXin Li static_libs: [ 258*2ffc472cSXin Li "mockito-target-extended-minus-junit4", 259*2ffc472cSXin Li "junit", 260*2ffc472cSXin Li ], 261*2ffc472cSXin Li sdk_version: "current", 262*2ffc472cSXin Li} 263*2ffc472cSXin Li 264*2ffc472cSXin Li// Same as mockito-target-extended but does not bundle junit 265*2ffc472cSXin Lijava_library_static { 266*2ffc472cSXin Li name: "mockito-target-extended-minus-junit4", 267*2ffc472cSXin Li static_libs: [ 268*2ffc472cSXin Li "mockito", 269*2ffc472cSXin Li "dexmaker", 270*2ffc472cSXin Li "dexmaker-inline-mockmaker", 271*2ffc472cSXin Li "dexmaker-extended-mockmaker", 272*2ffc472cSXin Li "objenesis", 273*2ffc472cSXin Li ], 274*2ffc472cSXin Li libs: ["junit"], 275*2ffc472cSXin Li sdk_version: "current", 276*2ffc472cSXin Li 277*2ffc472cSXin Li java_version: "1.7", 278*2ffc472cSXin Li} 279*2ffc472cSXin Li 280*2ffc472cSXin Lijava_import { 281*2ffc472cSXin Li name: "dexmaker-dx-target", 282*2ffc472cSXin Li jars: ["lib/dalvik-dx-9.0.0_r3.jar"], 283*2ffc472cSXin Li} 284*2ffc472cSXin Li 285*2ffc472cSXin Li// dexmaker tests 286*2ffc472cSXin Lijava_library_static { 287*2ffc472cSXin Li name: "dexmaker-tests-lib", 288*2ffc472cSXin Li sdk_version: "current", 289*2ffc472cSXin Li srcs: ["dexmaker-tests/src/androidTest/java/**/*.java"], 290*2ffc472cSXin Li 291*2ffc472cSXin Li libs: [ 292*2ffc472cSXin Li "androidx.test.rules", 293*2ffc472cSXin Li "dexmaker", 294*2ffc472cSXin Li "junit", 295*2ffc472cSXin Li ], 296*2ffc472cSXin Li 297*2ffc472cSXin Li errorprone: { 298*2ffc472cSXin Li javacflags: [ 299*2ffc472cSXin Li "-Xep:ReturnValueIgnored:WARN", 300*2ffc472cSXin Li ], 301*2ffc472cSXin Li }, 302*2ffc472cSXin Li} 303*2ffc472cSXin Li 304*2ffc472cSXin Li// dexmaker-mockito tests 305*2ffc472cSXin Lijava_library_static { 306*2ffc472cSXin Li name: "dexmaker-mockmaker-tests", 307*2ffc472cSXin Li sdk_version: "current", 308*2ffc472cSXin Li srcs: ["dexmaker-mockito-tests/src/main/java/**/*.java"], 309*2ffc472cSXin Li 310*2ffc472cSXin Li libs: [ 311*2ffc472cSXin Li "androidx.test.rules", 312*2ffc472cSXin Li "dexmaker", 313*2ffc472cSXin Li "mockito", 314*2ffc472cSXin Li "junit", 315*2ffc472cSXin Li "dexmaker-mockmaker", 316*2ffc472cSXin Li ], 317*2ffc472cSXin Li 318*2ffc472cSXin Li errorprone: { 319*2ffc472cSXin Li javacflags: [ 320*2ffc472cSXin Li "-Xep:ReturnValueIgnored:WARN", 321*2ffc472cSXin Li ], 322*2ffc472cSXin Li }, 323*2ffc472cSXin Li} 324*2ffc472cSXin Li 325*2ffc472cSXin Li// dexmaker-mockito-inline tests 326*2ffc472cSXin Lijava_library_static { 327*2ffc472cSXin Li name: "dexmaker-inline-mockmaker-tests", 328*2ffc472cSXin Li sdk_version: "current", 329*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline-tests/src/main/java/**/*.java"], 330*2ffc472cSXin Li 331*2ffc472cSXin Li libs: [ 332*2ffc472cSXin Li "androidx.test.rules", 333*2ffc472cSXin Li "dexmaker", 334*2ffc472cSXin Li "android-support-v4", 335*2ffc472cSXin Li "mockito", 336*2ffc472cSXin Li "junit", 337*2ffc472cSXin Li "dexmaker-inline-mockmaker", 338*2ffc472cSXin Li ], 339*2ffc472cSXin Li} 340*2ffc472cSXin Li 341*2ffc472cSXin Li// dexmaker-mockito-extended tests 342*2ffc472cSXin Lijava_library_static { 343*2ffc472cSXin Li name: "dexmaker-extended-mockmaker-tests", 344*2ffc472cSXin Li sdk_version: "current", 345*2ffc472cSXin Li srcs: ["dexmaker-mockito-inline-extended-tests/src/main/java/**/*.java"], 346*2ffc472cSXin Li 347*2ffc472cSXin Li libs: [ 348*2ffc472cSXin Li "androidx.test.rules", 349*2ffc472cSXin Li "dexmaker", 350*2ffc472cSXin Li "android-support-v4", 351*2ffc472cSXin Li "mockito", 352*2ffc472cSXin Li "junit", 353*2ffc472cSXin Li "dexmaker-extended-mockmaker", 354*2ffc472cSXin Li ], 355*2ffc472cSXin Li} 356*2ffc472cSXin Li 357*2ffc472cSXin Li/* 358*2ffc472cSXin Li * To run the tests: 359*2ffc472cSXin Li * atest DexmakerTests 360*2ffc472cSXin Li */ 361*2ffc472cSXin Li 362*2ffc472cSXin Liandroid_test { 363*2ffc472cSXin Li name: "DexmakerTests", 364*2ffc472cSXin Li sdk_version: "current", 365*2ffc472cSXin Li static_libs: [ 366*2ffc472cSXin Li "dexmaker-tests-lib", 367*2ffc472cSXin Li "dexmaker", 368*2ffc472cSXin Li "androidx.test.rules", 369*2ffc472cSXin Li "junit", 370*2ffc472cSXin Li ], 371*2ffc472cSXin Li} 372