113 lines
3.1 KiB
Bash
Executable File
113 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright (C) 2017 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.
|
|
|
|
if [[ ! -d libcore ]]; then
|
|
echo "Script needs to be run at the root of the android tree"
|
|
exit 1
|
|
fi
|
|
|
|
source build/envsetup.sh >&/dev/null # for get_build_var, setpaths
|
|
setpaths # include platform prebuilt java, javac, etc in $PATH.
|
|
|
|
if [[ `uname` != 'Linux' ]]; then
|
|
echo "Script cannot be run on $(uname). It is Linux only."
|
|
exit 2
|
|
fi
|
|
|
|
jdwp_path=${ANDROID_JAVA_HOME}/jre/lib/amd64/libjdwp.so
|
|
if [[ ! -f $jdwp_path ]]; then
|
|
echo "Unable to find prebuilts libjdwp.so! Did the version change from jdk8?"
|
|
exit 3
|
|
fi
|
|
|
|
args=("$@")
|
|
debug="no"
|
|
has_variant="no"
|
|
has_mode="no"
|
|
|
|
while true; do
|
|
if [[ $1 == "--debug" ]]; then
|
|
debug="yes"
|
|
shift
|
|
elif [[ "$1" == --mode=* ]]; then
|
|
has_mode="yes"
|
|
if [[ $1 != "--mode=host" ]]; then
|
|
# Just print out an actually helpful error message.
|
|
echo "Only host tests can be run against prebuilt libjdwp"
|
|
exit 4
|
|
fi
|
|
shift
|
|
elif [[ $1 == --variant=* ]]; then
|
|
has_variant="yes"
|
|
if [[ $1 != "--variant=x64" ]] && [[ $1 != "--variant=X64" ]]; then
|
|
# Just print out an actually helpful error message.
|
|
echo "Only 64bit runs can be tested against the prebuilt libjdwp!"
|
|
exit 5
|
|
fi
|
|
shift
|
|
elif [[ "$1" == "" ]]; then
|
|
break
|
|
else
|
|
shift
|
|
fi
|
|
done
|
|
|
|
if [[ "$has_mode" = "no" ]]; then
|
|
args+=(--mode=host)
|
|
fi
|
|
|
|
if [[ "$has_variant" = "no" ]]; then
|
|
args+=(--variant=X64)
|
|
fi
|
|
|
|
wrapper_name=""
|
|
plugin=""
|
|
if [[ "$debug" = "yes" ]]; then
|
|
wrapper_name=libwrapagentpropertiesd
|
|
plugin="$ANDROID_HOST_OUT/lib64/libopenjdkjvmtid.so"
|
|
else
|
|
wrapper_name=libwrapagentproperties
|
|
plugin="$ANDROID_HOST_OUT/lib64/libopenjdkjvmti.so"
|
|
fi
|
|
wrapper=$ANDROID_HOST_OUT/lib64/${wrapper_name}.so
|
|
|
|
if [[ ! -f $wrapper ]]; then
|
|
echo "need to build $wrapper to run prebuild-libjdwp-tests!"
|
|
echo "m -j40 ${wrapper/.so/}"
|
|
exit 6
|
|
fi
|
|
|
|
if [[ ! -f $plugin ]]; then
|
|
echo "jvmti plugin not built!"
|
|
exit 7
|
|
fi
|
|
|
|
props_path=$PWD/art/tools/libjdwp-compat.props
|
|
expect_path=$PWD/art/tools/prebuilt_libjdwp_art_failures.txt
|
|
|
|
function verbose_run() {
|
|
echo "$@"
|
|
env "$@"
|
|
}
|
|
|
|
verbose_run LD_LIBRARY_PATH="$(dirname $jdwp_path):$LD_LIBRARY_PATH" \
|
|
./art/tools/run-jdwp-tests.sh \
|
|
"${args[@]}" \
|
|
"-Xplugin:$plugin" \
|
|
--agent-wrapper "${wrapper}"="${props_path}" \
|
|
--jdwp-path "$jdwp_path" \
|
|
--expectations "$expect_path"
|