From a71685bd8f1b31df8a1cf5f9bcead4cada163c8e Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Fri, 1 May 2020 16:04:42 +0800 Subject: [PATCH] shell cleanup: auto set JDKx_HOME var --- scripts/integration-test.sh | 17 +------------ scripts/prepare-jdk.sh | 51 +++++++++++++++++++++---------------- scripts/run-agent-test.sh | 6 ++--- 3 files changed, 33 insertions(+), 41 deletions(-) diff --git a/scripts/integration-test.sh b/scripts/integration-test.sh index 45c7611e..e66f5973 100755 --- a/scripts/integration-test.sh +++ b/scripts/integration-test.sh @@ -7,29 +7,14 @@ export TTL_CI_TEST_MODE=true source ./prepare-jdk.sh source ./common_build.sh "${1:-}" - # default jdk 11, do build and test switch_to_jdk 11 headInfo "test with Java 11: $JAVA_HOME" # run junit test in run-agent-test.sh runCmd ./scripts/run-agent-test.sh "${1:-}" - -java_home_var_names=( - JDK6_HOME - JDK7_HOME - JDK8_HOME - - JDK9_HOME - JDK10_HOME - - JDK12_HOME - JDK13_HOME - JDK14_HOME - JDK15_HOME -) - # test multi-version java home env +# shellcheck disable=SC2154 for jhm_var_name in "${java_home_var_names[@]}"; do export JAVA_HOME="${!jhm_var_name}" diff --git a/scripts/prepare-jdk.sh b/scripts/prepare-jdk.sh index 1d6be57e..07890a95 100644 --- a/scripts/prepare-jdk.sh +++ b/scripts/prepare-jdk.sh @@ -34,33 +34,40 @@ jdks_install_by_sdkman=( 14.0.1-zulu 15.ea.20-open ) +java_home_var_names=() -export JDK6_HOME="${JDK6_HOME:-/usr/lib/jvm/java-6-openjdk-amd64}" -export JDK7_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[0]}" -export JDK8_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[1]}" -export JDK9_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[2]}" -export JDK10_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[3]}" -export JDK11_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[4]}" -export JDK12_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[5]}" -export JDK13_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[6]}" -export JDK14_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[7]}" -export JDK15_HOME="$SDKMAN_CANDIDATES_DIR/java/${jdks_install_by_sdkman[8]}" +exportJdkVarAndInstall() { + JDK6_HOME="${JDK6_HOME:-/usr/lib/jvm/java-6-openjdk-amd64}" + java_home_var_names=(JDK6_HOME) + local i + for (( i = 0; i < ${#jdks_install_by_sdkman[@]}; i++ )); do + local jdkVersion=$((i + 7)) + local jdkNameOfSdkman="${jdks_install_by_sdkman[i]}" + local jdkHomePath="$SDKMAN_CANDIDATES_DIR/java/$jdkNameOfSdkman" -switch_to_jdk() { - local javaHome="JDK${1}_HOME" - export JAVA_HOME=${!javaHome} + # export JDK7_HOME ~ JDK1x_HOME + local jdkHomeVarName="JDK${jdkVersion}_HOME" + eval "$jdkHomeVarName='${jdkHomePath}'" + java_home_var_names=("${java_home_var_names[@]}" "$jdkHomeVarName") - [ -n "$JAVA_HOME" ] || die "jdk $1 env not found: $javaHome" - [ -e "$JAVA_HOME" ] || die "jdk $1 not existed: $JAVA_HOME" - [ -d "$JAVA_HOME" ] || die "jdk $1 is not directory: $JAVA_HOME" + # install jdk by sdkman + if [ ! -d "$jdkHomePath" ]; then + runCmd sdk install java "$jdkNameOfSdkman" || die "fail to install jdk $jdkNameOfSdkman by sdkman" + fi + done + + echo "prepare jdks: ${java_home_var_names[*]}" + ls -la "$SDKMAN_CANDIDATES_DIR/java/" } +exportJdkVarAndInstall -for _jdk__ in "${jdks_install_by_sdkman[@]}"; do - if [ ! -d "$SDKMAN_CANDIDATES_DIR/java/$_jdk__" ]; then - runCmd sdk install java "$_jdk__" || die "fail to install jdk $_jdk__" - fi -done +switch_to_jdk() { + local javaHomeVarName="JDK${1}_HOME" + export JAVA_HOME="${!javaHomeVarName}" -ls -la "$SDKMAN_CANDIDATES_DIR/java/" + [ -n "$JAVA_HOME" ] || die "jdk $1 env not found: $javaHomeVarName" + [ -e "$JAVA_HOME" ] || die "jdk $1 not existed: $JAVA_HOME" + [ -d "$JAVA_HOME" ] || die "jdk $1 is not directory: $JAVA_HOME" +} diff --git a/scripts/run-agent-test.sh b/scripts/run-agent-test.sh index 136f6b34..a7f754c4 100755 --- a/scripts/run-agent-test.sh +++ b/scripts/run-agent-test.sh @@ -8,13 +8,13 @@ source ./common_build.sh # do heavy operation first, descrease mvn operation count. runCmd mvnBuildJar -blueEcho "Run unit test under ttl agent, include check for ExecutorService, ForkJoinPool" +blueEcho 'Run unit test under ttl agent, include check for ExecutorService, ForkJoinPool' runCmd "${JAVA_CMD[@]}" -cp "$(getClasspathWithoutTtlJar)" \ "-javaagent:$(getTtlJarPath)=ttl.agent.logger:STDOUT" \ -Drun-ttl-test-under-agent=true \ org.junit.runner.JUnitCore $(getJUnitTestCases) -blueEcho "Run unit test under ttl agent, and turn on the disable inheritable for thread pool enhancement" +blueEcho 'Run unit test under ttl agent, and turn on the disable inheritable for thread pool enhancement' runCmd "${JAVA_CMD[@]}" -cp "$(getClasspathWithoutTtlJar)" \ "-javaagent:$(getTtlJarPath)=ttl.agent.logger:STDOUT,ttl.agent.disable.inheritable.for.thread.pool:true" \ -Drun-ttl-test-under-agent=true \ @@ -26,7 +26,7 @@ runCmd "${JAVA_CMD[@]}" -cp "$(getClasspathWithoutTtlJar)" \ "-javaagent:$(getTtlJarPath)=ttl.agent.logger:STDOUT" \ com.alibaba.ttl.threadpool.agent.check.timer.TimerAgentCheck -blueEcho "Run agent check for Timer/TimerTask, explicit "ttl.agent.enable.timer.task"" +blueEcho 'Run agent check for Timer/TimerTask, explicit "ttl.agent.enable.timer.task"' runCmd "${JAVA_CMD[@]}" -cp "$(getClasspathWithoutTtlJar)" \ "-javaagent:$(getTtlJarPath)=ttl.agent.logger:STDOUT,ttl.agent.enable.timer.task:true" \ com.alibaba.ttl.threadpool.agent.check.timer.TimerAgentCheck -- GitLab