• Home
  • Raw
  • Download

Lines Matching +full:0 +full:- +full:dev

1 #!/bin/bash -eu
4 # Use of this source code is governed by a BSD-style license that can be
10 . "$(dirname "$0")/common.sh"
12 CGPT=$(readlink -f "$1")
13 [ -x ""${CGPT}"" ] || error "Can't execute $CGPT"
19 [ -d "$DIR" ] || mkdir -p "$DIR"
25 if "$@" 2>/dev/null; then
28 set -e
36 DEV=fake_dev.bin
37 rm -f ${DEV}
38 dd if=/dev/zero of=${DEV} conv=notrunc bs=512 count=${NUM_SECTORS} 2>/dev/null
43 DATA_GUID='0fc63daf-8483-4772-8e79-3d69d8477de4'
49 KERN_GUID='fe3a2a5d-4f32-41a7-b725-accc3285a309'
55 ROOTFS_GUID='3cb8e202-3b7e-47dd-8a3c-7ff2a13cfcec'
61 ESP_GUID='c12a7328-f81f-11d2-ba4b-00a0c93ec93b'
67 FUTURE_GUID='2e0a753d-9e48-43b0-8337-b15192cb1b5e'
73 RANDOM_GUID='2364a860-bf63-42fb-a83d-9ad3e057fcf5'
76 RANDOM_DRIVE_GUID='12345678-0000-1111-2222-123456789ABC'
78 "${CGPT}" create "${MTD[@]}" ${DEV}
83 "${CGPT}" add "${MTD[@]}" -b ${DATA_START} -s ${DATA_SIZE} -t ${DATA_GUID} \
84 -l "${DATA_LABEL}" ${DEV}
85 "${CGPT}" add "${MTD[@]}" -b ${KERN_START} -s ${KERN_SIZE} -t ${KERN_GUID} \
86 -l "${KERN_LABEL}" ${DEV}
87 "${CGPT}" add "${MTD[@]}" -b ${ROOTFS_START} -s ${ROOTFS_SIZE} \
88 -t ${ROOTFS_GUID} -l "${ROOTFS_LABEL}" ${DEV}
89 "${CGPT}" add "${MTD[@]}" -b ${ESP_START} -s ${ESP_SIZE} -t ${ESP_GUID} \
90 -l "${ESP_LABEL}" ${DEV}
91 "${CGPT}" add "${MTD[@]}" -b ${FUTURE_START} -s ${FUTURE_SIZE} \
92 -t ${FUTURE_GUID} -l "${FUTURE_LABEL}" ${DEV}
93 "${CGPT}" add "${MTD[@]}" -b ${RANDOM_START} -s ${RANDOM_SIZE} \
94 -t ${RANDOM_GUID} -l "${RANDOM_LABEL}" ${DEV}
99 X=$("${CGPT}" show "${MTD[@]}" -b -i $DATA_NUM ${DEV})
100 Y=$("${CGPT}" show "${MTD[@]}" -s -i $DATA_NUM ${DEV})
103 X=$("${CGPT}" show "${MTD[@]}" -b -i $KERN_NUM ${DEV})
104 Y=$("${CGPT}" show "${MTD[@]}" -s -i $KERN_NUM ${DEV})
107 X=$("${CGPT}" show "${MTD[@]}" -b -i $ROOTFS_NUM ${DEV})
108 Y=$("${CGPT}" show "${MTD[@]}" -s -i $ROOTFS_NUM ${DEV})
111 X=$("${CGPT}" show "${MTD[@]}" -b -i $ESP_NUM ${DEV})
112 Y=$("${CGPT}" show "${MTD[@]}" -s -i $ESP_NUM ${DEV})
115 X=$("${CGPT}" show "${MTD[@]}" -b -i $FUTURE_NUM ${DEV})
116 Y=$("${CGPT}" show "${MTD[@]}" -s -i $FUTURE_NUM ${DEV})
119 X=$("${CGPT}" show "${MTD[@]}" -b -i $RANDOM_NUM ${DEV})
120 Y=$("${CGPT}" show "${MTD[@]}" -s -i $RANDOM_NUM ${DEV})
126 "${CGPT}" add "${MTD[@]}" -i 1 -b ${DATA_START} ${DEV} || error
127 X=$("${CGPT}" show "${MTD[@]}" -b -i 1 ${DEV})
132 "${CGPT}" add "${MTD[@]}" -i 1 -s ${DATA_SIZE} ${DEV} || error
133 X=$("${CGPT}" show "${MTD[@]}" -s -i 1 ${DEV})
137 "${CGPT}" add "${MTD[@]}" -i 1 -t reserved ${DEV} || error
138 X=$("${CGPT}" show "${MTD[@]}" -t -i 1 ${DEV} | tr '[:upper:]' '[:lower:]')
141 "${CGPT}" add "${MTD[@]}" -i 1 -t 610a563a-a55c-4ae0-ab07-86e5bb9db67f \
142 ${DEV} || error
143 X=$("${CGPT}" show "${MTD[@]}" -t -i 1 ${DEV})
144 [ "$X" = "610A563A-A55C-4AE0-AB07-86E5BB9DB67F" ] || error
146 "${CGPT}" add "${MTD[@]}" -i 1 -t data ${DEV} || error
147 X=$("${CGPT}" show "${MTD[@]}" -t -i 1 ${DEV} | tr '[:upper:]' '[:lower:]')
150 ORIG_ID=$("${CGPT}" show "${MTD[@]}" -v ${DEV} | \
151 grep -i "disk uuid" | head -1 | awk ' { print $3 } ' )
153 "${CGPT}" edit "${MTD[@]}" -u ${RANDOM_DRIVE_GUID} ${DEV} || error
154 X=$("${CGPT}" show "${MTD[@]}" -v ${DEV} | grep -i "disk uuid" | \
155 head -1 | awk ' { print $3 } ' )
157 "${CGPT}" edit "${MTD[@]}" -u "${ORIG_ID}" ${DEV} || error
158 X=$("${CGPT}" show "${MTD[@]}" -v ${DEV} | grep -i "disk uuid" | \
159 head -1 | awk ' { print $3 } ' )
164 ORIG_ID=$("${CGPT}" show "${MTD[@]}" -v ${DEV} | \
165 grep -i "disk uuid" | awk ' { print $3 } ' )
167 "${CGPT}" edit "${MTD[@]}" -u ${RANDOM_DRIVE_GUID} ${DEV} || error
168 X=$("${CGPT}" show "${MTD[@]}" -v ${DEV} | grep -i "disk uuid" | \
169 head -1 | awk ' { print $3 } ' )
171 "${CGPT}" edit "${MTD[@]}" -u "${ORIG_ID}" ${DEV} || error
172 X=$("${CGPT}" show "${MTD[@]}" -v ${DEV} | grep -i "disk uuid" | \
177 "${CGPT}" boot "${MTD[@]}" -i ${KERN_NUM} ${DEV} >/dev/null
180 X=$("${CGPT}" boot "${MTD[@]}" ${DEV})
181 Y=$("${CGPT}" show "${MTD[@]}" -u -i $KERN_NUM $DEV)
185 # Output: ${DEV} has kernel partitions with the given priorities
187 local idx=0
188 "${CGPT}" create "${MTD[@]}" ${DEV}
191 "${CGPT}" add "${MTD[@]}" -t kernel -l "kern$idx" -b $((100 + 2 * idx)) \
192 -s 1 -P $pri ${DEV}
199 for idx in $("${CGPT}" find "${MTD[@]}" -t kernel ${DEV} | sed -e s@${DEV}@@);
201 output+=("$("${CGPT}" show "${MTD[@]}" -i "$idx" -P ${DEV})")
207 # Operation: expects ${DEV} to contain those kernel priorities
217 "${CGPT}" create "${MTD[@]}" ${DEV}
221 "${CGPT}" add "${MTD[@]}" -t rootfs -b 100 -s 1 ${DEV}
222 "${CGPT}" prioritize "${MTD[@]}" ${DEV}
226 make_pri 2 0 0
227 "${CGPT}" prioritize "${MTD[@]}" -i 1 ${DEV}
228 assert_pri 1 0 0
229 "${CGPT}" prioritize "${MTD[@]}" -i 2 ${DEV}
230 assert_pri 1 2 0
231 "${CGPT}" prioritize "${MTD[@]}" -i 1 ${DEV}
232 assert_pri 2 1 0
233 "${CGPT}" prioritize "${MTD[@]}" -i 2 ${DEV}
234 assert_pri 1 2 0
236 make_pri 8 8 8 8 8 8 8 8 8 8 8 0 0 8
237 "${CGPT}" prioritize "${MTD[@]}" ${DEV}
238 assert_pri 1 1 1 1 1 1 1 1 1 1 1 0 0 1
241 "${CGPT}" prioritize "${MTD[@]}" -P 4 ${DEV}
242 assert_pri 4 4 4 4 4 4 4 4 4 4 4 0 0 4
245 "${CGPT}" prioritize "${MTD[@]}" -P 5 -i 3 ${DEV}
246 assert_pri 4 4 5 4 4 4 4 4 4 4 4 0 0 4
249 "${CGPT}" prioritize "${MTD[@]}" -P 3 -i 4 ${DEV}
250 assert_pri 1 1 2 3 1 1 1 1 1 1 1 0 0 1
253 "${CGPT}" prioritize "${MTD[@]}" -P 6 -i 1 -f ${DEV}
254 assert_pri 6 6 4 5 6 6 6 6 6 6 6 0 0 6
257 make_pri 0 0 0 0 0 0 0 0 0 0 0 0 0 0
258 "${CGPT}" prioritize "${MTD[@]}" -i 2 ${DEV}
259 assert_pri 0 1 0 0 0 0 0 0 0 0 0 0 0 0
262 make_pri 0 0 0 0 0 0 0 0 1 2 0 0 0 0
263 "${CGPT}" prioritize "${MTD[@]}" -P 5 -i 2 -f ${DEV}
267 "${CGPT}" prioritize "${MTD[@]}" ${DEV}
271 make_pri 1 1 2 2 3 3 4 4 5 5 0 6 7 7
272 "${CGPT}" prioritize "${MTD[@]}" -P 6 ${DEV}
273 assert_pri 1 1 1 1 2 2 3 3 4 4 0 5 6 6
276 make_pri 1 1 2 2 3 3 4 4 5 5 0 6 7 7
277 "${CGPT}" prioritize "${MTD[@]}" -P 7 -i 3 ${DEV}
278 assert_pri 1 1 7 1 2 2 3 3 4 4 0 5 6 6
281 make_pri 1 1 2 2 3 3 4 4 5 5 0 6 7 7
282 "${CGPT}" prioritize "${MTD[@]}" -P 6 -i 3 -f ${DEV}
283 assert_pri 1 1 6 6 1 1 2 2 3 3 0 4 5 5
286 make_pri 1 1 2 2 3 3 4 4 5 5 0 6 7 7
287 "${CGPT}" prioritize "${MTD[@]}" -P 2 ${DEV}
288 assert_pri 1 1 1 1 1 1 1 1 1 1 0 1 2 2
291 make_pri 1 1 2 2 3 3 4 4 5 5 0 6 7 7
292 "${CGPT}" prioritize "${MTD[@]}" -P 1 -i 3 ${DEV}
293 assert_pri 1 1 1 1 1 1 1 1 1 1 0 1 1 1
295 make_pri 15 15 14 14 13 13 12 12 11 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0
296 "${CGPT}" prioritize "${MTD[@]}" -i 3 ${DEV}
297 assert_pri 14 14 15 13 12 12 11 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 1 1 0
298 "${CGPT}" prioritize "${MTD[@]}" -i 5 ${DEV}
299 assert_pri 13 13 14 12 15 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 1 1 1 1 0
301 "${CGPT}" prioritize "${MTD[@]}" -i 1 -f ${DEV}
302 assert_pri 15 15 13 12 14 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 1 1 1 1 0
307 "${CGPT}" repair "${MTD[@]}" ${DEV}
308 ("${CGPT}" show "${MTD[@]}" ${DEV} | grep -q INVALID) && error
311 dd if=/dev/zero of=${DEV} conv=notrunc bs=512 count=33 2>/dev/null
312 "${CGPT}" show "${MTD[@]}" ${DEV} | grep -q INVALID
313 "${CGPT}" repair "${MTD[@]}" ${DEV}
314 ("${CGPT}" show "${MTD[@]}" ${DEV} | grep -q INVALID) && error
317 dd if=/dev/zero of=${DEV} seek=$((NUM_SECTORS - 33)) conv=notrunc bs=512 \
318 count=33 2>/dev/null
319 "${CGPT}" show "${MTD[@]}" ${DEV} | grep -q INVALID
320 "${CGPT}" repair "${MTD[@]}" ${DEV}
321 ("${CGPT}" show "${MTD[@]}" ${DEV} | grep -q INVALID) && error
323 # Double size. Check without|with MTD "-D 358400' (1000->2000|700->700 sectors).
324 "${CGPT}" create "${MTD[@]}" ${DEV}
325 "${CGPT}" show -v "${MTD[@]}" ${DEV} | grep -q -E 'Alternate LBA: 999' || error
326 "${CGPT}" show -v "${MTD[@]}" ${DEV} | grep -q -E 'Last LBA: (966|699)' || error
327 dd if=/dev/zero of=${DEV} bs=512 seek=$((2 * NUM_SECTORS)) count=0 2>/dev/null
328 "${CGPT}" repair "${MTD[@]}" ${DEV}
329 "${CGPT}" show -v "${MTD[@]}" ${DEV} | grep -q -E 'Alternate LBA: 1999' || error
330 "${CGPT}" show -v "${MTD[@]}" ${DEV} | grep -q -E 'Last LBA: (1966|699)' || error
332 dd if=/dev/zero of=${DEV} bs=512 count=${NUM_SECTORS} 2>/dev/null
335 "${CGPT}" create "${MTD[@]}" ${DEV}
336 "${CGPT}" legacy "${MTD[@]}" -p ${DEV}
337 "${CGPT}" show "${MTD[@]}" ${DEV} | grep -q -E "IGNORED.*Pri GPT" 2>/dev/null
338 ("${CGPT}" show "${MTD[@]}" ${DEV} | grep -q "Pri GPT table" 2>/dev/null) && \
340 "${CGPT}" repair "${MTD[@]}" ${DEV} 2>/dev/null
341 "${CGPT}" show "${MTD[@]}" ${DEV} | grep -q -E "IGNORED.*Pri GPT" 2>/dev/null
342 ("${CGPT}" show "${MTD[@]}" ${DEV} | grep -q "Pri GPT table" 2>/dev/null) && \
344 "${CGPT}" legacy "${MTD[@]}" -e ${DEV} 2>/dev/null
345 ("${CGPT}" show "${MTD[@]}" ${DEV} | grep -q -E "IGNORED.*Pri GPT") && error
346 "${CGPT}" show "${MTD[@]}" ${DEV} | grep -q "Pri GPT table"
348 "${CGPT}" create "${MTD[@]}" ${DEV}
349 "${CGPT}" legacy "${MTD[@]}" -p ${DEV}
350 run_basic_tests 2>/dev/null
352 "${CGPT}" create "${MTD[@]}" ${DEV}
353 "${CGPT}" legacy "${MTD[@]}" -p ${DEV}
354 run_prioritize_tests 2>/dev/null
357 echo "Test read vs read-write access..."
358 chmod 0444 ${DEV}
361 "${CGPT}" create "${MTD[@]}" -z ${DEV} 2>/dev/null && error
362 "${CGPT}" add "${MTD[@]}" -i 2 -P 3 ${DEV} 2>/dev/null && error
363 "${CGPT}" repair "${MTD[@]}" ${DEV} 2>/dev/null && error
364 "${CGPT}" prioritize "${MTD[@]}" -i 3 ${DEV} 2>/dev/null && error
367 "${CGPT}" boot "${MTD[@]}" -p ${DEV} 2>/dev/null && error
368 dd if=/dev/zero of=fake_mbr.bin bs=100 count=1 2>/dev/null
369 "${CGPT}" boot "${MTD[@]}" -b fake_mbr.bin ${DEV} 2>/dev/null && error
370 "${CGPT}" boot "${MTD[@]}" -i 2 ${DEV} 2>/dev/null && error
372 "${CGPT}" boot "${MTD[@]}" ${DEV} >/dev/null
373 "${CGPT}" show "${MTD[@]}" ${DEV} >/dev/null
374 "${CGPT}" find "${MTD[@]}" -t kernel ${DEV} >/dev/null
377 chmod 600 ${DEV}
379 dd if=/dev/zero of=${DEV} bs=5632 count=1
380 assert_fail ""${CGPT}"" create -D 1024 ${DEV}
382 dd if=/dev/zero of=${DEV} bs=6144 count=1
383 "${CGPT}" create -D 1024 ${DEV}
385 dd if=/dev/zero of=${DEV} bs=8K count=1
387 assert_fail ""${CGPT}"" create -D 511 ${DEV}
388 assert_fail ""${CGPT}"" create -D 513 ${DEV}
390 "${CGPT}" create -D 1024 ${DEV}
392 X=$("${CGPT}" show -D 1024 -d ${DEV} | grep -c "Number of entries: 24")
395 assert_fail ""${CGPT}"" show ${DEV}
397 "${CGPT}" show -D 1024 ${DEV}
399 assert_fail ""${CGPT}"" add -D 1024 -b 2 -s 1 -t data ${DEV}
401 assert_fail ""${CGPT}"" add -D 1024 -b 0 -s 3 -t data ${DEV}