This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
# shellcheck disable=SC2034
|
||||
DESCRIPTION="a machine a month behind on a stale mirror: update picks fresh mirrors, upgrades the kernel, asks for a reboot"
|
||||
IMAGE=installed
|
||||
TIER=nightly
|
||||
|
||||
scenario() {
|
||||
local date kernel_before
|
||||
date="$(date -d '30 days ago' +%Y/%m/%d)"
|
||||
|
||||
# Go back to Arch as it was a month ago, from the Arch Linux Archive, which
|
||||
# is also a mirror that stopped syncing a month ago
|
||||
run_in_vm downgrade "set -e
|
||||
echo 'Server = https://archive.archlinux.org/repos/$date/\$repo/os/\$arch' \
|
||||
| sudo tee /etc/pacman.d/mirrorlist
|
||||
sudo pacman -Syyuu --noconfirm"
|
||||
[ "$STATUS" -eq 0 ] || skip "couldn't downgrade to Arch as of $date (see $LAST_LOG)"
|
||||
vm_reboot
|
||||
kernel_before="$(vm_value 'uname -r')"
|
||||
|
||||
run_in_vm version '"$HOME/.local/bin/version"'
|
||||
assert_output "last synced with Arch"
|
||||
|
||||
local snapshots_before
|
||||
snapshots_before="$(vm_value 'sudo snapper -c root list 2> /dev/null | wc -l')"
|
||||
|
||||
cd_update
|
||||
assert_status 0
|
||||
assert_output "Please reboot when convenient"
|
||||
refute_vm "the first mirror isn't the archive any more" \
|
||||
'grep -m1 "^Server" /etc/pacman.d/mirrorlist | grep -q archive.archlinux.org'
|
||||
assert_vm "update took a snapshot first (if / is btrfs)" "
|
||||
[ \"\$(findmnt -no FSTYPE /)\" != btrfs ] \
|
||||
|| [ \"\$(sudo snapper -c root list | wc -l)\" -gt $snapshots_before ]"
|
||||
|
||||
vm_reboot
|
||||
refute_vm "a newer kernel is running" "[ \"\$(uname -r)\" = $(q "$kernel_before") ]"
|
||||
health
|
||||
}
|
||||
Reference in New Issue
Block a user