Fixed launcher bats tests and minor refactoring of launcher scripts

Signed-off-by: mlabuda <mlabuda@redhat.com>
6.19.x
mlabuda 2017-01-02 16:08:02 +01:00 committed by Mario Loriedo
parent 63bb4c693f
commit b98b701c41
3 changed files with 48 additions and 39 deletions

View File

@ -40,8 +40,8 @@ init_global_variables() {
# Used to self-determine container version
LAUNCHER_CONTAINER_ID=$(get_che_launcher_container_id)
LAUNCHER_IMAGE_NAME=$(docker inspect --format='{{.Config.Image}}' "${LAUNCHER_CONTAINER_ID}")
LAUNCHER_IMAGE_VERSION=$(echo "${LAUNCHER_IMAGE_NAME}" | cut -d : -f2 -s)
LAUNCHER_IMAGE_NAME=$(get_che_container_image_name ${LAUNCHER_CONTAINER_ID})
LAUNCHER_IMAGE_VERSION=$(get_che_image_version ${LAUNCHER_IMAGE_NAME})
# Possible Docker install types are:
# native, boot2docker or moby

View File

@ -64,11 +64,7 @@ get_che_launcher_container_id() {
}
get_che_launcher_version() {
if [ -n "${LAUNCHER_IMAGE_VERSION}" ]; then
echo "${LAUNCHER_IMAGE_VERSION}"
else
echo "latest"
fi
get_che_image_version ${LAUNCHER_IMAGE_VERSION}
}
is_boot2docker() {
@ -289,7 +285,7 @@ get_docker_host_os() {
}
get_docker_daemon_version() {
docker version | grep -i "server version:" | sed "s/^server version: //I"
docker version --format '{{.Server.Version}}' | grep "1\.[0-9]*\.[0-9]*"
}
get_che_hostname() {
@ -396,7 +392,6 @@ get_che_container_host_ip_from_container() {
get_che_container_host_bind_folder() {
BINDS=$(docker inspect --format="{{.HostConfig.Binds}}" "${2}" | cut -d '[' -f 2 | cut -d ']' -f 1)
IFS=$' '
for SINGLE_BIND in $BINDS; do
case $SINGLE_BIND in
@ -423,6 +418,15 @@ get_che_container_image_name() {
docker inspect --format="{{.Config.Image}}" "${1}"
}
get_che_image_version() {
image_version=$(echo ${1} | cut -d : -f2 -s)
if [ -n "${image_version}" ]; then
echo "${image_version}"
else
echo "latest"
fi
}
get_che_server_container_id() {
docker inspect -f '{{.Id}}' ${1}
}

View File

@ -8,6 +8,7 @@
# Contributors:
# Mario Loriedo - Initial implementation
# Tyler Jewell - Improvements
# Marian Labuda - Improvements
#
# To run the tests:
# docker run -w /tests/ -v $PWD:/tests dduportal/bats:0.4.0 /tests/launcher_test.bats
@ -15,6 +16,15 @@
source ./launcher_funcs.sh
#source ./launcher.sh
# Set up clean environment
setup() {
if [ "$(docker ps -qa -f status=exited | wc -l)" -gt 0 ]; then
docker rm $(docker ps -qa -f status=exited)
fi
}
@test "clean folder path that is already clean" {
result="$(get_clean_path /somefolder)"
[ "$result" = "/somefolder" ]
@ -62,11 +72,11 @@ source ./launcher_funcs.sh
# Given
export CHE_SERVER_CONTAINER_NAME="che-test-get-container-conf-folder"
CONF_FOLDER=$(pwd)/che-test-conf
mkdir ${CONF_FOLDER}
docker run --name ${CHE_SERVER_CONTAINER_NAME} -v ${CONF_FOLDER}:/conf alpine:3.4 true
mkdir ${CONF_FOLDER} -p
docker run --name ${CHE_SERVER_CONTAINER_NAME} -v ${CONF_FOLDER}:/conf:Z alpine:3.4 true
# When
result="$(get_che_container_conf_folder)"
result=$(get_che_container_conf_folder $CHE_SERVER_CONTAINER_NAME)
docker rm -f ${CHE_SERVER_CONTAINER_NAME}
rmdir ${CONF_FOLDER}
@ -80,7 +90,7 @@ source ./launcher_funcs.sh
docker run --name ${CHE_SERVER_CONTAINER_NAME} alpine:3.4 true
# When
result="$(get_che_container_conf_folder)"
result=$(get_che_container_conf_folder $CHE_SERVER_CONTAINER_NAME)
docker rm -f ${CHE_SERVER_CONTAINER_NAME}
# Then
@ -91,11 +101,11 @@ source ./launcher_funcs.sh
# Given
export CHE_SERVER_CONTAINER_NAME="che-test-get-container-data-folder"
DATA_FOLDER=$(pwd)/che-test-data
mkdir ${DATA_FOLDER}
docker run --name ${CHE_SERVER_CONTAINER_NAME} -v ${DATA_FOLDER}:/home/user/che/workspaces/ alpine:3.4 true
mkdir ${DATA_FOLDER} -p
docker run --name ${CHE_SERVER_CONTAINER_NAME} -v ${DATA_FOLDER}:/home/user/che/workspaces:Z alpine:3.4 true
# When
result="$(get_che_container_data_folder)"
result=$(get_che_container_data_folder $CHE_SERVER_CONTAINER_NAME)
docker rm -f ${CHE_SERVER_CONTAINER_NAME}
rmdir ${DATA_FOLDER}
@ -109,7 +119,7 @@ source ./launcher_funcs.sh
docker run --name ${CHE_SERVER_CONTAINER_NAME} alpine:3.4 true
# When
result="$(get_che_container_image_name)"
result=$(get_che_container_image_name $CHE_SERVER_CONTAINER_NAME)
docker rm -f ${CHE_SERVER_CONTAINER_NAME}
# Then
@ -120,65 +130,60 @@ source ./launcher_funcs.sh
# Given
export CHE_SERVER_CONTAINER_NAME="che-test-get-container-id"
long_id=$(docker run -d --name ${CHE_SERVER_CONTAINER_NAME} alpine:3.4 true)
short_id=${long_id:0:12}
# When
result="$(get_che_server_container_id)"
result=$(get_che_server_container_id ${CHE_SERVER_CONTAINER_NAME})
docker rm -f ${CHE_SERVER_CONTAINER_NAME}
# Then
[ "$result" = "$short_id" ]
[ "$result" = "$long_id" ]
}
@test "get docker daemon version" {
# When
result="$(get_docker_daemon_version)"
result=$(get_docker_daemon_version)
# Then
[ "$result" ]
}
# could be added check on host OS
@test "get docker host os" {
# When
result="$(get_docker_host_os)"
result=$(get_docker_host_os)
# Then
[ "$result" ]
}
@test "get che get che launcher version with nightly" {
# get_che_launcher_container_id should be called in container
@test "get che launcher version with nightly" {
# Given
export CHE_SERVER_CONTAINER_NAME="che-test-get-che-launcher-version"
long_id=$(docker run -d --name ${CHE_SERVER_CONTAINER_NAME} --entrypoint=true eclipse/che-launcher:nightly)
get_che_launcher_container_id() {
echo ${long_id:0:12}
}
export CHE_LAUNCHER_CONTAINER_NAME="che-test-get-che-launcher-version"
long_id=$(docker run -d --name ${CHE_LAUNCHER_CONTAINER_NAME} --entrypoint=true eclipse/che-launcher:nightly)
image_name=$(get_che_container_image_name ${long_id})
# When
result="$(get_che_launcher_version)"
docker rm $CHE_SERVER_CONTAINER_NAME
wait_until_container_is_stopped 5 ${long_id}
result=$(get_che_image_version ${image_name})
docker rm $CHE_LAUNCHER_CONTAINER_NAME
# Then
[ "$result" = "nightly" ]
}
#get_che_launcher_container_id should run in container
@test "get che get che launcher version with no specific version" {
# Given
export CHE_SERVER_CONTAINER_NAME="che-test-get-che-launcher-version"
long_id=$(docker run -d --name ${CHE_SERVER_CONTAINER_NAME} --entrypoint=true eclipse/che-launcher)
get_che_launcher_container_id() {
echo ${long_id:0:12}
}
image_name=$(get_che_container_image_name ${long_id})
# When
result="$(get_che_launcher_version)"
wait_until_container_is_stopped 5 ${long_id}
result=$(get_che_image_version ${image_name})
docker rm $CHE_SERVER_CONTAINER_NAME
echo "expected: latest"
echo "actual: $result"
# Then
[ "$result" = "latest" ]
}