File: Makefile

package info (click to toggle)
snapd 2.72-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 80,412 kB
  • sloc: sh: 16,506; ansic: 16,211; python: 11,213; makefile: 1,919; exp: 190; awk: 58; xml: 22
file content (146 lines) | stat: -rw-r--r-- 8,722 bytes parent folder | download | duplicates (9)
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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 $<