Browse Source

Merge pull request #413 from mrmeszaros/docker-test-update

Fix and update the docker + bats based tests
pull/450/head
Barnesly 5 months ago committed by GitHub
parent
commit
8585931d16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      run-tests.sh
  2. 19
      test/Dockerfile
  3. 74
      test/adding_jdks.bats
  4. 62
      test/setting_versions.bats
  5. 11
      test/setup_suite.bash

2
run-tests.sh

@ -2,6 +2,6 @@ @@ -2,6 +2,6 @@
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
docker build --tag jenv:tests $SCRIPT_DIR/test
docker build --tag jenv:test $SCRIPT_DIR/test
docker run --mount type=bind,source=$SCRIPT_DIR,target=/root/.jenv jenv:test /root/.jenv/test/bats/bin/bats /root/.jenv/test

19
test/Dockerfile

@ -1,15 +1,14 @@ @@ -1,15 +1,14 @@
from centos:7
RUN yum install -y https://cdn.azul.com/zulu/bin/zulu18.30.11-ca-jdk18.0.1-linux.x86_64.rpm
RUN yum install -y https://cdn.azul.com/zulu/bin/zulu18.28.13-ca-jdk18.0.0-linux.i686.rpm
RUN yum install -y https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux.x86_64.rpm
RUN yum install -y java-11-openjdk.x86_64
RUN yum install -y java-1.6.0-openjdk.x86_64
RUN yum install -y java-1.7.0-openjdk.x86_64
RUN yum install -y java-1.8.0-openjdk.x86_64
RUN yum install -y java-1.8.0-openjdk.i686
RUN curl -L https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.4/graalvm-ce-java11-linux-amd64-20.3.4.tar.gz | tar xzf - -C /usr/lib/jvm/
RUN curl -L https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/graalvm-ce-java11-linux-amd64-21.3.0.tar.gz | tar xzf - -C /usr/lib/jvm/
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-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/
RUN echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
RUN echo 'eval "$(jenv init -)"' >> ~/.bash_profile

74
test/adding_jdks.bats

@ -1,51 +1,77 @@ @@ -1,51 +1,77 @@
#!/usr/bin/env bats
setup() {
load 'test_helper/bats-support/load'
load 'test_helper/bats-assert/load'
export PATH=$HOME/.jenv/bin/:$PATH
eval "$(jenv init -)"
load 'test_helper/bats-support/load'
load 'test_helper/bats-assert/load'
teardown() {
jenv global --unset
jenv shell --unset
rm -f ~/.jenv/versions/*
}
@test "add openjdk 1.6.0.41" {
jenv add /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/jre/
run jenv versions
assert_line --regexp '^ *1.6$'
assert_line --regexp '^ *1.6.0.41$'
assert_line --regexp '^ *openjdk64-1.6.0.41$'
get-build-number() {
local _prefix=$1
local _name_prefix=$(basename $_prefix)
basename $_prefix* | sed -E "s|$_name_prefix([0-9]+)[-.].*|\1|g"
}
@test "add openjdk 1.7.0.261" {
jenv add /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/jre/
@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.261$'
assert_line --regexp '^ *openjdk64-1.7.0.261$'
assert_line --regexp "^ *1.7.0.${_BUILD_NO}$"
assert_line --regexp "^ *openjdk64-1.7.0.${_BUILD_NO}$"
}
@test "add openjdk 1.8.0.322" {
jenv add /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/
@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/
run jenv versions
assert_line --regexp '^ *1.8$'
assert_line --regexp '^ *1.8.0.322$'
assert_line --regexp '^ *openjdk64-1.8.0.322$'
assert_line --regexp "^ *1.8.0.${_BUILD_NO}$"
assert_line --regexp "^ *openjdk64-1.8.0.${_BUILD_NO}$"
}
@test "add openjdk 11" {
_PATCH_NO=$(get-build-number /usr/lib/jvm/java-11-openjdk-11.0.)
jenv add /usr/lib/jvm/java-11-openjdk-11.0.*/
run jenv versions
assert_line --regexp '^ *11$'
assert_line --regexp '^ *11.0$'
assert_line --regexp "^ *11.0.${_PATCH_NO}$"
assert_line --regexp "^ *openjdk64-11.0.${_PATCH_NO}$"
}
@test "add zulu 11" {
jenv add /usr/lib/jvm/zulu-11/
jenv add /usr/lib/jvm/zulu11/
run jenv versions
assert_line --regexp '^ *11$'
assert_line --regexp '^ *11.0$'
assert_line --regexp '^ *11.0.15$'
assert_line --regexp '^ *zulu64-11.0.15$'
assert_line --regexp '^ *11.0.[0-9]+$'
assert_line --regexp '^ *zulu64-11.0.[0-9]+$'
}
@test "add zulu 18.0.2.1" {
jenv add /usr/lib/jvm/zulu18/
run jenv versions
assert_line --regexp '^ *18$'
assert_line --regexp '^ *18.0$'
assert_line --regexp '^ *18.0.2.1$'
assert_line --regexp '^ *zulu64-18.0.2.1$'
}
@test "add graalvm 11.0.20" {
jenv add /usr/lib/jvm/graalvm-ce-java11-22.3.3/
run jenv versions
assert_line --regexp '^ *11$'
assert_line --regexp '^ *11.0$'
assert_line --regexp '^ *11.0.20$'
assert_line --regexp '^ *graalvm64-11.0.20$'
}

62
test/setting_versions.bats

@ -1,67 +1,85 @@ @@ -1,67 +1,85 @@
#!/usr/bin/env bats
load 'test_helper/bats-support/load'
load 'test_helper/bats-assert/load'
setup() {
export PATH=$HOME/.jenv/bin/:$PATH
export tmp_dir_1=`mktemp -d`
export tmp_dir_2=`mktemp -d`
}
eval "$(jenv init -)"
teardown() {
jenv global --unset
jenv shell --unset
rm -f ~/.jenv/versions/*
rm -rf $tmp_dir_1 $tmp_dir_2
}
@test "global version is set globally" {
jenv add /usr/lib/jvm/graalvm-ce-java11-21.3.0/
jenv add /usr/lib/jvm/graalvm-ce-java11-22.3.3/
jenv global 11
cd `mktemp -d`
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-21.3.0" ]
cd $tmp_dir_1
assert_equal "$(jenv version-name)" 11
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-22.3.3" ]
}
@test "local is set for current directory" {
jenv add /usr/lib/jvm/graalvm-ce-java11-21.3.0/
jenv add /usr/lib/jvm/zulu-18/
jenv add /usr/lib/jvm/graalvm-ce-java11-22.3.3/
jenv add /usr/lib/jvm/zulu18/
jenv global 11
cd `mktemp -d`
cd $tmp_dir_1
jenv local 18
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/zulu-18" ]
assert_equal "$(jenv version-name)" 18
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/zulu18-ca" ]
}
@test "local is set for current directory only, reverts to global" {
jenv add /usr/lib/jvm/graalvm-ce-java11-21.3.0/
jenv add /usr/lib/jvm/zulu-18/
jenv add /usr/lib/jvm/graalvm-ce-java11-22.3.3/
jenv add /usr/lib/jvm/zulu18/
jenv global 11
cd `mktemp -d`
cd $tmp_dir_1
jenv local 18
cd `mktemp -d`
cd $tmp_dir_2
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-21.3.0" ]
assert_equal "$(jenv version-name)" 11
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-22.3.3" ]
}
@test "shell sets for current shell" {
jenv add /usr/lib/jvm/graalvm-ce-java11-21.3.0/
jenv add /usr/lib/jvm/zulu-18/
jenv add /usr/lib/jvm/graalvm-ce-java11-22.3.3/
jenv add /usr/lib/jvm/zulu18/
jenv global 11
output=$(jenv shell 18 && realpath $(jenv javahome))
[ $output = "/usr/lib/jvm/zulu-18" ]
jenv shell 18
run jenv version-name
assert_line 18
run realpath $(jenv javahome)
assert_line /usr/lib/jvm/zulu18-ca
}
@test "shell sets for current shell only, reverts to global outside" {
jenv add /usr/lib/jvm/graalvm-ce-java11-21.3.0/
jenv add /usr/lib/jvm/zulu-18/
jenv add /usr/lib/jvm/graalvm-ce-java11-22.3.3/
jenv add /usr/lib/jvm/zulu18/
jenv global 11
$(jenv shell 18)
jenv global 11
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-21.3.0" ]
assert_equal "$(jenv version-name)" 11
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-22.3.3" ]
}

11
test/setup_suite.bash

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
#!/usr/bin/env bats
setup_suite() {
export PATH=$HOME/.jenv/bin/:$PATH
eval "$(jenv init -)"
# TODO: this should be in jenv-init
export -f jenv
}
Loading…
Cancel
Save