mirror of
https://github.com/cozystack/cozystack.git
synced 2026-10-23 03:27:50 +09:00
The shell translator rewrites test bodies and loses Bats reporting. The unit lane needs complete TAP results and JUnit reports without changing how live-cluster suites run. Sourced production helpers still need a dash pass, and unit test bodies need nounset without exporting shell options into subprocesses. Assisted-by: LLM Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
44 lines
2.1 KiB
Bash
44 lines
2.1 KiB
Bash
#!/usr/bin/env bats
|
|
# Unit test: the postgis flavor of packages/apps/postgres must run the same
|
|
# PostgreSQL minor as the default flavor. files/versions.yaml and
|
|
# files/postgis-versions.yaml are two maps kept by hand or by
|
|
# hack/update-versions.sh; if they drift, `flavor: postgis` silently deploys
|
|
# an older or newer minor than the one the chart advertises. The postgis
|
|
# image must also be the standard-trixie variant: the chart archives through
|
|
# the barman-cloud plugin, and the system variant is deprecated upstream.
|
|
#
|
|
# cozytest.sh sources this file into /bin/sh, which is dash on the CI runners:
|
|
# POSIX shell only, no ${var//} and no <(...).
|
|
|
|
load test_helper
|
|
|
|
REPO_ROOT="$(cd "$(dirname "${BATS_TEST_FILENAME:-$0}")/.." && pwd)"
|
|
PG_FILES="$REPO_ROOT/packages/apps/postgres/files"
|
|
|
|
@test "postgis flavor pins the same PostgreSQL minor as the default flavor" {
|
|
checked=0
|
|
while IFS=': ' read -r major tag; do
|
|
major="$(printf '%s' "$major" | tr -d '"')"
|
|
tag="$(printf '%s' "$tag" | tr -d '"')"
|
|
[ -n "$major" ] || continue
|
|
minor="$(grep "^\"${major}\":" "$PG_FILES/versions.yaml" | sed -E 's/.*"v([0-9.]+)"$/\1/')"
|
|
[ -n "$minor" ] || { echo "$major is in postgis-versions.yaml but not in versions.yaml" >&2; exit 1; }
|
|
case "$tag" in
|
|
"${minor}"-*-standard-trixie) ;;
|
|
*) echo "$major: postgis tag $tag does not match PostgreSQL $minor standard-trixie" >&2; exit 1 ;;
|
|
esac
|
|
checked=$((checked + 1))
|
|
done < "$PG_FILES/postgis-versions.yaml"
|
|
[ "$checked" -gt 0 ] || { echo "no entry read from postgis-versions.yaml" >&2; exit 1; }
|
|
}
|
|
|
|
@test "postgis flavor covers every PostgreSQL major of the default flavor" {
|
|
pg_majors="$(sed -E 's/^"([^"]+)":.*/\1/' "$PG_FILES/versions.yaml" | sort | tr '\n' ' ')"
|
|
postgis_majors="$(sed -E 's/^"([^"]+)":.*/\1/' "$PG_FILES/postgis-versions.yaml" | sort | tr '\n' ' ')"
|
|
[ -n "$pg_majors" ] || { echo "no entry read from versions.yaml" >&2; exit 1; }
|
|
[ "$pg_majors" = "$postgis_majors" ] || {
|
|
echo "versions.yaml lists [$pg_majors] but postgis-versions.yaml lists [$postgis_majors]" >&2
|
|
exit 1
|
|
}
|
|
}
|