1 #!/bin/bash 2 # 3 # Copyright (C) 2014 The Android Open Source Project 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 flags="$@" 18 19 # Force relocation otherwise we will just use the already created core.oat/art pair. 20 # Note: relocate is the default. 21 if [[ "${flags}" == *--no-relocate* ]] ; then 22 echo "Test 119-noimage-patchoat is not intended to run in no-relocate mode." 23 exit 1 24 fi 25 26 if [[ $@ == *--host* ]]; then 27 false_bin="/bin/false" 28 else 29 false_bin="/system/bin/false" 30 fi 31 32 # Make sure we can run without an image file. 33 echo "Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false" 34 ${RUN} ${flags} ${BPATH} --runtime-option -Xnoimage-dex2oat \ 35 --runtime-option -Xpatchoat:${false_bin} 36 return_status1=$? 37 38 # Make sure we cannot run without an image file without fallback. 39 echo "Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false -Xno-dex-file-fallback" 40 ${RUN} ${flags} ${BPATH} --runtime-option -Xnoimage-dex2oat \ 41 --runtime-option -Xpatchoat:${false_bin} --runtime-option -Xno-dex-file-fallback 42 # This second run is expected to fail: invert the return status of the previous command. 43 return_status2=$((! $?)) 44 45 # Make sure we can run with the image file. 46 echo "Run -Ximage-dex2oat" 47 ${RUN} ${flags} ${BPATH} --runtime-option -Ximage-dex2oat 48 return_status3=$? 49 50 # Make sure we can run with the default settings. 51 echo "Run default" 52 ${RUN} ${flags} ${BPATH} 53 return_status4=$? 54 55 # Make sure we don't silently ignore an early failure. 56 (exit $return_status1) && (exit $return_status2) && (exit $return_status3) && (exit $return_status4) 57