Skip to content

Commit c4be1a5

Browse files
committed
CI: Cover multiple block device cases
1 parent 610e3c2 commit c4be1a5

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

.ci/boot-linux.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,20 @@ if [ "${ENABLE_VBLK}" -eq "1" ]; then
6161
expect "# " { send "\x01"; send "x" } timeout { exit 3 }
6262
')
6363

64+
# multiple blocks, Read-only, one disk image, one loop device (/dev/loopx(Linux) or /dev/diskx(Darwin))
65+
TEST_OPTIONS+=("${OPTS_BASE} -x vblk:${VBLK_IMG},readonly -x vblk:${BLK_DEV},readonly")
66+
EXPECT_CMDS+=('
67+
expect "buildroot login:" { send "root\n" } timeout { exit 1 }
68+
expect "# " { send "uname -a\n" } timeout { exit 2 }
69+
expect "riscv32 GNU/Linux" { send "mkdir mnt && mount /dev/vda mnt\n" } timeout { exit 3 }
70+
expect "# " { send "echo rv32emu > mnt/emu.txt\n" } timeout { exit 3 }
71+
expect -ex "-sh: can'\''t create mnt/emu.txt: Read-only file system" {} timeout { exit 3 }
72+
expect "# " { send "mkdir mnt2 && mount /dev/vdb mnt2\n" } timeout { exit 3 }
73+
expect "# " { send "echo rv32emu > mnt2/emu.txt\n" } timeout { exit 3 }
74+
expect -ex "-sh: can'\''t create mnt2/emu.txt: Read-only file system" {} timeout { exit 3 }
75+
expect "# " { send "\x01"; send "x" } timeout { exit 3 }
76+
')
77+
6478
# Read-write using disk image
6579
TEST_OPTIONS+=("${OPTS_BASE} -x vblk:${VBLK_IMG}")
6680
VBLK_EXPECT_CMDS='
@@ -77,6 +91,23 @@ if [ "${ENABLE_VBLK}" -eq "1" ]; then
7791
# Read-write using /dev/loopx(Linux) or /dev/diskx(Darwin) block device
7892
TEST_OPTIONS+=("${OPTS_BASE} -x vblk:${BLK_DEV}")
7993
EXPECT_CMDS+=("${VBLK_EXPECT_CMDS}")
94+
95+
# multiple blocks, Read-write, one disk image and one loop device (/dev/loopx(Linux) or /dev/diskx(Darwin))
96+
TEST_OPTIONS+=("${OPTS_BASE} -x vblk:${VBLK_IMG} -x vblk:${BLK_DEV}")
97+
VBLK_EXPECT_CMDS='
98+
expect "buildroot login:" { send "root\n" } timeout { exit 1 }
99+
expect "# " { send "uname -a\n" } timeout { exit 2 }
100+
expect "riscv32 GNU/Linux" { send "mkdir mnt && mount /dev/vda mnt\n" } timeout { exit 3 }
101+
expect "# " { send "echo rv32emu > mnt/emu.txt\n" } timeout { exit 3 }
102+
expect "# " { send "sync\n" } timeout { exit 3 }
103+
expect "# " { send "umount mnt\n" } timeout { exit 3 }
104+
expect "# " { send "mkdir mnt2 && mount /dev/vdb mnt2\n" } timeout { exit 3 }
105+
expect "# " { send "echo rv32emu > mnt2/emu.txt\n" } timeout { exit 3 }
106+
expect "# " { send "sync\n" } timeout { exit 3 }
107+
expect "# " { send "umount mnt2\n" } timeout { exit 3 }
108+
expect "# " { send "\x01"; send "x" } timeout { exit 3 }
109+
'
110+
EXPECT_CMDS+=("${VBLK_EXPECT_CMDS}")
80111
fi
81112

82113
for i in "${!TEST_OPTIONS[@]}"; do

0 commit comments

Comments
 (0)