mirror of
https://github.com/project-zot/zot.git
synced 2024-12-30 22:34:13 -05:00
612a12e5a8
Signed-off-by: Petu Eusebiu <peusebiu@cisco.com>
80 lines
1.9 KiB
Bash
80 lines
1.9 KiB
Bash
ROOT_DIR=$(git rev-parse --show-toplevel)
|
|
TEST_DATA_DIR=${ROOT_DIR}/test/data/
|
|
OS="${OS:-linux}"
|
|
ARCH="${ARCH:-amd64}"
|
|
ZOT_PATH=${ROOT_DIR}/bin/zot-${OS}-${ARCH}
|
|
|
|
mkdir -p ${TEST_DATA_DIR}
|
|
|
|
function verify_prerequisites {
|
|
if [ ! -f ${ZOT_PATH} ]; then
|
|
echo "you need to build ${ZOT_PATH} before running the tests" >&3
|
|
return 1
|
|
fi
|
|
|
|
if [ ! command -v skopeo &> /dev/null ]; then
|
|
echo "you need to install skopeo as a prerequisite to running the tests" >&3
|
|
return 1
|
|
fi
|
|
|
|
if [ ! command -v awslocal ] &>/dev/null; then
|
|
echo "you need to install aws cli as a prerequisite to running the tests" >&3
|
|
return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
function zot_serve_strace() {
|
|
local config_file=${1}
|
|
strace -o "strace.txt" -f -e trace=openat ${ZOT_PATH} serve ${config_file} &
|
|
}
|
|
|
|
function zot_serve() {
|
|
local config_file=${1}
|
|
${ZOT_PATH} serve ${config_file} &
|
|
}
|
|
|
|
function zot_stop() {
|
|
pkill zot
|
|
}
|
|
|
|
function wait_str() {
|
|
local filepath="$1"
|
|
local search_term="$2"
|
|
local wait_time="${3:-2m}"
|
|
|
|
(timeout $wait_time tail -F -n0 "$filepath" &) | grep -q "$search_term" && return 0
|
|
|
|
echo "timeout of $wait_time reached. unable to find '$search_term' in '$filepath'"
|
|
|
|
return 1
|
|
}
|
|
|
|
function wait_for_string() {
|
|
local search_term="$1"
|
|
local filepath="$2"
|
|
local wait_time="${3:-2m}"
|
|
|
|
wait_file "$filepath" 60 || { echo "server log file missing: '$filepath'"; return 1; }
|
|
|
|
wait_str "$filepath" "$search_term" "$wait_time"
|
|
}
|
|
|
|
function wait_file() {
|
|
local file="$1"; shift
|
|
local wait_seconds="${1:-60}"; shift
|
|
|
|
until test $((wait_seconds--)) -eq 0 -o -f "$file" ; do sleep 1; done
|
|
}
|
|
|
|
function wait_zot_reachable() {
|
|
zot_url=${1}
|
|
curl --connect-timeout 3 \
|
|
--max-time 10 \
|
|
--retry 10 \
|
|
--retry-delay 0 \
|
|
--retry-max-time 120 \
|
|
--retry-connrefused \
|
|
${zot_url}
|
|
}
|