fix: align business reports and record task migration progress
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
SCRIPT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)/wait-backend.sh
|
||||
TEST_TMP=$(cd -- "${TMPDIR:-/tmp}" && pwd -P)
|
||||
TEST_ROOT=$(mktemp -d "$TEST_TMP/sw-backend-readiness.XXXXXX")
|
||||
cleanup() {
|
||||
[[ "$TEST_ROOT" == "$TEST_TMP/sw-backend-readiness."* ]] || exit 1
|
||||
rm -rf -- "$TEST_ROOT"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
mkdir "$TEST_ROOT/bin"
|
||||
cat > "$TEST_ROOT/bin/docker" <<'DOCKER'
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
[[ "$1" == inspect && "${!#}" == sw2-backend ]]
|
||||
case "$TEST_MODE" in
|
||||
exited) echo 'false 0' ;;
|
||||
restarted) echo 'true 1' ;;
|
||||
inspect-failed) exit 1 ;;
|
||||
*) echo 'true 0' ;;
|
||||
esac
|
||||
DOCKER
|
||||
cat > "$TEST_ROOT/bin/curl" <<'CURL'
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
count=$(cat "$TEST_ROOT/polls")
|
||||
count=$((count + 1))
|
||||
echo "$count" > "$TEST_ROOT/polls"
|
||||
[[ "$TEST_MODE" == ready || "$count" -gt 60 ]]
|
||||
CURL
|
||||
printf '#!/usr/bin/env bash\nexit 0\n' > "$TEST_ROOT/bin/sleep"
|
||||
chmod +x "$TEST_ROOT/bin/"*
|
||||
export TEST_ROOT PATH="$TEST_ROOT/bin:$PATH"
|
||||
for scenario in ready long-migration exited restarted inspect-failed; do
|
||||
export TEST_MODE="$scenario"
|
||||
echo 0 > "$TEST_ROOT/polls"
|
||||
result=0
|
||||
bash "$SCRIPT" > "$TEST_ROOT/output" 2>&1 || result=$?
|
||||
case "$scenario" in
|
||||
ready) [[ "$result" == 0 && "$(cat "$TEST_ROOT/polls")" == 1 ]] ;;
|
||||
long-migration) [[ "$result" == 0 && "$(cat "$TEST_ROOT/polls")" == 61 ]] ;;
|
||||
*) [[ "$result" != 0 && "$(cat "$TEST_ROOT/polls")" == 0 ]] ;;
|
||||
esac
|
||||
printf 'passed: %s\n' "$scenario"
|
||||
done
|
||||
Reference in New Issue
Block a user