Browse Source

Add some unit tests usings docker and bats

Tests can be run with ./run-tests.sh
pull/358/head
Marquis Wong 4 years ago
parent
commit
5e98e2f965
  1. 9
      .gitmodules
  2. 7
      run-tests.sh
  3. 16
      test/Dockerfile
  4. 51
      test/adding_jdks.bats
  5. 1
      test/bats
  6. 67
      test/setting_versions.bats
  7. 1
      test/test_helper/bats-assert
  8. 1
      test/test_helper/bats-support

9
.gitmodules vendored

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
[submodule "test/bats"]
path = test/bats
url = https://github.com/bats-core/bats-core.git
[submodule "test/test_helper/bats-support"]
path = test/test_helper/bats-support
url = https://github.com/bats-core/bats-support.git
[submodule "test/test_helper/bats-assert"]
path = test/test_helper/bats-assert
url = https://github.com/bats-core/bats-assert.git

7
run-tests.sh

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
#!/usr/bin/env bash
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
docker build --tag jenv:tests $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

16
test/Dockerfile

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
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/
RUN echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
RUN echo 'eval "$(jenv init -)"' >> ~/.bash_profile

51
test/adding_jdks.bats

@ -0,0 +1,51 @@ @@ -0,0 +1,51 @@
#!/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 -)"
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$'
}
@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/
run jenv versions
assert_line --regexp '^ *1.7$'
assert_line --regexp '^ *1.7.0.261$'
assert_line --regexp '^ *openjdk64-1.7.0.261$'
}
@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/
run jenv versions
assert_line --regexp '^ *1.8$'
assert_line --regexp '^ *1.8.0.322$'
assert_line --regexp '^ *openjdk64-1.8.0.322$'
}
@test "add zulu 11" {
jenv add /usr/lib/jvm/zulu-11/
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$'
}

1
test/bats

@ -0,0 +1 @@ @@ -0,0 +1 @@
Subproject commit 5c964bbc76d0b6d616df3b3dc984fcb25ba2d485

67
test/setting_versions.bats

@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
#!/usr/bin/env bats
setup() {
export PATH=$HOME/.jenv/bin/:$PATH
eval "$(jenv init -)"
jenv global --unset
jenv shell --unset
rm -f ~/.jenv/versions/*
}
@test "global version is set globally" {
jenv add /usr/lib/jvm/graalvm-ce-java11-21.3.0/
jenv global 11
cd `mktemp -d`
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-21.3.0" ]
}
@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 global 11
cd `mktemp -d`
jenv local 18
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/zulu-18" ]
}
@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 global 11
cd `mktemp -d`
jenv local 18
cd `mktemp -d`
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-21.3.0" ]
}
@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 global 11
output=$(jenv shell 18 && realpath $(jenv javahome))
[ $output = "/usr/lib/jvm/zulu-18" ]
}
@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 global 11
$(jenv shell 18)
jenv global 11
[ $(realpath $(jenv javahome)) = "/usr/lib/jvm/graalvm-ce-java11-21.3.0" ]
}

1
test/test_helper/bats-assert

@ -0,0 +1 @@ @@ -0,0 +1 @@
Subproject commit 397c735212bf1a06cfdd0cb7806c5a6ea79582bf

1
test/test_helper/bats-support

@ -0,0 +1 @@ @@ -0,0 +1 @@
Subproject commit 3c8fadc5097c9acfc96d836dced2bb598e48b009
Loading…
Cancel
Save