blob: 497dc4ad8842a6448a20d9d2ea6f48213e11c333 [file] [log] [blame]
#!/bin/bash
#
# Copyright (C) 2014 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.
flags="$@"
# Force relocation otherwise we will just use the already created core.oat/art pair.
# Note: relocate is the default.
if [[ "${flags}" == *--no-relocate* ]] ; then
echo "Test 119-noimage-patchoat is not intended to run in no-relocate mode."
exit 1
fi
if [[ $@ == *--host* ]]; then
false_bin="/bin/false"
else
false_bin="/system/bin/false"
fi
# Make sure we can run without an image file.
echo "Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false"
${RUN} ${flags} ${BPATH} --runtime-option -Xnoimage-dex2oat \
--runtime-option -Xpatchoat:${false_bin}
return_status1=$?
# Make sure we cannot run without an image file without fallback.
echo "Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false -Xno-dex-file-fallback"
${RUN} ${flags} ${BPATH} --runtime-option -Xnoimage-dex2oat \
--runtime-option -Xpatchoat:${false_bin} --runtime-option -Xno-dex-file-fallback
# This second run is expected to fail: invert the return status of the previous command.
return_status2=$((! $?))
# Make sure we can run with the image file.
echo "Run -Ximage-dex2oat"
${RUN} ${flags} ${BPATH} --runtime-option -Ximage-dex2oat
return_status3=$?
# Make sure we can run with the default settings.
echo "Run default"
${RUN} ${flags} ${BPATH}
return_status4=$?
# Make sure we don't silently ignore an early failure.
(exit $return_status1) && (exit $return_status2) && (exit $return_status3) && (exit $return_status4)