30 lines
1.0 KiB
Bash
30 lines
1.0 KiB
Bash
#!/bin/bash
|
|
# shellcheck disable=SC2034
|
|
DESCRIPTION="a failing migration stops later ones, fails the update, and runs again next time"
|
|
IMAGE=installed
|
|
TIER="pr"
|
|
|
|
scenario() {
|
|
# The first fails while ~/smoketest-block exists; the second must wait for it
|
|
upstream_commit "Add two migrations" '
|
|
now=$(date +%s)
|
|
echo "[ ! -e ~/smoketest-block ] && echo first >> ~/smoketest-ran" > "migrations/$now.sh"
|
|
echo "echo second >> ~/smoketest-ran" > "migrations/$((now + 1)).sh"'
|
|
assert_vm "block the first migration" 'touch ~/smoketest-block'
|
|
|
|
cd_update
|
|
assert_status 1
|
|
assert_output "failed; it will run again on the next update"
|
|
assert_output "Done, with errors in: 12-migrations.sh"
|
|
refute_vm "neither migration ran" 'test -e ~/smoketest-ran'
|
|
|
|
assert_vm "unblock the first migration" 'rm ~/smoketest-block'
|
|
cd_update
|
|
assert_status 0
|
|
assert_vm "both ran, in order" '[ "$(cat ~/smoketest-ran)" = "$(printf "first\nsecond")" ]'
|
|
|
|
cd_update
|
|
assert_status 0
|
|
assert_vm "neither ran again" '[ "$(wc -l < ~/smoketest-ran)" -eq 2 ]'
|
|
}
|