]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/partition/test-repart.sh
test-repart: also print json output
[thirdparty/systemd.git] / src / partition / test-repart.sh
CommitLineData
e29e4d57
ZJS
1#!/usr/bin/env bash
2set -ex
3
4repart=$1
5test -x $repart
6
7D=$(mktemp --directory)
8trap "rm -rf '$D'" EXIT INT QUIT PIPE
9mkdir -p $D/definitions
10
e29e4d57
ZJS
11SEED=e2a40bf9-73f1-4278-9160-49c031e7aef8
12
e4ec8b1f
ZJS
13echo "### Testing systemd-repart --empty=create ###"
14
05ae606b 15$repart $D/zzz --empty=create --size=1G --seed=$SEED
e29e4d57 16
46072ae3 17sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/empty
e29e4d57
ZJS
18
19cmp $D/empty - <<EOF
20label: gpt
21label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
22device: $D/zzz
23unit: sectors
24first-lba: 2048
25last-lba: 2097118
26EOF
27
e4ec8b1f
ZJS
28echo "### Testing with root, root2, home, & swap ###"
29
e29e4d57
ZJS
30cat >$D/definitions/root.conf <<EOF
31[Partition]
26b0fda9 32Type=root-x86-64
e29e4d57
ZJS
33EOF
34
35ln -s root.conf $D/definitions/root2.conf
36
37cat >$D/definitions/home.conf <<EOF
38[Partition]
39Type=home
46072ae3
ZJS
40Label=home-first
41Label=home-always-too-long-xxxxxxxxxxxxxx-%v
e29e4d57
ZJS
42EOF
43
46072ae3 44cat >$D/definitions/swap.conf <<EOF
e29e4d57
ZJS
45[Partition]
46Type=swap
47SizeMaxBytes=64M
48PaddingMinBytes=92M
49EOF
50
51$repart $D/zzz --dry-run=no --seed=$SEED --definitions=$D/definitions
52
53sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated
54
55cmp $D/populated - <<EOF
56label: gpt
57label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
58device: $D/zzz
59unit: sectors
60first-lba: 2048
61last-lba: 2097118
46072ae3 62$D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
e29e4d57
ZJS
63$D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
64$D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
65$D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
66EOF
67
e4ec8b1f
ZJS
68echo "### Testing with root, root2, home, swap, & another partition ###"
69
e29e4d57
ZJS
70cat >$D/definitions/swap.conf <<EOF
71[Partition]
72Type=swap
73SizeMaxBytes=64M
74EOF
75
76cat >$D/definitions/extra.conf <<EOF
77[Partition]
78Type=linux-generic
7b5cb4ce
TH
79Label=custom_label
80UUID=a0a1a2a3a4a5a6a7a8a9aaabacadaeaf
e29e4d57
ZJS
81EOF
82
46072ae3
ZJS
83echo "Label=ignored_label" >>$D/definitions/home.conf
84echo "UUID=b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" >>$D/definitions/home.conf
7b5cb4ce 85
e29e4d57
ZJS
86$repart $D/zzz --dry-run=no --seed=$SEED --definitions=$D/definitions
87
88sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated2
89
90cmp $D/populated2 - <<EOF
91label: gpt
92label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
93device: $D/zzz
94unit: sectors
95first-lba: 2048
96last-lba: 2097118
46072ae3 97$D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
e29e4d57
ZJS
98$D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
99$D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
100$D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
7b5cb4ce 101$D/zzz5 : start= 1908696, size= 188416, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=A0A1A2A3-A4A5-A6A7-A8A9-AAABACADAEAF, name="custom_label"
e29e4d57
ZJS
102EOF
103
e4ec8b1f
ZJS
104echo "### Resizing to 2G ###"
105
05ae606b 106$repart $D/zzz --size=2G --dry-run=no --seed=$SEED --definitions=$D/definitions
e29e4d57
ZJS
107
108sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated3
109
110cmp $D/populated3 - <<EOF
111label: gpt
112label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
113device: $D/zzz
114unit: sectors
115first-lba: 2048
116last-lba: 4194270
46072ae3 117$D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
e29e4d57
ZJS
118$D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
119$D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
120$D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
7b5cb4ce 121$D/zzz5 : start= 1908696, size= 2285568, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=A0A1A2A3-A4A5-A6A7-A8A9-AAABACADAEAF, name="custom_label"
e29e4d57 122EOF
757bc2e4
LP
123
124dd if=/dev/urandom of=$D/block-copy bs=4096 count=10240
125
e4ec8b1f
ZJS
126echo "### Testing with root, root2, home, swap, another partition, & partition copy ###"
127
757bc2e4
LP
128cat >$D/definitions/extra2.conf <<EOF
129[Partition]
130Type=linux-generic
131Label=block-copy
132UUID=2a1d97e1d0a346cca26eadc643926617
133CopyBlocks=$D/block-copy
134EOF
135
136$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions
137
138sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated4
139
140cmp $D/populated4 - <<EOF
141label: gpt
142label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
143device: $D/zzz
144unit: sectors
145first-lba: 2048
146last-lba: 6291422
46072ae3 147$D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
757bc2e4
LP
148$D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
149$D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
150$D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
151$D/zzz5 : start= 1908696, size= 2285568, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=A0A1A2A3-A4A5-A6A7-A8A9-AAABACADAEAF, name="custom_label"
152$D/zzz6 : start= 4194264, size= 2097152, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=2A1D97E1-D0A3-46CC-A26E-ADC643926617, name="block-copy"
153EOF
154
155cmp --bytes=41943040 --ignore-initial=0:$((512*4194264)) $D/block-copy $D/zzz
e4ec8b1f
ZJS
156
157echo "### Testing json output ###"
158$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions --json=help
159$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions --json=pretty
160$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions --json=short