Skip to content

Commit

Permalink
tests: add test to check layouts are removed properly
Browse files Browse the repository at this point in the history
As in some corner cases this was not the case and the applications
could not even start.
  • Loading branch information
alfonsosanchezbeato committed Jan 13, 2023
1 parent b467bdd commit 5725cc7
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 0 deletions.
36 changes: 36 additions & 0 deletions tests/main/layout-remove/task.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
summary: Ensure that removing a layout works as expected

details: |
This test installs a test snap that uses layout declarations and
then refreshes it with a new version that removes one of the
layouts.
# No core22 snap for i386
systems: [-ubuntu-*-32]

prepare: |
"$TESTSTOOLS"/snaps-state install-local test-snapd-layout
execute: |
snap pack test-layout-v1
snap pack test-layout-v2
snap install --dangerous test-layout_1.0_all.snap
# Check layouts. Note that the mount namespace is created in the first run.
test-layout.test -c "test -d /var/test_tmpfs"
test-layout.test -c "test -d /var/lib/test_common"
test-layout.test -c "test -d /var/lib/test_data"
# Layouts have been configured
MATCH test_tmpfs < /run/snapd/ns/snap.test-layout.fstab
MATCH test_common < /run/snapd/ns/snap.test-layout.fstab
MATCH test_data < /run/snapd/ns/snap.test-layout.fstab
# Refreshing will update the mount namespace
snap install --dangerous test-layout_1.1_all.snap
# Should run fine
test-layout.test -c "test -d /var/test_tmpfs"
not test-layout.test -c "test -d /var/lib/test_common"
not test-layout.test -c "test -d /var/lib/test_data"
# There is no trace of the removed layouts
MATCH test_tmpfs < /run/snapd/ns/snap.test-layout.fstab
not MATCH test_common < /run/snapd/ns/snap.test-layout.fstab
not MATCH test_data < /run/snapd/ns/snap.test-layout.fstab
3 changes: 3 additions & 0 deletions tests/main/layout-remove/test-layout-v1/bin/test
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
PS1='$ '
exec /bin/sh "$@"
19 changes: 19 additions & 0 deletions tests/main/layout-remove/test-layout-v1/meta/snap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: test-layout
version: 1.0
summary: Test layouts
description: 'Test layout changes'
base: core22
confinement: strict
grade: devel

layout:
/var/lib/test_data:
bind: $SNAP_DATA/test_data
/var/lib/test_common:
bind: $SNAP_COMMON/test_common
/var/test_tmpfs:
type: tmpfs

apps:
test:
command: bin/test
3 changes: 3 additions & 0 deletions tests/main/layout-remove/test-layout-v2/bin/test
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
PS1='$ '
exec /bin/sh "$@"
15 changes: 15 additions & 0 deletions tests/main/layout-remove/test-layout-v2/meta/snap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: test-layout
version: 1.1
summary: Test layouts
description: 'Test layout changes'
base: core22
confinement: strict
grade: devel

layout:
/var/test_tmpfs:
type: tmpfs

apps:
test:
command: bin/test

0 comments on commit 5725cc7

Please sign in to comment.