From 41cf083cdb5f8ba44551816e85da576e98991ac1 Mon Sep 17 00:00:00 2001 From: Megrez Lu Date: Mon, 7 Nov 2022 23:24:24 +0800 Subject: [PATCH 1/4] update images and maven plugin --- .github/actions/build/action.yml | 2 +- .github/workflows/plugins-jdk17-test.0.yaml | 2 +- CHANGES.md | 2 +- docs/en/setup/service-agent/java-agent/Plugin-test.md | 2 +- test/plugin/containers/jvm-container/pom.xml | 6 ++++-- test/plugin/containers/jvm-container/src/main/docker/run.sh | 2 +- test/plugin/containers/tomcat-container/pom.xml | 2 +- test/plugin/run.sh | 2 +- 8 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 1966010b3b..6168595b84 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -22,7 +22,7 @@ inputs: base_image_java: description: "The Java Docker image under which this test case will run" required: false - default: "adoptopenjdk/openjdk8:alpine" + default: "eclipse-temurin:8-jre" base_image_tomcat: description: "The Tomcat Docker image under which this test case will run" required: false diff --git a/.github/workflows/plugins-jdk17-test.0.yaml b/.github/workflows/plugins-jdk17-test.0.yaml index d5bd5db8d8..822380ca95 100644 --- a/.github/workflows/plugins-jdk17-test.0.yaml +++ b/.github/workflows/plugins-jdk17-test.0.yaml @@ -47,7 +47,7 @@ jobs: - name: Build uses: ./.github/actions/build with: - base_image_java: eclipse-temurin:17-alpine + base_image_java: eclipse-temurin:17-jre base_image_tomcat: tomcat:8.5-jdk17-openjdk test: diff --git a/CHANGES.md b/CHANGES.md index 45489342e7..068dbc8179 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,7 +5,7 @@ Release Notes. 8.14.0 ------------------ - +* Polish test framework to support `arm64/v8` platforms #### Documentation diff --git a/docs/en/setup/service-agent/java-agent/Plugin-test.md b/docs/en/setup/service-agent/java-agent/Plugin-test.md index a2df65cd59..8379fec3bb 100644 --- a/docs/en/setup/service-agent/java-agent/Plugin-test.md +++ b/docs/en/setup/service-agent/java-agent/Plugin-test.md @@ -20,7 +20,7 @@ The test framework provides `JVM-container` and `Tomcat-container` base images i ### JVM-container Image Introduction -[JVM-container](../../../../../test/plugin/containers/jvm-container) uses `adoptopenjdk/openjdk8:alpine-jre` as the base image. `JVM-container` supports JDK8 and JDK17 as well in CI, which inherits `adoptopenjdk/openjdk8:alpine-jre` and `eclipse-temurin:17-alpine`. +[JVM-container](../../../../../test/plugin/containers/jvm-container) uses `eclipse-temurin:8-jre` as the base image. `JVM-container` supports JDK8 and JDK17 as well in CI, which inherits `eclipse-temurin:8-jre` and `eclipse-temurin:17-jre`. It is supported to custom the base Java docker image by specify `base_image_java`. The test case project must be packaged as `project-name.zip`, including `startup.sh` and uber jar, by using `mvn clean package`. diff --git a/test/plugin/containers/jvm-container/pom.xml b/test/plugin/containers/jvm-container/pom.xml index bb8fdeb606..65d4045469 100644 --- a/test/plugin/containers/jvm-container/pom.xml +++ b/test/plugin/containers/jvm-container/pom.xml @@ -36,7 +36,7 @@ io.fabric8 docker-maven-plugin - 0.33.0 + 0.40.2 @@ -52,7 +52,9 @@ chmod +x /usr/local/skywalking/run.sh tar -xvf ../tools/skywalking-mock-collector.tar.gz -C ../tools - apk add --no-cache bash curl + apt-get update -y + apt-get install -y unzip + rm -rf /var/lib/apt/lists/* ["/usr/local/skywalking/run.sh"] diff --git a/test/plugin/containers/jvm-container/src/main/docker/run.sh b/test/plugin/containers/jvm-container/src/main/docker/run.sh index 3307374cf7..592fb93b3c 100644 --- a/test/plugin/containers/jvm-container/src/main/docker/run.sh +++ b/test/plugin/containers/jvm-container/src/main/docker/run.sh @@ -102,7 +102,7 @@ java -jar \ -Xmx256m -Xms256m \ -DcaseName="${SCENARIO_NAME}-${SCENARIO_VERSION}" \ -DtestCasePath=${SCENARIO_HOME}/data/ \ - ${TOOLS_HOME}/skywalking-validator.jar 1>${LOGS_HOME}/validatolr.out + ${TOOLS_HOME}/skywalking-validator.jar 1>${LOGS_HOME}/validator.out status=$? if [[ $status -eq 0 ]]; then diff --git a/test/plugin/containers/tomcat-container/pom.xml b/test/plugin/containers/tomcat-container/pom.xml index afeaf3c6b3..22db29af94 100644 --- a/test/plugin/containers/tomcat-container/pom.xml +++ b/test/plugin/containers/tomcat-container/pom.xml @@ -36,7 +36,7 @@ io.fabric8 docker-maven-plugin - 0.33.0 + 0.40.2 diff --git a/test/plugin/run.sh b/test/plugin/run.sh index 8056ec65e6..a7ba23145f 100755 --- a/test/plugin/run.sh +++ b/test/plugin/run.sh @@ -31,7 +31,7 @@ scenarios_home="${home}/scenarios" num_of_testcases= container_image_version="1.0.0" -base_image_java="adoptopenjdk/openjdk8:alpine" +base_image_java="eclipse-temurin:8-jre" base_image_tomcat="tomcat:8.5-jdk8-openjdk" jacoco_version="${JACOCO_VERSION:-0.8.6}" From 6710a7fcea3a36471b2947fc7ae0f9784bc315b6 Mon Sep 17 00:00:00 2001 From: Megrez Lu Date: Mon, 7 Nov 2022 23:42:45 +0800 Subject: [PATCH 2/4] use jdk --- .github/actions/build/action.yml | 2 +- .github/workflows/plugins-jdk17-test.0.yaml | 2 +- docs/en/setup/service-agent/java-agent/Plugin-test.md | 2 +- test/plugin/run.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 6168595b84..affd2a3201 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -22,7 +22,7 @@ inputs: base_image_java: description: "The Java Docker image under which this test case will run" required: false - default: "eclipse-temurin:8-jre" + default: "eclipse-temurin:8-jdk" base_image_tomcat: description: "The Tomcat Docker image under which this test case will run" required: false diff --git a/.github/workflows/plugins-jdk17-test.0.yaml b/.github/workflows/plugins-jdk17-test.0.yaml index 822380ca95..45edcbac48 100644 --- a/.github/workflows/plugins-jdk17-test.0.yaml +++ b/.github/workflows/plugins-jdk17-test.0.yaml @@ -47,7 +47,7 @@ jobs: - name: Build uses: ./.github/actions/build with: - base_image_java: eclipse-temurin:17-jre + base_image_java: eclipse-temurin:17-jdk base_image_tomcat: tomcat:8.5-jdk17-openjdk test: diff --git a/docs/en/setup/service-agent/java-agent/Plugin-test.md b/docs/en/setup/service-agent/java-agent/Plugin-test.md index 8379fec3bb..d4af2a425d 100644 --- a/docs/en/setup/service-agent/java-agent/Plugin-test.md +++ b/docs/en/setup/service-agent/java-agent/Plugin-test.md @@ -20,7 +20,7 @@ The test framework provides `JVM-container` and `Tomcat-container` base images i ### JVM-container Image Introduction -[JVM-container](../../../../../test/plugin/containers/jvm-container) uses `eclipse-temurin:8-jre` as the base image. `JVM-container` supports JDK8 and JDK17 as well in CI, which inherits `eclipse-temurin:8-jre` and `eclipse-temurin:17-jre`. +[JVM-container](../../../../../test/plugin/containers/jvm-container) uses `eclipse-temurin:8-jdk` as the base image. `JVM-container` supports JDK8 and JDK17 as well in CI, which inherits `eclipse-temurin:8-jdk` and `eclipse-temurin:17-jdk`. It is supported to custom the base Java docker image by specify `base_image_java`. The test case project must be packaged as `project-name.zip`, including `startup.sh` and uber jar, by using `mvn clean package`. diff --git a/test/plugin/run.sh b/test/plugin/run.sh index a7ba23145f..bca9377d2c 100755 --- a/test/plugin/run.sh +++ b/test/plugin/run.sh @@ -31,7 +31,7 @@ scenarios_home="${home}/scenarios" num_of_testcases= container_image_version="1.0.0" -base_image_java="eclipse-temurin:8-jre" +base_image_java="eclipse-temurin:8-jdk" base_image_tomcat="tomcat:8.5-jdk8-openjdk" jacoco_version="${JACOCO_VERSION:-0.8.6}" From 3149f026575bf7e632d8d5dd9acd7090162e1bd5 Mon Sep 17 00:00:00 2001 From: Megrez Lu Date: Tue, 8 Nov 2022 09:52:02 +0800 Subject: [PATCH 3/4] add docker wait to wait for exit --- .../src/main/resources/container-start-script.template | 1 + 1 file changed, 1 insertion(+) diff --git a/test/plugin/runner-helper/src/main/resources/container-start-script.template b/test/plugin/runner-helper/src/main/resources/container-start-script.template index 108fb0bf20..75b2c73bfa 100644 --- a/test/plugin/runner-helper/src/main/resources/container-start-script.template +++ b/test/plugin/runner-helper/src/main/resources/container-start-script.template @@ -51,5 +51,6 @@ else [[ $status -ne 0 ]] && docker logs ${container_name} >&2 docker logs ${container_name} >${SCENARIO_HOME}/logs/container.log docker container rm -f $container_name + docker wait $container_name fi From 3dc616ce250cfdeffe11575286ebbb460e618f42 Mon Sep 17 00:00:00 2001 From: Megrez Lu Date: Tue, 8 Nov 2022 21:34:57 +0800 Subject: [PATCH 4/4] try to remove acl entry if exists on macOS --- test/plugin/run.sh | 10 +++++++++- .../src/main/resources/container-start-script.template | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/test/plugin/run.sh b/test/plugin/run.sh index bca9377d2c..3d3e164839 100755 --- a/test/plugin/run.sh +++ b/test/plugin/run.sh @@ -148,6 +148,14 @@ agent_home_selector() { _agent_home=${target_agent_home} } +remove_dir() { + dir=$1 + if [[ "${os}" == "Darwin" ]]; then + find ${dir} -type d -exec chmod -a "$(whoami) deny delete" {} \; + fi + rm -rf $dir +} + start_stamp=`date +%s` parse_commandline "$@" @@ -257,7 +265,7 @@ do bash ${case_work_base}/scenario.sh $debug_mode 1>${case_work_logs_dir}/${testcase_name}.log status=$? if [[ $status == 0 ]]; then - [[ -z $debug_mode ]] && rm -rf ${case_work_base} + [[ -z $debug_mode ]] && remove_dir ${case_work_base} else exitWithMessage "Testcase ${testcase_name} failed!" fi diff --git a/test/plugin/runner-helper/src/main/resources/container-start-script.template b/test/plugin/runner-helper/src/main/resources/container-start-script.template index 75b2c73bfa..108fb0bf20 100644 --- a/test/plugin/runner-helper/src/main/resources/container-start-script.template +++ b/test/plugin/runner-helper/src/main/resources/container-start-script.template @@ -51,6 +51,5 @@ else [[ $status -ne 0 ]] && docker logs ${container_name} >&2 docker logs ${container_name} >${SCENARIO_HOME}/logs/container.log docker container rm -f $container_name - docker wait $container_name fi