Skip to content

Commit 0d2df70

Browse files
committed
More busybox compatibility changes
Changes: * Use short flags for BusyBox compatibility when needed. * test-growpart(-lvm): run `udevadm settle` only if available. * Drop `rm --one-file-system` flag in mount-image-callback's cleanup(). We check for the return code of do_umounts() instead, and avoid removing files if something went wrong in the umount process.
1 parent 1aa1ab0 commit 0d2df70

9 files changed

+36
-27
lines changed

bin/mount-image-callback

+3-4
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,11 @@ do_umounts() {
120120
cleanup() {
121121
if [ "${#UMOUNTS[@]}" -ne 0 ]; then
122122
debug 2 "umounts: ${UMOUNTS[*]}"
123-
do_umounts "${UMOUNTS[@]}"
123+
do_umounts "${UMOUNTS[@]}" ||
124+
{ error "failed cleaning up mounts"; return 1; }
124125
fi
125126
disconnect_qemu
126-
[ -z "${TEMP_D}" -o ! -d "${TEMP_D}" ] ||
127-
rm --one-file-system -Rf "${TEMP_D}" ||
128-
error "removal of temp dir failed!"
127+
rm -Rf "$TEMP_D" || error "removal of temp dir failed!"
129128
}
130129

131130
debug() {

test/test-growpart

+11-6
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ cleanup() {
2020
umount "$MP";
2121
fi
2222
if [ -n "$LODEV" ]; then
23-
echo "losetup --detach $LODEV";
24-
losetup --detach "$LODEV";
23+
echo "losetup -d $LODEV";
24+
losetup -d "$LODEV";
2525
fi
2626
[ ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}"
2727
}
@@ -30,6 +30,10 @@ rq() {
3030
"$@" > "$out" 2>&1 || { echo "FAILED:" "$@"; cat "$out"; return 1; }
3131
}
3232

33+
has_cmd() {
34+
command -v "${1}" >/dev/null 2>&1
35+
}
36+
3337
TEMP_D=$(mktemp -d ${TMPDIR:-/tmp}/${0##*/}.XXXXXX)
3438
trap cleanup EXIT
3539

@@ -42,16 +46,17 @@ rm -f $img
4246
[ ! -e $mp ] || rmdir $mp || { echo "failed rmdir $mp"; exit 1; }
4347
mkdir $mp
4448

45-
truncate --size $osize "$img"
49+
truncate -s $osize "$img"
4650

4751
label_flag="--label=${PT_TYPE}"
4852
echo "2048," | rq sfdisk $label_flag --force --unit=S "$img"
4953

50-
truncate --size "$size" "$img"
54+
truncate -s "$size" "$img"
5155

52-
lodev=$(losetup --show --find --partscan "$img")
56+
lodev=$(losetup -f)
57+
losetup -P "$lodev" "$img"
5358
LODEV=$lodev
54-
udevadm settle
59+
! has_cmd udevadm || udevadm settle
5560
echo "set up $lodev"
5661
lodevpart="${lodev}p1"
5762

test/test-growpart-fsimage

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ size=1000M
2424
osize=500M
2525
rm -f $img
2626

27-
truncate --size $osize "$img"
27+
truncate -s $osize "$img"
2828

2929
label_flag="--label=${PT_TYPE:-dos}"
3030
echo "2048," | rq sfdisk $label_flag --force --unit=S "$img"
3131

32-
truncate --size "$size" "$img"
32+
truncate -s "$size" "$img"
3333

3434
echo "==== before ===="
3535
sfdisk --list --unit=S "$img"

test/test-growpart-fsimage-middle

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ CR='
4646
for resizer in sfdisk sgdisk; do
4747
img="${TEMP_D}/disk-$resizer.img"
4848
echo "====== Testing with resizer=$resizer ====="
49-
rq truncate "--size=2G" "$img"
49+
rq truncate -s 2G "$img"
5050
( cd ${TEMP_D} && rq setup_img "${img##*/}" ) || fail "setup image $img"
5151
echo "==== before ===="
5252
( cd "${TEMP_D}" && sfdisk --dump "${img##*/}" )

test/test-growpart-lvm

+11-6
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ cleanup() {
4848
rq lvm pvremove --force --yes "$PV"
4949
fi
5050
if [ -n "$LODEV" ]; then
51-
echo "losetup --detach $LODEV";
52-
losetup --detach "$LODEV";
51+
echo "losetup -d $LODEV";
52+
losetup -d "$LODEV";
5353
fi
5454
[ ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}"
5555
}
@@ -67,6 +67,10 @@ get_vgsize() {
6767
_RET="$out"
6868
}
6969

70+
has_cmd() {
71+
command -v "${1}" >/dev/null 2>&1
72+
}
73+
7074
TEMP_D=$(mktemp -d ${TMPDIR:-/tmp}/${0##*/}.XXXXXX)
7175
trap cleanup EXIT
7276

@@ -79,16 +83,17 @@ rm -f $img
7983
[ ! -e $mp ] || rmdir $mp || { echo "failed rmdir $mp"; exit 1; }
8084
mkdir $mp
8185

82-
truncate --size $osize "$img"
86+
truncate -s $osize "$img"
8387

8488
label_flag="--label=${PT_TYPE}"
8589
echo "2048," | rq sfdisk $label_flag --force --unit=S "$img"
8690

87-
truncate --size "$size" "$img"
91+
truncate -s "$size" "$img"
8892

89-
lodev=$(losetup --show --find --partscan "$img")
93+
lodev=$(losetup -f)
94+
losetup -P "$lodev" "$img"
9095
LODEV=$lodev
91-
udevadm settle
96+
! has_cmd udevadm || udevadm settle
9297
echo "set up $lodev"
9398
lodevpart="${lodev}p1"
9499

test/test-growpart-overprovision

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ echo "Partitioning $PT_TYPE orig_size=$osize grow_size=$size, overprovisioning=$
2828
echo "growpart is $(which growpart)"
2929
rm -f $img
3030

31-
truncate --size $osize "$img"
31+
truncate -s $osize "$img"
3232

3333
label_flag="--label=${PT_TYPE}"
3434
echo "2048," | rq sfdisk $label_flag --force --unit=S "$img"
3535

36-
truncate --size "$size" "$img"
36+
truncate -s "$size" "$img"
3737

3838
echo "==== before ===="
3939
sfdisk --list --unit=S "$img"

test/test-growpart-start-matches-size

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ test_resize () {
6262
cd ${TEMP_D}
6363
echo "$expected" > partitions.expected
6464

65-
rq truncate "--size=2G" disk.img
65+
rq truncate -s 2G disk.img
6666
rq setup_image || fail "setup image $img"
6767

6868
sfdisk --dump disk.img > partitions.before

test/test-mic

+4-4
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ echo "partition 2" > "$pt2_d/info.txt"
7878
## Create 2 un-partitioned images, put a filesystem on them.
7979
## And then mount them write a file, and then mount and
8080
## read the file to verify its there.
81-
truncate "--size=$pt1_size" "$pt1"
82-
truncate "--size=$pt2_size" "$pt2"
81+
truncate -s "$pt1_size" "$pt1"
82+
truncate -s "$pt2_size" "$pt2"
8383
rq mkfs.ext4 -F "${pt1}"
8484
rq mkfs.ext4 -F "${pt2}"
8585

@@ -160,8 +160,8 @@ mount-image-callback --read-only --cd -- "$pt1" sh -c '
160160
## Stage 2
161161
## Create a full disk image with those 2 partition images inside
162162
## and a partition table that points to them. Do one for MBR and GPT.
163-
truncate "--size=$prept_size" "$prept"
164-
truncate "--size=$postpt_size" "$postpt"
163+
truncate -s "$prept_size" "$prept"
164+
truncate -s "$postpt_size" "$postpt"
165165

166166
msg "writing hunks to disk image ${img_mbr}"
167167
for hunk in "$prept" "$pt1" "$pt2" "$postpt"; do

tools/make-short-partition

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ set -e
1010
fail() { echo "$@" 1>&2; exit 1; }
1111

1212
if [ ! -e "$disk" ]; then
13-
truncate --size 1G "$disk"
13+
truncate -s 1G "$disk"
1414
fi
1515

1616
if [ -b "$disk" ]; then

0 commit comments

Comments
 (0)