Skip to content

Commit

Permalink
tests: spread test holding and unhold refreshes
Browse files Browse the repository at this point in the history
Signed-off-by: Miguel Pires <miguel.pires@canonical.com>
  • Loading branch information
MiguelPires committed Aug 24, 2022
1 parent bde4921 commit 13ebf7d
Showing 1 changed file with 75 additions and 0 deletions.
75 changes: 75 additions & 0 deletions tests/main/snap-refresh-hold/task.yaml
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"

0 comments on commit 13ebf7d

Please sign in to comment.