tests: add test to check layouts are removed properly

As in some corner cases this was not the case and the applications
could not even start.
This commit is contained in:
Alfonso Sánchez-Beato
2023-01-05 13:41:57 +00:00
committed by Michael Vogt
parent 3fbc941e3f
commit 56d0ac59d0
5 changed files with 76 additions and 0 deletions

View File

@@ -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

View File

@@ -0,0 +1,3 @@
#!/bin/sh
PS1='$ '
exec /bin/sh "$@"

View File

@@ -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

View File

@@ -0,0 +1,3 @@
#!/bin/sh
PS1='$ '
exec /bin/sh "$@"

View File

@@ -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