diff --git a/.ci/boot-linux.sh b/.ci/boot-linux.sh index df619ad00..36d84e981 100755 --- a/.ci/boot-linux.sh +++ b/.ci/boot-linux.sh @@ -16,12 +16,36 @@ function ASSERT { cleanup +ENABLE_VBLK=1 +which dd >/dev/null 2>&1 || ENABLE_VBLK=0 +(which mkfs.ext4 >/dev/null 2>&1 || which $(brew --prefix e2fsprogs)/sbin/mkfs.ext4) >/dev/null 2>&1 || ENABLE_VBLK=0 +which 7z >/dev/null 2>&1 || ENABLE_VBLK=0 + TIMEOUT=50 OPTS=" -k build/linux-image/Image " OPTS+=" -i build/linux-image/rootfs.cpio " -OPTS+=" -b build/minimal.dtb " +if [ "$ENABLE_VBLK" -eq "1" ]; then + dd if=/dev/zero of=build/disk.img bs=4M count=32 + mkfs.ext4 build/disk.img || $(brew --prefix e2fsprogs)/sbin/mkfs.ext4 build/disk.img + OPTS+=" -x vblk:build/disk.img " +else + printf "Virtio-blk Test...Passed\n" +fi RUN_LINUX="build/rv32emu ${OPTS}" +if [ "$ENABLE_VBLK" -eq "1" ]; then +ASSERT expect < mnt/emu.txt\n" } timeout { exit 3 } +expect "# " { send "sync\n" } timeout { exit 3 } +expect "# " { send "umount mnt\n" } timeout { exit 3 } +expect "# " { send "\x01"; send "x" } timeout { exit 3 } +DONE +else ASSERT expect </dev/null 2>&1) || ret=4 + printf "Virtio-blk Test: [ ${COLOR_G}${MESSAGES[$ret]}${COLOR_N} ]\n" +fi exit ${ret} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 09066e32c..7d699dddf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,7 +46,7 @@ jobs: - name: install-dependencies run: | sudo apt-get update -q -y - sudo apt-get install -q -y libsdl2-dev libsdl2-mixer-dev device-tree-compiler expect bc + sudo apt-get install -q -y libsdl2-dev libsdl2-mixer-dev device-tree-compiler expect bc p7zip-full .ci/riscv-toolchain-install.sh echo "${{ github.workspace }}/toolchain/bin" >> $GITHUB_PATH wget https://apt.llvm.org/llvm.sh