diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/run-prebuilt-libjdwp-tests.sh | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/tools/run-prebuilt-libjdwp-tests.sh b/tools/run-prebuilt-libjdwp-tests.sh new file mode 100755 index 0000000000..46c2a153a7 --- /dev/null +++ b/tools/run-prebuilt-libjdwp-tests.sh @@ -0,0 +1,112 @@ +#!/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/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" |