From ca89b1a060107fe303224c477f06831a58fb2859 Mon Sep 17 00:00:00 2001 From: andrewflbarnes Date: Wed, 16 Jul 2025 01:11:13 +0100 Subject: [PATCH] chore: centos and openjdk 1.7 are both EOL, use ubi8 and openjdk 17, 21 Also make test script more robust and cleanup created files. --- .gitignore | 1 + run-tests.sh | 20 +++++++++++++++++--- test/Dockerfile | 5 +++-- test/adding_jdks.bats | 32 ++++++++++++++++++++++---------- 4 files changed, 43 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 6d737a8..87c74a1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /version /versions *.time +jenv.version # Editor directories and files .idea diff --git a/run-tests.sh b/run-tests.sh index 9cac92e..04a5717 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -1,7 +1,21 @@ #!/usr/bin/env bash -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +do_test() { + trap "rm -rf jenv.version *.time shims/ versions/" RETURN INT HUP TERM -docker build --tag jenv:test $SCRIPT_DIR/test + SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -docker run --mount type=bind,source=$SCRIPT_DIR,target=/root/.jenv jenv:test /root/.jenv/test/bats/bin/bats /root/.jenv/test + if ! docker build --tag jenv:test "$SCRIPT_DIR/test" + then + echo "Failed to build the Docker image." + return 1 + fi + + if ! docker run --mount type=bind,source="$SCRIPT_DIR",target=/root/.jenv jenv:test /root/.jenv/test/bats/bin/bats /root/.jenv/test + then + echo "Tests failed." + return 1 + fi +} + +do_test diff --git a/test/Dockerfile b/test/Dockerfile index 5db1b1e..90ed7b8 100644 --- a/test/Dockerfile +++ b/test/Dockerfile @@ -1,12 +1,13 @@ -from centos:7 +FROM redhat/ubi8 ARG GRAALVM_VERSION=22.3.3 RUN yum install -y https://cdn.azul.com/zulu/bin/zulu-repo-1.0.0-1.noarch.rpm RUN yum install -y zulu18-jdk RUN yum install -y zulu11-jdk +RUN yum install -y java-21-openjdk +RUN yum install -y java-17-openjdk RUN yum install -y java-11-openjdk -RUN yum install -y java-1.7.0-openjdk RUN yum install -y java-1.8.0-openjdk RUN curl -L https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-$GRAALVM_VERSION/graalvm-ce-java11-linux-$(uname -m | sed 's/x86_64/amd64/')-$GRAALVM_VERSION.tar.gz | tar xzf - -C /usr/lib/jvm/ diff --git a/test/adding_jdks.bats b/test/adding_jdks.bats index ec7175d..e72823e 100755 --- a/test/adding_jdks.bats +++ b/test/adding_jdks.bats @@ -15,16 +15,6 @@ get-build-number() { basename $_prefix* | sed -E "s|$_name_prefix([0-9]+)[-.].*|\1|g" } -@test "add openjdk 1.7.0" { - _BUILD_NO=$(get-build-number /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.) - jenv add /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.*/jre/ - - run jenv versions - assert_line --regexp '^ *1.7$' - assert_line --regexp "^ *1.7.0.${_BUILD_NO}$" - assert_line --regexp "^ *openjdk64-1.7.0.${_BUILD_NO}$" -} - @test "add openjdk 1.8.0" { _BUILD_NO=$(get-build-number /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.) jenv add /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.*/jre/ @@ -46,6 +36,28 @@ get-build-number() { assert_line --regexp "^ *openjdk64-11.0.${_PATCH_NO}$" } +@test "add openjdk 17" { + _PATCH_NO=$(get-build-number /usr/lib/jvm/java-17-openjdk-17.0.) + jenv add /usr/lib/jvm/java-17-openjdk-17.0.*/ + + run jenv versions + assert_line --regexp '^ *17$' + assert_line --regexp '^ *17.0$' + assert_line --regexp "^ *17.0.${_PATCH_NO}$" + assert_line --regexp "^ *openjdk64-17.0.${_PATCH_NO}$" +} + +@test "add openjdk 21" { + _PATCH_NO=$(get-build-number /usr/lib/jvm/java-21-openjdk-21.0.) + jenv add /usr/lib/jvm/java-21-openjdk-21.0.*/ + + run jenv versions + assert_line --regexp '^ *21$' + assert_line --regexp '^ *21.0$' + assert_line --regexp "^ *21.0.${_PATCH_NO}$" + assert_line --regexp "^ *openjdk64-21.0.${_PATCH_NO}$" +} + @test "add zulu 11" { jenv add /usr/lib/jvm/zulu11/