Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 61c97c847c |
@@ -164,6 +164,7 @@ if [ -z "$ASSET_URL" ]; then
|
|||||||
ASSET_URL="$(echo "$FALLBACK_OUT" | head -1)"
|
ASSET_URL="$(echo "$FALLBACK_OUT" | head -1)"
|
||||||
if [ -n "$ASSET_URL" ]; then
|
if [ -n "$ASSET_URL" ]; then
|
||||||
VERSION="$(echo "$FALLBACK_OUT" | tail -1)"
|
VERSION="$(echo "$FALLBACK_OUT" | tail -1)"
|
||||||
|
TARBALL="orca-${VERSION}-${OS}-${ARCH}.tar.gz"
|
||||||
info "WARNING: falling back to ${VERSION} which has orca-${VERSION}-${OS}-${ARCH}.tar.gz."
|
info "WARNING: falling back to ${VERSION} which has orca-${VERSION}-${OS}-${ARCH}.tar.gz."
|
||||||
else
|
else
|
||||||
err "could not find any release with a ${OS}-${ARCH} tarball in the last 50 releases. Check that a release exists with a linux-${ARCH} binary."
|
err "could not find any release with a ${OS}-${ARCH} tarball in the last 50 releases. Check that a release exists with a linux-${ARCH} binary."
|
||||||
|
|||||||
@@ -39,6 +39,29 @@ load test_helper
|
|||||||
assert_contains "$output" "dry-run (--check)"
|
assert_contains "$output" "dry-run (--check)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "install.sh fallback walk syncs TARBALL to fallback version (REQ-132 regression)" {
|
||||||
|
# Regression guard: when the fallback walk reassigns VERSION, the
|
||||||
|
# TARBALL variable must be recomputed too. v0.14.2 is a release with
|
||||||
|
# no binary asset; the installer must walk back to an earlier release.
|
||||||
|
# The dry-run "would install" line must reference the SAME fallback
|
||||||
|
# version as the "falling back to" line — not the stale pinned one.
|
||||||
|
# Before the fix, TARBALL stayed at the pinned v0.14.2 name while
|
||||||
|
# VERSION became the fallback, causing grep|sha256sum to see no
|
||||||
|
# matching checksum line and REQ-132 to refuse install.
|
||||||
|
skip_if_no_network
|
||||||
|
run timeout 60 "$SCRIPTS_DIR/install.sh" --check --version v0.14.2
|
||||||
|
assert_status 0 "$status"
|
||||||
|
assert_contains "$output" "falling back"
|
||||||
|
# Capture the fallback version from the "falling back to vX.Y.Z" line.
|
||||||
|
fb_version="$(printf '%s\n' "$output" | sed -n 's/.*falling back to \(v[0-9][0-9.]*\).*/\1/p' | head -1)"
|
||||||
|
[ -n "$fb_version" ] || { echo "could not parse fallback version from output: $output" >&2; return 1; }
|
||||||
|
# The dry-run "would install" line must use the fallback version,
|
||||||
|
# proving VERSION and TARBALL are in sync (not the stale pinned v0.14.2).
|
||||||
|
assert_contains "$output" "would install: orca ${fb_version}"
|
||||||
|
# And it must NOT reference the stale pinned version in the install line.
|
||||||
|
assert_not_contains "$output" "would install: orca v0.14.2"
|
||||||
|
}
|
||||||
|
|
||||||
@test "install.sh rejects unknown arguments" {
|
@test "install.sh rejects unknown arguments" {
|
||||||
run "$SCRIPTS_DIR/install.sh" --bogus-flag
|
run "$SCRIPTS_DIR/install.sh" --bogus-flag
|
||||||
[ "$status" -ne 0 ]
|
[ "$status" -ne 0 ]
|
||||||
|
|||||||
Reference in New Issue
Block a user