Skip to content

Commit 75fa4dc

Browse files
committed
testing: Add test for sdcard
Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com>
1 parent b6f874e commit 75fa4dc

File tree

8 files changed

+60
-19
lines changed

8 files changed

+60
-19
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ jobs:
103103
"raid1+raid5",
104104
"raid1-degraded",
105105
"raid5",
106+
"sdcard",
106107
"xfs-partition",
107108
"zfs-partition",
108109
]

testing/packages-fedora

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ MAKE_INITRD_PACKAGES_DEVEL+=" kmod-devel zlib-ng-devel bzip2-devel xz-devel libx
99
MAKE_INITRD_PACKAGES_DEVEL+=" libzstd-devel elfutils-libelf-devel libtirpc-devel"
1010
MAKE_INITRD_PACKAGES_DEVEL+=" json-c-devel"
1111

12-
KERNEL_PACKAGES="kernel$KERNEL_FLAVOR"
12+
KERNEL_PACKAGES="kernel$KERNEL_FLAVOR kernel-modules"
1313

1414
BOOTLOADER_EFI_PACKAGES="grub2-efi-x64 grub2-efi-x64-modules"
1515
BOOTLOADER_PC_PACKAGES="grub2-pc grub2-pc-modules"

testing/sh-functions

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
#!/bin/bash
22
# SPDX-License-Identifier: GPL-3.0-or-later
33

4+
KICKSTART_DISKS=0
5+
KICKSTART_SDCARDS=0
6+
BOOT_DISKS=0
7+
BOOT_SDCARDS=0
8+
BOOT_CMDLINE=""
9+
410
PROG="${0##*/}"
511
TEST=
612
message()
@@ -193,6 +199,7 @@ create_qemu_wrapper()
193199
. "$top_workdir/qemu-cpu"
194200
. "$top_workdir/qemu-efi"
195201
. "$top_workdir/qemu-disks"
202+
. "$top_workdir/qemu-sdcards"
196203
set -x
197204
exec qemu-system-$ARCH "\${qemu_args[@]}"
198205
EOF
@@ -211,7 +218,7 @@ qemu_create_disk()
211218
i="$1"; shift
212219
fn="$1"; shift
213220
fmt="${QEMU_DISK_FORMAT:-qcow2}"
214-
size="3G"
221+
size="4G"
215222

216223
[ ! -f "$fn" ] ||
217224
return 0
@@ -245,10 +252,32 @@ qemu_init_blockdev()
245252
{
246253
:> "$top_workdir/disks.map"
247254
:> "$top_workdir/qemu-disks"
255+
:> "$workdir/qemu-sdcards"
248256

249257
qemu_args \
250258
-device "virtio-scsi-pci,id=scsi" \
251259
>"$workdir/qemu-disks"
260+
261+
qemu_args \
262+
-device "sdhci-pci" \
263+
>"$workdir/qemu-sdcards"
264+
}
265+
266+
qemu_add_sdcard()
267+
{
268+
local fn fmt i
269+
270+
i="$1"; shift
271+
fn="$1"; shift
272+
273+
[ "$#" -eq 0 ] &&
274+
fmt="${QEMU_SDCARD_FORMAT:-qcow2}" ||
275+
fmt="$1"
276+
277+
qemu_args \
278+
-device "sd-card,drive=sdcard-$i" \
279+
-drive "id=sdcard-$i,if=none,format=$fmt,file=$fn" \
280+
>>"$workdir/qemu-sdcards"
252281
}
253282

254283
qemu_add_disk()
@@ -279,6 +308,10 @@ qemu_setup_boot_disks()
279308
done
280309

281310
qemu_activate_disks
311+
312+
for (( i=1; i <= BOOT_SDCARDS; i++ )); do
313+
qemu_add_sdcard "$i" "$top_workdir/sdcard-$i.img"
314+
done
282315
}
283316

284317
qemu_setup_kickstart_disks()
@@ -299,6 +332,15 @@ qemu_setup_kickstart_disks()
299332
done
300333

301334
qemu_activate_disks
335+
336+
for (( i=1; i <= KICKSTART_SDCARDS; i++ )); do
337+
message "creating QEMU sdcard $i ..."
338+
339+
fn="$top_workdir/sdcard-$i.img"
340+
341+
qemu_create_disk "$i" "$fn"
342+
qemu_add_sdcard "$i" "$fn"
343+
done
302344
}
303345

304346
qemu_calc_boot_duration()

testing/test-root-sdcard.cfg

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# param KICKSTART_SDCARDS=1
2+
# param BOOT_SDCARDS=1
3+
# param BOOT_CMDLINE="$BOOT_CMDLINE rdacct=1 rdlog=console rd-debug-udev=1 quiet panic=0 root=LABEL=ROOT"
4+
5+
ignoredisk --drives=LABEL=SYSIMAGE
6+
clearpart --all --initlabel --disklabel=mbr
7+
8+
part / --size=100% --fstype=f2fs --label=ROOT
9+
10+
liveimg --url=dir:///sysimage/
11+
12+
shutdown

testing/testing-altlinux-local

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ readonly KERNEL_FLAVOR=-latest
1515

1616
TESTNAME="$1"; shift
1717

18-
KICKSTART_DISKS=0
19-
BOOT_DISKS=0
20-
BOOT_CMDLINE=""
21-
2218
eval $(sed -n -e 's/^# param //p' "$topdir/testing/$TESTNAME.cfg")
2319

2420
readonly builddir=/srv
@@ -156,7 +152,7 @@ for step in "$@"; do
156152
cat > /etc/initrd.mk <<EOF1
157153
AUTODETECT =
158154
DISABLE_FEATURES += ucode
159-
FEATURES = add-modules add-udev-rules kickstart qemu rdshell modules-virtio
155+
FEATURES = add-modules add-udev-rules kickstart qemu rdshell modules-virtio modules-blockdev
160156
MODULES_ADD += sd_mod
161157
MODULES_PRELOAD += virtio-blk virtio-scsi virtio-pci
162158
KICKSTART_CONFIGS = $builddir/$workdir/ks.cfg

testing/testing-altlinux-sshfs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ MAKE_INITRD_PACKAGES+=" fuse-sshfs"
1717

1818
TESTNAME="$1"; shift
1919

20-
KICKSTART_DISKS=0
21-
BOOT_DISKS=0
2220
BOOT_CMDLINE="console=ttyS0,115200n8 fastboot rw"
2321

2422
eval $(sed -n -e 's/^# param //p' "$topdir/testing/$TESTNAME.cfg")

testing/testing-fedora-local

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ readonly KERNEL_FLAVOR=
1515

1616
TESTNAME="$1"; shift
1717

18-
KICKSTART_DISKS=0
19-
BOOT_DISKS=0
20-
BOOT_CMDLINE=""
21-
2218
eval $(sed -n -e 's/^# param //p' "$topdir/testing/$TESTNAME.cfg")
2319

2420
readonly builddir=/srv
@@ -161,7 +157,7 @@ for step in "$@"; do
161157
AUTODETECT =
162158
IMAGEFILE = /boot/initrd-ks.img
163159
DISABLE_FEATURES += ucode
164-
FEATURES = add-modules add-udev-rules kickstart qemu rdshell modules-virtio
160+
FEATURES = add-modules add-udev-rules kickstart qemu rdshell modules-virtio modules-blockdev
165161
MODULES_ADD += sd_mod
166162
MODULES_PRELOAD += virtio-blk virtio-scsi virtio-pci
167163
KICKSTART_CONFIGS = $builddir/$workdir/ks.cfg

testing/testing-ubuntu-local

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ readonly KERNEL_FLAVOR=-generic
1515

1616
TESTNAME="$1"; shift
1717

18-
KICKSTART_DISKS=0
19-
BOOT_DISKS=0
20-
BOOT_CMDLINE=""
21-
2218
eval $(sed -n -e 's/^# param //p' "$topdir/testing/$TESTNAME.cfg")
2319

2420
readonly builddir=/srv
@@ -144,7 +140,7 @@ for step in "$@"; do
144140
AUTODETECT =
145141
IMAGEFILE = /boot/initrd-ks.img
146142
DISABLE_FEATURES += ucode
147-
FEATURES = add-modules add-udev-rules kickstart qemu rdshell modules-virtio
143+
FEATURES = add-modules add-udev-rules kickstart qemu rdshell modules-virtio modules-blockdev
148144
MODULES_ADD += sd_mod
149145
MODULES_PRELOAD += virtio-blk virtio-scsi virtio-pci
150146
KICKSTART_CONFIGS = $builddir/$workdir/ks.cfg

0 commit comments

Comments
 (0)