blob: 726833e49815887015ef220df93a2b9bdb456d4f [file] [log] [blame]
setup() {
IMAGE_NAME="$NAME:$VERSION"
}
# function relative to the current container / image
build_image() {
#disable outputs
docker build -t $IMAGE_NAME $BATS_TEST_DIRNAME/../image &> /dev/null
}
run_image() {
CONTAINER_ID=$(docker run $@ -d $IMAGE_NAME --copy-service -c "/container/service/slapd/test.sh" $EXTRA_DOCKER_RUN_FLAGS)
CONTAINER_IP=$(get_container_ip_by_cid $CONTAINER_ID)
}
start_container() {
start_containers_by_cid $CONTAINER_ID
}
stop_container() {
stop_containers_by_cid $CONTAINER_ID
}
remove_container() {
remove_containers_by_cid $CONTAINER_ID
}
clear_container() {
stop_containers_by_cid $CONTAINER_ID
remove_containers_by_cid $CONTAINER_ID
}
wait_process() {
wait_process_by_cid $CONTAINER_ID $@
}
check_container() {
# "Status" = "exited", and "ExitCode" != 0,
local CSTAT=$(docker inspect -f "{{ .State.Status }} {{ .State.ExitCode }}" $CONTAINER_ID)
echo "$CSTAT"
}
# generic functions
get_container_ip_by_cid() {
local IP=$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" $1)
echo "$IP"
}
start_containers_by_cid() {
for cid in "$@"
do
#disable outputs
docker start $cid &> /dev/null
done
}
stop_containers_by_cid() {
for cid in "$@"
do
#disable outputs
docker stop $cid &> /dev/null
done
}
remove_containers_by_cid() {
for cid in "$@"
do
#disable outputs
docker rm $cid &> /dev/null
done
}
clear_containers_by_cid() {
stop_containers_by_cid $@
remove_containers_by_cid $@
}
wait_process_by_cid() {
cid=$1
docker exec $cid /container/tool/wait-process ${@:2}
}