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 17flags="$@" 18 19# Force relocation otherwise we will just use the already created core.oat/art pair. 20# Note: relocate is the default. 21if [[ "${flags}" == *--no-relocate* ]] ; then 22 echo "Test 119-noimage-patchoat is not intended to run in no-relocate mode." 23 exit 1 24fi 25 26if [[ $@ == *--host* ]]; then 27 false_bin="/bin/false" 28else 29 false_bin="/system/bin/false" 30fi 31 32# Make sure we can run without an image file. 33echo "Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false" 34${RUN} ${flags} ${BPATH} --runtime-option -Xnoimage-dex2oat \ 35 --runtime-option -Xpatchoat:${false_bin} 36return_status1=$? 37 38# Make sure we cannot run without an image file without fallback. 39echo "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. 43return_status2=$((! $?)) 44 45# Make sure we can run with the image file. 46echo "Run -Ximage-dex2oat" 47${RUN} ${flags} ${BPATH} --runtime-option -Ximage-dex2oat 48return_status3=$? 49 50# Make sure we can run with the default settings. 51echo "Run default" 52${RUN} ${flags} ${BPATH} 53return_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