-
Notifications
You must be signed in to change notification settings - Fork 561
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tests: spread test holding and unhold refreshes
Signed-off-by: Miguel Pires <miguel.pires@canonical.com>
- Loading branch information
1 parent
bde4921
commit 13ebf7d
Showing
1 changed file
with
75 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
summary: Check snap refresh hold and unhold | ||
|
||
prepare: | | ||
snap install test-snapd-tools | ||
snap install --devmode jq | ||
restore: | | ||
snap refresh --unhold || true | ||
snap refresh --unhold test-snapd-tools || true | ||
snap remove --purge test-snapd-tools || true | ||
execute: | | ||
reset() { | ||
snap refresh --channel=latest/stable test-snapd-tools | ||
snap refresh --unhold test-snapd-tools | ||
snap refresh --unhold | ||
} | ||
echo "No snaps auto-refresh in an all-snaps hold" | ||
snap refresh --hold=forever | ||
systemctl stop snapd.{service,socket} | ||
"$TESTSTOOLS"/snapd-state change-snap-channel test-snapd-tools edge | ||
"$TESTSTOOLS"/snapd-state force-autorefresh | ||
systemctl start snapd.{socket,service} | ||
if retry -n 5 --quiet sh -c 'snap changes | tail -2 | grep "Done.*Auto-refresh"'; then | ||
echo "expected 'snap refresh --hold' to prevent auto-refresh" | ||
exit 1 | ||
fi | ||
echo "Snap doesn't auto-refresh with a specific hold" | ||
reset | ||
snap refresh --hold test-snapd-tools | ||
systemctl stop snapd.{service,socket} | ||
"$TESTSTOOLS"/snapd-state change-snap-channel test-snapd-tools edge | ||
"$TESTSTOOLS"/snapd-state force-autorefresh | ||
systemctl start snapd.{socket,service} | ||
if retry -n 5 --quiet sh -c 'snap changes | tail -2 | grep "Done.*Auto-refresh"'; then | ||
echo "expected 'snap refresh --hold' to prevent auto-refresh" | ||
exit 1 | ||
fi | ||
echo "Snaps auto-refresh without holds" | ||
reset | ||
CHANGE_ID=$(snap changes | tail -2 | grep "Done.*Remove hold on refreshes of all snaps" | awk '{print $1}') | ||
systemctl stop snapd.{service,socket} | ||
"$TESTSTOOLS"/snapd-state change-snap-channel test-snapd-tools edge | ||
"$TESTSTOOLS"/snapd-state force-autorefresh | ||
systemctl start snapd.{socket,service} | ||
"$TESTSTOOLS"/snapd-state wait-for-autorefresh "$CHANGE_ID" | ||
echo "Held snaps don't refresh in general refreshes" | ||
reset | ||
snap refresh --hold=forever test-snapd-tools | ||
snap refresh 2>&1 | MATCH "All snaps up to date." | ||
echo "Held snaps are refreshed in specific refreshes" | ||
reset | ||
snap refresh --hold test-snapd-tools | ||
snap refresh --channel=latest/edge test-snapd-tools 2>&1 | MATCH "test-snapd-tools .* refreshed" | ||
echo "Generic refreshes ignore holds on all snaps" | ||
reset | ||
snap refresh --hold | ||
systemctl stop snapd.{service,socket} | ||
"$TESTSTOOLS"/snapd-state change-snap-channel test-snapd-tools edge | ||
systemctl start snapd.{socket,service} | ||
snap refresh 2>&1 | MATCH "test-snapd-tools .* refreshed" |