You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
3.2 KiB
89 lines
3.2 KiB
#!/bin/bash
|
|
#
|
|
# Copyright 2016 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.
|
|
|
|
plugin=libopenjdkjvmtid.so
|
|
agent=libtiagentd.so
|
|
if [[ "$@" == *"-O"* ]]; then
|
|
agent=libtiagent.so
|
|
plugin=libopenjdkjvmti.so
|
|
fi
|
|
|
|
if [[ "$@" == *"--interpreter"* ]]; then
|
|
# On interpreter we are fully capable of providing the full jvmti api so we
|
|
# have a slightly different expected output.
|
|
# TODO We should really be changing this in the 'check' script.
|
|
patch -s expected-stdout.txt <interpreter-expected.patch
|
|
fi
|
|
|
|
# Provide additional runtime options when running on device.
|
|
extra_runtime_options=
|
|
if [[ "$@" != *"--host"* ]]; then
|
|
if [[ -z "$ANDROID_BUILD_TOP" ]]; then
|
|
echo 'ANDROID_BUILD_TOP environment variable is empty; did you forget to run `lunch`?'
|
|
exit 1
|
|
fi
|
|
|
|
bitness_flag=--32
|
|
if [[ "$@" == *"--64"* ]]; then
|
|
bitness_flag=--64
|
|
fi
|
|
|
|
# Path to native libraries installed on the device for testing purposes.
|
|
test_native_lib_path=$("$ANDROID_BUILD_TOP/art/test/utils/get-device-test-native-lib-path" \
|
|
"$bitness_flag")
|
|
|
|
# The linker configuration used for dalvikvm(64) in the ART APEX requires us
|
|
# to pass the full path to the agent to the runtime when running on device.
|
|
agent=${test_native_lib_path}/${agent}
|
|
|
|
# The above agent path is an absolute one; append the root directory to the
|
|
# library path so that the agent can be found via the `java.library.path`
|
|
# system property (see method `Main.find` in
|
|
# test/909-attach-agent/src-art/Main.java).
|
|
extra_runtime_options="--runtime-option -Djava.library.path=${test_native_lib_path}:/"
|
|
fi
|
|
|
|
export ANDROID_LOG_TAGS='*:f'
|
|
./default-run "$@" --android-runtime-option -Xplugin:${plugin} \
|
|
--android-runtime-option -Xcompiler-option \
|
|
--android-runtime-option --debuggable \
|
|
$extra_runtime_options \
|
|
--args agent:${agent}=909-attach-agent
|
|
return_status1=$?
|
|
|
|
./default-run "$@" --android-runtime-option -Xcompiler-option \
|
|
--android-runtime-option --debuggable \
|
|
$extra_runtime_options \
|
|
--args agent:${agent}=909-attach-agent
|
|
return_status2=$?
|
|
|
|
./default-run "$@" $extra_runtime_options \
|
|
--args agent:${agent}=909-attach-agent \
|
|
--external-log-tags
|
|
return_status3=$?
|
|
|
|
./default-run "$@" $extra_runtime_options \
|
|
--args agent:${agent}=909-attach-agent \
|
|
--args disallow-debugging \
|
|
--external-log-tags
|
|
return_status4=$?
|
|
|
|
# Make sure we don't silently ignore an early failure.
|
|
(exit $return_status1) && \
|
|
(exit $return_status2) && \
|
|
(exit $return_status3) && \
|
|
(exit $return_status4)
|