diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/.gitignore b/cmd/snap-update-ns/testdata/opt-foo-bar/.gitignore new file mode 100644 index 00000000000..059a54ee4d0 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/.gitignore @@ -0,0 +1,7 @@ +# Mountinfo files are useful for debugging but not reproducible +# and not useful for being stored in history. +*.mountinfo +# Snap files are built from local files. +*.snap +# Find files are logs from running find in the mount namespace of the snap. +*.find diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/1-initially-connected.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/1-initially-connected.current.fstab new file mode 100644 index 00000000000..f05b4d98a06 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/1-initially-connected.current.fstab @@ -0,0 +1,4 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/1-initially-connected.desired.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/1-initially-connected.desired.fstab new file mode 100644 index 00000000000..e37a6ac51cf --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/1-initially-connected.desired.fstab @@ -0,0 +1,2 @@ +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/2-after-disconnect.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/2-after-disconnect.current.fstab new file mode 100644 index 00000000000..b1e6d56fd08 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/2-after-disconnect.current.fstab @@ -0,0 +1,3 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/2-after-disconnect.desired.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/2-after-disconnect.desired.fstab new file mode 100644 index 00000000000..c00dedeb7a1 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/2-after-disconnect.desired.fstab @@ -0,0 +1 @@ +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/3-after-reconnect.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/3-after-reconnect.current.fstab new file mode 100644 index 00000000000..86730da5246 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/3-after-reconnect.current.fstab @@ -0,0 +1,4 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/3-after-reconnect.desired.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/3-after-reconnect.desired.fstab new file mode 100644 index 00000000000..e37a6ac51cf --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/3-after-reconnect.desired.fstab @@ -0,0 +1,2 @@ +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.before.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.before.current.fstab new file mode 100644 index 00000000000..b1e6d56fd08 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.before.current.fstab @@ -0,0 +1,3 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.current.fstab new file mode 100644 index 00000000000..86730da5246 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.current.fstab @@ -0,0 +1,4 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.desired.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.desired.fstab new file mode 100644 index 00000000000..e37a6ac51cf --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/4-initially-disconnected-then-connected.desired.fstab @@ -0,0 +1,2 @@ +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.before.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.before.current.fstab new file mode 100644 index 00000000000..f05b4d98a06 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.before.current.fstab @@ -0,0 +1,4 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.current.fstab new file mode 100644 index 00000000000..e4e379bc056 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.current.fstab @@ -0,0 +1,4 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x2/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.desired.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.desired.fstab new file mode 100644 index 00000000000..31fc155a474 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/5-initially-connected-then-content-refreshed.desired.fstab @@ -0,0 +1,2 @@ +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x2/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.before.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.before.current.fstab new file mode 100644 index 00000000000..f05b4d98a06 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.before.current.fstab @@ -0,0 +1,4 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x1/opt none bind,ro 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-layout/x1/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.current.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.current.fstab new file mode 100644 index 00000000000..aa12cc10901 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.current.fstab @@ -0,0 +1,4 @@ +tmpfs / tmpfs x-snapd.origin=rootfs 0 0 +tmpfs /opt tmpfs x-snapd.synthetic,x-snapd.needed-by=/opt/foo/bar,mode=0755,uid=0,gid=0 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x2/opt none bind,ro 0 0 +/snap/test-snapd-layout/x2/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.desired.fstab b/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.desired.fstab new file mode 100644 index 00000000000..366e76b3138 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/6-initially-connected-then-app-refreshed.desired.fstab @@ -0,0 +1,2 @@ +/snap/test-snapd-layout/x2/opt/foo/bar /opt/foo/bar none rbind,rw,x-snapd.origin=layout 0 0 +/snap/test-snapd-content/x1/opt /snap/test-snapd-layout/x2/opt none bind,ro 0 0 diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/Makefile b/cmd/snap-update-ns/testdata/opt-foo-bar/Makefile new file mode 100644 index 00000000000..7a6ebb19b35 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/Makefile @@ -0,0 +1,146 @@ +# This makefiles uses grouped-target feature and relies on it for correctness. +ifeq (,$(findstring grouped-target,$(.FEATURES))) +$(error You need make with the grouped-taget feature to build this dataset) +endif + +fstab_files = \ + 1-initially-connected.current.fstab \ + 1-initially-connected.desired.fstab \ + 2-after-disconnect.desired.fstab \ + 2-after-disconnect.current.fstab \ + 3-after-reconnect.desired.fstab \ + 3-after-reconnect.current.fstab \ + 4-initially-disconnected-then-connected.before.current.fstab \ + 4-initially-disconnected-then-connected.desired.fstab \ + 4-initially-disconnected-then-connected.current.fstab \ + 5-initially-connected-then-content-refreshed.before.current.fstab \ + 5-initially-connected-then-content-refreshed.desired.fstab \ + 5-initially-connected-then-content-refreshed.current.fstab \ + 6-initially-connected-then-app-refreshed.before.current.fstab \ + 6-initially-connected-then-app-refreshed.desired.fstab \ + 6-initially-connected-then-app-refreshed.current.fstab + +# None of the fstab files can be built in parallel as the depend on global system state. +.NOTPARALLEL: $(fstab_files) +.PHONY: all +all: $(fstab_files) + +.PHONY: +clean: + rm -f $(fstab_files) + rm -f *.snap + rm -f *.mountinfo + rm -f *.find + +$(addprefix 1-initially-connected,.desired.fstab .current.fstab .mountinfo) &: PREFIX=1-initially-connected +$(addprefix 1-initially-connected,.desired.fstab .current.fstab .mountinfo) &: test-snapd-layout_a_all.snap test-snapd-content_a_all.snap + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + sudo snap install --dangerous $(word 1,$^) + sudo snap install --dangerous $(word 2,$^) + sudo snap connect test-snapd-layout:content test-snapd-content:content + snap run test-snapd-layout.sh -c true + cp /var/lib/snapd/mount/snap.test-snapd-layout.fstab $(PREFIX).desired.fstab + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).current.fstab + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt cat /proc/self/mountinfo >$(PREFIX).mountinfo + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /opt >$(PREFIX).opt.find + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + +$(addprefix 2-after-disconnect,.desired.fstab .current.fstab .mountinfo) &: PREFIX=2-after-disconnect +$(addprefix 2-after-disconnect,.desired.fstab .current.fstab .mountinfo) &: test-snapd-layout_a_all.snap test-snapd-content_a_all.snap + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + sudo snap install --dangerous $(word 1,$^) + sudo snap install --dangerous $(word 2,$^) + sudo snap connect test-snapd-layout:content test-snapd-content:content + snap run test-snapd-layout.sh -c true + sudo snap disconnect test-snapd-layout:content test-snapd-content:content + cp /var/lib/snapd/mount/snap.test-snapd-layout.fstab $(PREFIX).desired.fstab + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).current.fstab + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt cat /proc/self/mountinfo >$(PREFIX).mountinfo + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /opt >$(PREFIX).opt.find + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + +$(addprefix 3-after-reconnect,.desired.fstab .current.fstab .mountinfo) &: PREFIX=3-after-reconnect +$(addprefix 3-after-reconnect,.desired.fstab .current.fstab .mountinfo) &: test-snapd-layout_a_all.snap test-snapd-content_a_all.snap + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + sudo snap install --dangerous $(word 1,$^) + sudo snap install --dangerous $(word 2,$^) + sudo snap connect test-snapd-layout:content test-snapd-content:content + snap run test-snapd-layout.sh -c true + sudo snap disconnect test-snapd-layout:content test-snapd-content:content + sudo snap connect test-snapd-layout:content test-snapd-content:content + cp /var/lib/snapd/mount/snap.test-snapd-layout.fstab $(PREFIX).desired.fstab + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).current.fstab + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt cat /proc/self/mountinfo >$(PREFIX).mountinfo + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /opt >$(PREFIX).opt.find + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + +$(addprefix 4-initially-disconnected-then-connected,.before.current.fstab .desired.fstab .current.fstab .mountinfo) &: PREFIX=4-initially-disconnected-then-connected +$(addprefix 4-initially-disconnected-then-connected,.before.current.fstab .desired.fstab .current.fstab .mountinfo) &: test-snapd-layout_a_all.snap test-snapd-content_a_all.snap + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + sudo snap install --dangerous $(word 1,$^) + sudo snap install --dangerous $(word 2,$^) + snap connections test-snapd-layout | grep -xF 'content test-snapd-layout:content - -' + snap run test-snapd-layout.sh -c true + # This file is used by unit tests model the changes needed after the refresh below. + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).before.current.fstab + sudo snap connect test-snapd-layout:content test-snapd-content:content + cp /var/lib/snapd/mount/snap.test-snapd-layout.fstab $(PREFIX).desired.fstab + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).current.fstab + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt cat /proc/self/mountinfo >$(PREFIX).mountinfo + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /opt >$(PREFIX).opt.find + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + +$(addprefix 5-initially-connected-then-content-refreshed,.before.current.fstab .desired.fstab .current.fstab .mountinfo) &: PREFIX=5-initially-connected-then-content-refreshed +$(addprefix 5-initially-connected-then-content-refreshed,.before.current.fstab .desired.fstab .current.fstab .mountinfo) &: test-snapd-layout_a_all.snap test-snapd-content_a_all.snap test-snapd-content_b_all.snap + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + sudo snap install --dangerous $(word 1,$^) + sudo snap install --dangerous $(word 2,$^) + sudo snap connect test-snapd-layout:content test-snapd-content:content + snap run test-snapd-layout.sh -c true + # This file is used by unit tests model the changes needed after the refresh below. + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).before.current.fstab + sudo snap install --dangerous $(word 3,$^) # Refresh the content. + cp /var/lib/snapd/mount/snap.test-snapd-layout.fstab $(PREFIX).desired.fstab + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).current.fstab + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt cat /proc/self/mountinfo >$(PREFIX).mountinfo + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /snap/test-snapd-content/x1/ >$(PREFIX).content-x1.find + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /snap/test-snapd-content/x2/ >$(PREFIX).content-x2.find + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /opt >$(PREFIX).opt.find + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + +$(addprefix 6-initially-connected-then-app-refreshed,.before.current.fstab .desired.fstab .current.fstab .mountinfo) &: PREFIX=6-initially-connected-then-app-refreshed +$(addprefix 6-initially-connected-then-app-refreshed,.before.current.fstab .desired.fstab .current.fstab .mountinfo) &: test-snapd-layout_a_all.snap test-snapd-content_a_all.snap + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + sudo snap install --dangerous $(word 1,$^) + sudo snap install --dangerous $(word 2,$^) + sudo snap connect test-snapd-layout:content test-snapd-content:content + snap run test-snapd-layout.sh -c true + # This file is used by unit tests model the changes needed after the refresh below. + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).before.current.fstab + sudo snap install --dangerous $(word 1,$^) # Refresh the app. + cp /var/lib/snapd/mount/snap.test-snapd-layout.fstab $(PREFIX).desired.fstab + cp /run/snapd/ns/snap.test-snapd-layout.fstab $(PREFIX).current.fstab + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt cat /proc/self/mountinfo >$(PREFIX).mountinfo + sudo nsenter -m/run/snapd/ns/test-snapd-layout.mnt find /opt >$(PREFIX).opt.find + sudo snap remove --purge test-snapd-layout + sudo snap remove --purge test-snapd-content + +test-snapd-layout_a_all.snap: test-snapd-layout + snap pack $< + +test-snapd-content_a_all.snap: test-snapd-content-a + snap pack $< + +test-snapd-content_b_all.snap: test-snapd-content-b + snap pack $< diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-a/meta/snap.yaml b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-a/meta/snap.yaml new file mode 100644 index 00000000000..11d7ca71fd6 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-a/meta/snap.yaml @@ -0,0 +1,13 @@ +name: test-snapd-content +version: a + +confinement: strict +base: core24 +architecture: all + +slots: + content: + interface: content + content: content + read: + - /opt diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-a/opt/foo/bar/content-is-connected b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-a/opt/foo/bar/content-is-connected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-a/opt/foo/bar/content-version-a b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-a/opt/foo/bar/content-version-a new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-b/meta/snap.yaml b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-b/meta/snap.yaml new file mode 100644 index 00000000000..6c0a8d9ecc2 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-b/meta/snap.yaml @@ -0,0 +1,13 @@ +name: test-snapd-content +version: b + +confinement: strict +base: core24 +architecture: all + +slots: + content: + interface: content + content: content + read: + - /opt diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-b/opt/foo/bar/content-is-connected b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-b/opt/foo/bar/content-is-connected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-b/opt/foo/bar/content-version-b b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-content-b/opt/foo/bar/content-version-b new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/bin/bash b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/bin/bash new file mode 100755 index 00000000000..acd5e2fd9a3 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/bin/bash @@ -0,0 +1,3 @@ +#!/bin/sh +PS1='$ ' +exec /bin/bash "$@" diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/bin/sh b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/bin/sh new file mode 100755 index 00000000000..0f845e07c5a --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/bin/sh @@ -0,0 +1,3 @@ +#!/bin/sh +PS1='$ ' +exec /bin/sh "$@" diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/meta/snap.yaml b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/meta/snap.yaml new file mode 100644 index 00000000000..5e342afa165 --- /dev/null +++ b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/meta/snap.yaml @@ -0,0 +1,25 @@ +name: test-snapd-layout +version: a + +confinement: strict +base: core24 +architecture: all + +apps: + sh: + command: bin/sh + bash: + command: bin/bash + +plugs: + content: # Note that this plug is always called "content" for convenience. + content: content + interface: content + target: $SNAP/opt + +layout: + # /opt is a real directory but /opt/foo needs to be created as a mimic. + # On the other hand /opt/foo/bar should not be a mimic and is created as a + # regular subdirectory having constructed /opt/foo. + /opt/foo/bar: + bind: $SNAP/opt/foo/bar diff --git a/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/opt/foo/bar/content-is-disconnected b/cmd/snap-update-ns/testdata/opt-foo-bar/test-snapd-layout/opt/foo/bar/content-is-disconnected new file mode 100644 index 00000000000..e69de29bb2d