| #!/bin/bash |
| # |
| # Copyright 2018 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # make us exit on a failure |
| set -e |
| |
| ASM_JAR="${ANDROID_BUILD_TOP}/prebuilts/misc/common/asm/asm-6.0.jar" |
| INTERMEDIATE_CLASSES=classes-intermediate |
| CLASSES=classes |
| |
| # Create directory for intermediate classes |
| rm -rf "${INTERMEDIATE_CLASSES}" |
| mkdir "${INTERMEDIATE_CLASSES}" |
| |
| # Generate intermediate classes that will allow transform to be applied to test classes |
| JAVAC_ARGS="${JAVAC_ARGS} -source 1.8 -target 1.8 -cp ${ASM_JAR}" |
| ${JAVAC:-javac} ${JAVAC_ARGS} -d ${INTERMEDIATE_CLASSES} $(find src -name '*.java') |
| |
| # Create directory for transformed classes |
| rm -rf "${CLASSES}" |
| mkdir "${CLASSES}" |
| |
| # Run transform |
| for class in ${INTERMEDIATE_CLASSES}/*.class ; do |
| transformed_class=${CLASSES}/$(basename ${class}) |
| ${JAVA:-java} -cp "${ASM_JAR}:${INTERMEDIATE_CLASSES}" transformer.IndyTransformer ${class} ${transformed_class} |
| done |
| |
| # Create DEX |
| DX_FLAGS="${DX_FLAGS} --min-sdk-version=26 --debug --dump-width=1000" |
| ${DX} -JXmx256m --dex ${DX_FLAGS} --output=classes.dex ${CLASSES} |
| |
| # Zip DEX to file name expected by test runner |
| zip ${TEST_NAME:-classes-dex}.jar classes.dex |