diff --git a/test/run b/test/run index ba9a50297f142096851a3bc0a9c128cadd6a7abe..e482e55043cd52f07e3964ec6f330e33ea2831e5 100755 --- a/test/run +++ b/test/run @@ -21,9 +21,9 @@ if (echo "$OSTYPE" | egrep -qs 'darwin'); then ! type -a "gmktemp" &>"/dev/null" || MKTEMP_EXEC="gmktemp" fi test_project=${1} -test_dir="$($READLINK_EXEC -zf $(dirname "${BASH_SOURCE[0]}"))" +test_dir="$($READLINK_EXEC -zf $(dirname "${0}"))" image_dir=$($READLINK_EXEC -zf ${test_dir}/..) -scripts_url="file://${image_dir}/.sti/bin" +scripts_url="file://${image_dir}/.s2i/bin" cid_file=$($MKTEMP_EXEC -u --suffix=.cid) # Since we built the candidate image locally, we don't want S2I to attempt to pull @@ -53,8 +53,16 @@ container_ip() { fi } +container_port() { + if (echo "$OSTYPE" | egrep -qs 'darwin'); then + docker inspect --format='{{(index (index .NetworkSettings.Ports "8080/tcp") 0).HostPort}}' $(cat $cid_file) + else + echo $test_port + fi +} + run_s2i_build() { - s2i build --incremental=true ${sti_args} file://${test_dir}/${test_project} ${IMAGE_NAME} ${IMAGE_NAME}-${test_project} + s2i build --incremental=true ${s2i_args} file://${test_dir}/${test_project} ${IMAGE_NAME} ${IMAGE_NAME}-${test_project} } prepare() { @@ -114,7 +122,7 @@ wait_for_cid() { test_s2i_usage() { info "Testing the 'sti usage' command" - s2i usage ${sti_args} ${IMAGE_NAME} &>/dev/null + s2i usage ${s2i_args} ${IMAGE_NAME} &>/dev/null } test_docker_run_usage() { @@ -123,19 +131,19 @@ test_docker_run_usage() { } test_connection() { - info "Testing the HTTP connection (http://$(container_ip):${test_port})" + info "Testing the HTTP connection (http://$(container_ip):$(container_port))" local max_attempts=10 local sleep_time=1 local attempt=1 local result=1 while [ $attempt -le $max_attempts ]; do - echo "Sending GET request to http://$(container_ip):${test_port}/" + info "Sending GET request to http://$(container_ip):$(container_port)/" if (echo "$OSTYPE" | egrep -qs 'darwin'); then echo "Warning for OSX users: if you can't access the container's IP ${container_ip} directly (because you use boot2docker for example)" echo "you should run the curl command in a container, for example using:" - echo "docker run --rm -it sequenceiq/alpine-curl curl -s -w %{http_code} -o /dev/null http://$(container_ip):${test_port}/" + echo "docker run --rm -it sequenceiq/alpine-curl curl -s -w %{http_code} -o /dev/null http://$(container_ip):$(container_port)/" fi - response_code=$(curl -s -w %{http_code} -o /dev/null http://$(container_ip):${test_port}/) + response_code=$(curl -s -w %{http_code} -o /dev/null http://$(container_ip):$(container_port)/) status=$? if [ $status -eq 0 ]; then if [ $response_code -eq 200 ]; then