1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
summary: Check that revert of a snap in devmode restores devmode
details: |
Check that reverting a refresh preserves the mode it was refreshed with
(i.e., reverting a snap refreshed with --devmode results in it being run
in devmode after being reverted).
# slow in autopkgtest (>1m)
backends: [-autopkgtest]
# ubuntu-14.04: systemd-run not supported
systems: [-ubuntu-14.04*]
environment:
STORE_TYPE/fake: fake
STORE_TYPE/remote: ${REMOTE_STORE}
BLOB_DIR: $(pwd)/fake-store-blobdir
prepare: |
if [ "$STORE_TYPE" = "fake" ]; then
if os.query is-core; then
exit
fi
if [ "$TRUST_TEST_KEYS" = "false" ]; then
echo "This test needs test keys to be trusted"
exit
fi
fi
echo "Given a snap is installed"
snap install --devmode test-snapd-tools
if [ "$STORE_TYPE" = "fake" ]; then
"$TESTSTOOLS"/store-state setup-fake-store "$BLOB_DIR"
echo "And a new version of that snap put in the controlled store"
"$TESTSTOOLS"/store-state init-fake-refreshes "$BLOB_DIR" test-snapd-tools
fi
restore: |
if [ "$STORE_TYPE" = "fake" ]; then
if os.query is-core; then
exit
fi
if [ "$TRUST_TEST_KEYS" = "false" ]; then
echo "This test needs test keys to be trusted"
exit
fi
"$TESTSTOOLS"/store-state teardown-fake-store "$BLOB_DIR"
fi
execute: |
if [ "$STORE_TYPE" = "fake" ]; then
if os.query is-core; then
exit
fi
if [ "$TRUST_TEST_KEYS" = "false" ]; then
echo "This test needs test keys to be trusted"
exit
fi
fi
echo "When a refresh is made"
snap refresh --devmode --edge test-snapd-tools
echo "Then the new version is installed"
snap list | MATCH 'test-snapd-tools +[0-9]+\.[0-9]+\+fake1'
SNAP_MOUNT_DIR="$(os.paths snap-mount-dir)"
LATEST=$(readlink "$SNAP_MOUNT_DIR"/test-snapd-tools/current)
echo "When a revert is made without --devmode flag"
snap revert test-snapd-tools
echo "Then the old version is active"
snap list | MATCH 'test-snapd-tools +[0-9]+\.[0-9]+ '
echo "And the snap runs in devmode"
snap list|MATCH 'test-snapd-tools .* devmode'
echo "When the latest revision is installed again"
snap remove --revision="$LATEST" test-snapd-tools
snap refresh --edge test-snapd-tools
if [ "$(snap debug confinement)" = strict ] ; then
echo "And revert is made with --jailmode flag"
snap revert --jailmode test-snapd-tools
echo "Then snap now runs confined (in jailmode, bah)"
snap list|MATCH 'test-snapd-tools .* jailmode'
fi
|